/* ==========================================================================
   MASUDIS — Šumadija Digital Studio
   X-series dizajn sistem · v2
   POWERED BY MASUDIS

   Ovaj fajl je jedini izvor stilova za sve stranice sajta.
   Deli se izmedju naslovne, /sajtovi/, product stranica i bloga —
   zato se kesira jednom i vise se ne preuzima (v1 je imao 50KB inline
   CSS-a u SVAKOJ stranici, sto se preuzimalo iznova pri svakoj navigaciji).
   ========================================================================== */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  /* --- tekst --- */
  --ink:#100E12;
  --ink-soft:#3A3742;
  --ink-mute:#5F5C6B;      /* v1 je bio #7C7888 = 3.39:1 na cream-u, pao AA. Sada 5.6:1 */
  --ink-faint:#8A8697;     /* SAMO dekoracija: linije, separatori, nikad telo teksta */

  /* --- podloge --- */
  --cream:#EDE4D0;
  --cream-deep:#E4D8BE;
  --cream-pale:#F4EEDF;
  --paper:#FBF7EC;
  --line:#D9CDB2;
  --line-soft:#E2D8C2;

  /* --- akcenti --- */
  --amber:#D4840A;
  --amber-lo:#E8A33C;
  --amber-dk:#8C5406;      /* jedini amber dozvoljen za tekst na cream-u: 4.9:1 */
  --steel:#5C6F8A;
  --teal:#0E8C82;          /* samo za pozadine/ivice, NE za sitan tekst (3.26:1) */
  --teal-dk:#0A6459;       /* teal za tekst na cream-u: 5.1:1 */
  --violet:#7B3FF2;
  --rust:#C73E2F;

  --grad-amber:linear-gradient(118deg,#B8720A 0%,#E8A33C 100%);
  --grad-headline:linear-gradient(120deg,var(--steel),var(--amber));

  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.65,.05,.2,1);
  --shadow:0 30px 80px -30px rgba(60,48,20,.4),0 10px 30px -15px rgba(60,48,20,.2);
}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:100px}
body{
  font-family:'Syne',sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* ==========================================================================
   SISTEMSKI KURSOR SE KRIJE SAMO AKO ZAMENA STVARNO RADI

   Ranije je `body{}` stajalo bezuslovno. Na 404 i hvala stranicama
   nema ni kursor elemenata ni skripte koja ih pomera, pa je mis jednostavno
   nestajao — korisnik ne vidi gde pokazuje. Isto bi se desilo na svakoj
   stranici gde skripta padne ili je blokirana.

   Sada klasu `ima-kursor` postavlja JS, i to tek kad je nacrtani kursor
   zaista aktiviran. Ako skripte nema — kursor je normalan.
   ========================================================================== */
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,
html.ima-kursor .shop-filters button,
html.ima-kursor .qa summary{cursor:none}
html.kbd body,html.kbd a,html.kbd button,html.kbd input,
html.kbd textarea,html.kbd select{cursor:auto}

/* --- fokus: vidljiv na svakom interaktivnom elementu (v1 ga nije imao) --- */
: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:auto;top:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;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;width:auto;height:auto;overflow:visible;clip-path:none}

/* ---------- GRAIN ---------- */
.grain{
  position:fixed;inset:-50%;z-index:9000;pointer-events:none;width:200%;height:200%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity:.05;mix-blend-mode:multiply;animation:grainShift 8s steps(6) infinite;
}
@keyframes grainShift{0%{transform:translate(0,0)}16%{transform:translate(-3%,2%)}33%{transform:translate(2%,-3%)}
  50%{transform:translate(-2%,3%)}66%{transform:translate(3%,1%)}83%{transform:translate(-1%,-2%)}100%{transform:translate(0,0)}}

.progress{position:fixed;top:0;left:0;height:2px;width:100%;z-index:1100;transform-origin:0 50%;transform:scaleX(0);background:var(--grad-amber)}

/* ---------- KURSOR ---------- */
.cur-dot{position:fixed;top:0;left:0;z-index:9999;width:5px;height:5px;border-radius:50%;background:var(--ink);transform:translate(-50%,-50%);pointer-events:none;transition:opacity .25s,background .25s}
.cur-ring{position:fixed;top:0;left:0;z-index:9998;width:40px;height:40px;border-radius:50%;border:1px solid var(--ink-mute);transform:translate(-50%,-50%);pointer-events:none;transition:width .3s var(--ease-out),height .3s var(--ease-out),border-color .3s,opacity .3s,background .3s}
.cur-label{position:fixed;top:0;left:0;z-index:9999;font-family:'Space Mono',monospace;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--cream);transform:translate(-50%,-50%);pointer-events:none;opacity:0;transition:opacity .25s}
body.hov-link .cur-ring{width:64px;height:64px;border-color:transparent;background:var(--ink)}
body.hov-link .cur-dot{opacity:0}
body.hov-link .cur-label{opacity:1}
body.hov-soft .cur-ring{width:56px;height:56px;border-color:var(--amber)}
/* kursor se gasi cim se koristi tastatura — inace korisnik ne vidi gde je fokus */
html.kbd .cur-dot,html.kbd .cur-ring,html.kbd .cur-label{display:none}

/* ---------- LAYOUT ---------- */
.shell{max-width:1480px;margin:0 auto;padding:0 56px;position:relative}
section{position:relative;z-index:1}

/* Grid celije podrazumevano imaju min-width:auto i ODBIJAJU da se skupe ispod
   min-content sirine svog sadrzaja — jedan dugacak token (mejl, URL, naziv)
   razvuce kolonu preko ekrana. Na telefonu se to vidi kao odsecen sadrzaj,
   jer body ima overflow-x:hidden pa nema ni scrollbar-a da upozori.
   Ovo je opsta zastita; pojedinacni slucajevi su resavani i lokalno. */
.cta-grid > *,.tier-grid > *,.branch-grid > *,.shop-grid > *,
.journal-grid > *,.foot-grid > *,.work > *,.f-row > *,.stats > *{min-width:0}

/* ---------- NAV ----------
   VAZNO: selektor je #nav, ne bare `nav`. Na stranici postoji i breadcrumb
   koji je takodje <nav> element — sa `nav{position:fixed}` bi odleteo
   iznad ekrana i nestao. */
#nav{position:fixed;top:0;left:0;right:0;z-index:1000;transition:background .4s var(--ease-out),box-shadow .4s,padding .4s}
.nav-in{max-width:1480px;margin:0 auto;padding:26px 56px;display:flex;align-items:center;justify-content:space-between;gap:24px;transition:padding .4s var(--ease-out)}
#nav.scrolled{background:rgba(237,228,208,.82);backdrop-filter:blur(20px) saturate(1.2);box-shadow:0 1px 0 var(--line-soft)}
#nav.scrolled .nav-in{padding:16px 56px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none}
.brand-mark{width:30px;height:30px;flex-shrink:0}
.brand-txt{font-family:'Syne',sans-serif;font-weight:800;font-size:1rem;letter-spacing:4px;color:var(--ink)}
.nav-links{display:flex;align-items:center;gap:34px;list-style:none}
.nav-links a{font-family:'Space Mono',monospace;font-size:.74rem;letter-spacing:1px;text-transform:uppercase;color:var(--ink-mute);text-decoration:none;position:relative;transition:color .3s}
.nav-links a::after{content:'';position:absolute;left:0;bottom:-6px;width:0;height:1.5px;background:var(--amber);transition:width .35s var(--ease-out)}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--ink)}
.nav-links a:hover::after,.nav-links a[aria-current="page"]::after{width:100%}

/* telefon u navigaciji — najvazniji kanal za ovu publiku */
.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}

.nav-cta{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:var(--cream)!important;padding:11px 22px;border-radius:100px;font-family:'Space Mono',monospace;font-size:.7rem!important;letter-spacing:1px;text-transform:uppercase;text-decoration:none;transition:transform .3s var(--ease-out),background .3s}
.nav-cta::after{display:none!important}
.nav-cta:hover{background:var(--amber);transform:translateY(-2px)}
.burger{display:none;flex-direction:column;gap:6px;background:none;border:none;padding:8px}
.burger span{display:block;width:26px;height:2px;background:var(--ink);transition:.3s}

.mob{position:fixed;inset:0;z-index:1050;background:var(--cream);transform:translateY(-100%);transition:transform .6s var(--ease-out);display:flex;flex-direction:column;justify-content:center;padding:0 40px;overflow-y:auto}
.mob.open{transform:translateY(0)}
.mob a{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(1.9rem,7.5vw,3rem);letter-spacing:-.02em;color:var(--ink);text-decoration:none;padding:12px 0;display:flex;align-items:baseline;gap:16px;border-bottom:1px solid var(--line-soft)}
.mob a span{font-family:'Space Mono',monospace;font-size:.8rem;color:var(--amber-dk);letter-spacing:1px}
.mob-close{position:absolute;top:24px;right:36px;background:none;border:none;font-size:1.6rem;color:var(--ink);padding:8px;line-height:1}

/* ---------- DUGMAD ---------- */
.btn-pri{position:relative;display:inline-flex;align-items:center;gap:10px;padding:17px 32px;border-radius:100px;background:var(--ink);color:var(--cream);font-family:'Syne',sans-serif;font-weight:700;font-size:.95rem;text-decoration:none;overflow:hidden;border:none;transition:transform .35s var(--ease-out);will-change:transform}
.btn-pri span{position:relative;z-index:2;display:inline-flex;align-items:center;gap:10px}
.btn-pri::before{content:'';position:absolute;inset:0;background:var(--grad-amber);transform:translateY(101%);transition:transform .45s var(--ease-out);z-index:1}
.btn-pri:hover::before{transform:translateY(0)}
.btn-pri svg{transition:transform .35s var(--ease-out)}
.btn-pri:hover svg{transform:translate(4px,-4px)}
.btn-pri[disabled]{opacity:.55;pointer-events:none}

.btn-sec{display:inline-flex;align-items:center;gap:10px;padding:17px 32px;border-radius:100px;border:1.5px solid var(--line);background:rgba(251,247,236,.4);color:var(--ink);font-family:'Syne',sans-serif;font-weight:700;font-size:.95rem;text-decoration:none;transition:border-color .35s,transform .35s var(--ease-out),background .35s}
.btn-sec:hover{border-color:var(--ink);transform:translateY(-2px);background:var(--paper)}

/* ---------- SEKCIJE ---------- */
.sec-label{font-family:'Space Mono',monospace;font-size:.72rem;letter-spacing:2.5px;text-transform:uppercase;color:var(--ink-mute);display:inline-flex;align-items:center;gap:14px;margin-bottom:24px}
.sec-label::before{content:'';width:30px;height:1px;background:var(--amber);flex-shrink:0}
.sec-title{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(2.1rem,4.3vw,3.7rem);line-height:1.04;letter-spacing:-.035em;color:var(--ink);max-width:820px;text-wrap:balance}
.sec-title em{font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;background:var(--grad-headline);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.serif-mark{font-family:'Instrument Serif',serif;font-style:italic;color:var(--amber-dk)}

.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out)}
.reveal.in{opacity:1;transform:none}
.reveal-d1{transition-delay:.08s}.reveal-d2{transition-delay:.16s}.reveal-d3{transition-delay:.24s}.reveal-d4{transition-delay:.32s}

/* ---------- HERO ---------- */
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:132px 0 84px;overflow:hidden}
/* tekst dobija vise sirine nego u v1 jer je naslov duzi ("Softver i sajtovi").
   Crtez trpi suzenje, naslov koji se prelama u cetiri reda ne trpi. */
.hero-grid{display:grid;grid-template-columns:1.38fr .62fr;gap:36px;align-items:center}
@media(max-width:1080px){.hero-grid{grid-template-columns:1fr}}

.eyebrow{display:inline-flex;align-items:center;gap:11px;padding:8px 16px 8px 12px;border:1px solid var(--line);border-radius:100px;background:rgba(251,247,236,.5);width:fit-content;margin-bottom:36px;opacity:0;transform:translateY(20px);animation:rise 1s var(--ease-out) .2s forwards}
.eyebrow-dot{width:7px;height:7px;border-radius:50%;background:var(--amber);position:relative;flex-shrink:0}
.eyebrow-dot::after{content:'';position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--amber);animation:pulse 2.2s var(--ease-io) infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.8);opacity:0}}
.eyebrow-txt{font-family:'Space Mono',monospace;font-size:.7rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-soft)}

/* velicina je odmerena tako da "Softver i sajtovi" stane u JEDAN red na
   sirini leve kolone (~830px na 1480px shell-u). Vece od ovoga se prelama
   i hero preraste ekran. */
.hero h1{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(2.5rem,4.9vw,4.9rem);line-height:1;letter-spacing:-.04em;color:var(--ink);text-wrap:balance}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.05em}
.hero h1 .ln > span{display:block;transform:translateY(105%);animation:lineUp 1.1s var(--ease-out) forwards}
.hero h1 .ln:nth-child(1) > span{animation-delay:.35s}
.hero h1 .ln:nth-child(2) > span{animation-delay:.46s}
.hero h1 .ln:nth-child(3) > span{animation-delay:.57s}
@keyframes lineUp{to{transform:translateY(0)}}
.hero h1 em{font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;background:var(--grad-headline);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;padding-right:.06em}

.hero-sub{max-width:52ch;font-size:1.1rem;line-height:1.7;color:var(--ink-soft);margin-top:34px;opacity:0;transform:translateY(20px);animation:rise 1s var(--ease-out) .8s forwards}
.hero-sub strong{color:var(--ink);font-weight:700}
.hero-cta{display:flex;gap:14px;margin-top:42px;flex-wrap:wrap;opacity:0;transform:translateY(20px);animation:rise 1s var(--ease-out) .95s forwards}

.hero-art{position:relative;justify-self:center;width:100%;max-width:560px;opacity:0;animation:fadeIn 1.4s var(--ease-out) .6s forwards}
@media(max-width:1080px){.hero-art{display:none}}
.hero-art svg{width:100%;height:auto;overflow:visible}
.bp-line{fill:none;stroke:var(--steel);stroke-width:.9;stroke-dasharray:1600;stroke-dashoffset:1600;animation:draw 3s var(--ease-out) 1s forwards}
.bp-line.d2{animation-delay:1.4s}
.bp-line.d3{animation-delay:1.8s}
.bp-acc{fill:none;stroke:var(--amber);stroke-width:1.3;stroke-dasharray:800;stroke-dashoffset:800;animation:draw 2.4s var(--ease-out) 2s forwards}
.bp-fill-steel{fill:var(--steel);fill-opacity:0;animation:fillIn 1.5s ease-out 2.6s forwards}
.bp-fill-amber{fill:var(--amber);fill-opacity:0;animation:fillIn 1.5s ease-out 2.9s forwards}
.bp-node{fill:var(--paper);stroke:var(--amber);stroke-width:1.5;opacity:0;animation:popIn .6s var(--ease-out) forwards}
.bp-dash{fill:none;stroke:var(--ink-faint);stroke-width:.6;stroke-dasharray:4 4;opacity:0;animation:fadeIn 1s ease-out 3.2s forwards}
.bp-txt{font-family:'JetBrains Mono',monospace;font-size:8.5px;fill:var(--ink-mute);opacity:0;animation:fadeIn 1s ease-out 3.4s forwards}
.bp-txt-acc{font-family:'JetBrains Mono',monospace;font-size:8.5px;fill:var(--amber-dk);font-weight:700;opacity:0;animation:fadeIn 1s ease-out 3.5s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fillIn{to{fill-opacity:.07}}
@keyframes popIn{0%{opacity:0;transform:scale(0)}60%{transform:scale(1.15)}100%{opacity:1;transform:scale(1)}}
@keyframes fadeIn{to{opacity:1}}
@keyframes rise{to{opacity:1;transform:translateY(0)}}

/* ==========================================================================
   DVE GRANE — glavna promena u odnosu na v1.
   Posetilac u prve 3 sekunde bira svoj put umesto da cita katalog.
   ========================================================================== */
.branches{padding:20px 0 130px}
.branch-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
@media(max-width:880px){.branch-grid{grid-template-columns:1fr}}

.branch{position:relative;background:var(--paper);padding:54px 46px 46px;text-decoration:none;color:inherit;display:flex;flex-direction:column;min-height:100%;transition:background .45s var(--ease-out)}
.branch::before{content:'';position:absolute;inset:0;opacity:0;transition:opacity .45s var(--ease-out);pointer-events:none}
.branch[data-b="proizvod"]::before{background:linear-gradient(150deg,rgba(92,111,138,.14),transparent 62%)}
.branch[data-b="pomeri"]::before{background:linear-gradient(150deg,rgba(212,132,10,.16),transparent 62%)}
@media(hover:hover){.branch:hover::before{opacity:1}}
.branch > *{position:relative;z-index:1}

.branch-tag{font-family:'Space Mono',monospace;font-size:.66rem;letter-spacing:2.2px;text-transform:uppercase;color:var(--ink-mute);display:flex;align-items:center;gap:10px;margin-bottom:26px}
.branch-tag b{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.6rem;color:var(--paper);background:var(--ink);font-weight:700}
.branch h2{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(1.8rem,3.1vw,2.6rem);line-height:1.06;letter-spacing:-.03em;margin-bottom:16px;text-wrap:balance}
.branch h2 em{font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;color:var(--amber-dk)}
.branch p{font-size:1.02rem;line-height:1.7;color:var(--ink-soft);max-width:38ch}
.branch-list{list-style:none;margin:28px 0 34px;display:flex;flex-direction:column;gap:11px}
.branch-list li{font-size:.95rem;color:var(--ink-soft);display:flex;gap:12px;align-items:flex-start;line-height:1.5}
.branch-list li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--amber);margin-top:.55em;flex-shrink:0}
.branch-go{margin-top:auto;display:inline-flex;align-items:center;gap:12px;font-family:'Syne',sans-serif;font-weight:800;font-size:1rem;color:var(--ink);padding-top:26px;border-top:1px solid var(--line-soft)}
.branch-go svg{transition:transform .4s var(--ease-out)}
@media(hover:hover){.branch:hover .branch-go svg{transform:translate(6px,-6px)}}

/* ---------- MANIFESTO ---------- */
.manifesto{padding:130px 0}
.manifesto-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:80px;align-items:start}
@media(max-width:980px){.manifesto-grid{grid-template-columns:1fr;gap:40px}}
.manifesto-statement{font-family:'Syne',sans-serif;font-weight:700;font-size:clamp(1.7rem,3.1vw,2.7rem);line-height:1.22;letter-spacing:-.02em;color:var(--ink)}
.manifesto-statement em{font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;color:var(--amber-dk)}
.manifesto-body{max-width:56ch}
.manifesto-body p{font-size:1.06rem;line-height:1.75;color:var(--ink-soft);margin-bottom:22px}
.manifesto-body p strong{color:var(--ink);font-weight:700}
.manifesto-sign{display:flex;align-items:center;gap:16px;margin-top:36px;padding-top:28px;border-top:1px solid var(--line-soft)}
.manifesto-sign .mk{width:42px;height:42px;border-radius:50%;background:var(--ink);display:grid;place-items:center;flex-shrink:0}
.manifesto-sign .info b{display:block;font-family:'Syne',sans-serif;font-weight:800;font-size:.94rem;letter-spacing:.5px}
.manifesto-sign .info span{font-family:'Space Mono',monospace;font-size:.7rem;letter-spacing:1px;text-transform:uppercase;color:var(--ink-mute)}

/* ---------- PROIZVODI ---------- */
.products{padding:40px 0 120px}
.products-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:56px;flex-wrap:wrap}
/* :not(.sec-title) je obavezan — .products-head p ima vecu specificnost od
   .sec-title, pa bi bez ovoga naslov sekcije ispao kao sitan mono tekst. */
.products-head p:not(.sec-title){font-family:'Space Mono',monospace;font-size:.76rem;letter-spacing:1px;text-transform:uppercase;color:var(--ink-mute);max-width:26ch;text-align:right;line-height:1.7}
@media(max-width:720px){.products-head p:not(.sec-title){text-align:left}}

.prod-list{border-top:1px solid var(--line)}
.prod-row{position:relative;display:block;text-decoration:none;color:inherit;border-bottom:1px solid var(--line);padding:32px 0;transition:padding .5s var(--ease-out)}
.prod-row-in{display:grid;grid-template-columns:70px 1fr auto;gap:30px;align-items:center;position:relative;z-index:2;transition:transform .5s var(--ease-out)}
.prod-num{font-family:'Space Mono',monospace;font-size:.84rem;color:var(--ink-mute);transition:color .4s}
.prod-main{display:flex;flex-direction:column;gap:8px}
.prod-name{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(1.7rem,3.7vw,2.9rem);line-height:1;letter-spacing:-.03em;color:var(--ink);transition:color .4s,transform .5s var(--ease-out);display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.prod-badge{font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:1.5px;text-transform:uppercase;padding:5px 11px;border-radius:100px;border:1px solid var(--line);color:var(--ink-mute);transition:.4s;white-space:nowrap}
.prod-badge.live{border-color:var(--teal);color:var(--teal-dk)}
.prod-desc{font-size:1rem;color:var(--ink-mute);max-width:52ch;transition:color .4s}
.prod-arrow{width:60px;height:60px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;color:var(--ink);transition:.5s var(--ease-out);flex-shrink:0}
.prod-arrow svg{transition:transform .5s var(--ease-out)}
.prod-row::before{content:'';position:absolute;inset:0;opacity:0;transition:opacity .5s var(--ease-out);z-index:1;pointer-events:none}
.prod-row[data-accent="steel"]::before{background:linear-gradient(90deg,rgba(92,111,138,.1),transparent 70%)}
.prod-row[data-accent="teal"]::before{background:linear-gradient(90deg,rgba(14,140,130,.1),transparent 70%)}
.prod-row[data-accent="rust"]::before{background:linear-gradient(90deg,rgba(199,62,47,.1),transparent 70%)}
.prod-row[data-accent="violet"]::before{background:linear-gradient(90deg,rgba(123,63,242,.1),transparent 70%)}
.prod-row[data-accent="amber"]::before{background:linear-gradient(90deg,rgba(212,132,10,.12),transparent 70%)}

@media(hover:hover){
  .prod-row:hover{padding:46px 0}
  .prod-row:hover::before{opacity:1}
  .prod-row:hover .prod-row-in{transform:translateX(20px)}
  .prod-row:hover .prod-name{transform:translateX(4px)}
  .prod-row[data-accent="steel"]:hover .prod-name,.prod-row[data-accent="steel"]:hover .prod-num{color:var(--steel)}
  .prod-row[data-accent="teal"]:hover .prod-name,.prod-row[data-accent="teal"]:hover .prod-num{color:var(--teal)}
  .prod-row[data-accent="rust"]:hover .prod-name,.prod-row[data-accent="rust"]:hover .prod-num{color:var(--rust)}
  .prod-row[data-accent="violet"]:hover .prod-name,.prod-row[data-accent="violet"]:hover .prod-num{color:var(--violet)}
  .prod-row[data-accent="amber"]:hover .prod-name,.prod-row[data-accent="amber"]:hover .prod-num{color:var(--amber-dk)}
  .prod-row[data-accent="steel"]:hover .prod-arrow{background:var(--steel);border-color:var(--steel);color:#fff}
  .prod-row[data-accent="teal"]:hover .prod-arrow{background:var(--teal);border-color:var(--teal);color:#fff}
  .prod-row[data-accent="rust"]:hover .prod-arrow{background:var(--rust);border-color:var(--rust);color:#fff}
  .prod-row[data-accent="violet"]:hover .prod-arrow{background:var(--violet);border-color:var(--violet);color:#fff}
  .prod-row[data-accent="amber"]:hover .prod-arrow{background:var(--amber);border-color:var(--amber);color:#fff}
  .prod-row:hover .prod-arrow svg{transform:translate(3px,-3px)}
}

/* ==========================================================================
   RADOVI — klijentski sajtovi. Najjaci dokaz na celom sajtu jer se
   svaki moze otvoriti i proveriti. Zato dobija najvise prostora.
   ========================================================================== */
.works{padding:130px 0;background:var(--cream-pale);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.works-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:64px;flex-wrap:wrap}

.work{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center;padding:56px 0;border-top:1px solid var(--line)}
.work:last-of-type{border-bottom:1px solid var(--line)}
@media(max-width:980px){.work{grid-template-columns:1fr;gap:32px;padding:40px 0}}
.work-info{display:flex;flex-direction:column}
.work-meta{font-family:'Space Mono',monospace;font-size:.68rem;letter-spacing:2px;text-transform:uppercase;color:var(--ink-mute);margin-bottom:18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.work-meta .dot{width:5px;height:5px;border-radius:50%;background:var(--line);flex-shrink:0}
.work h3{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(1.7rem,3.3vw,2.5rem);line-height:1.05;letter-spacing:-.03em;margin-bottom:16px}
.work-claim{font-family:'Instrument Serif',serif;font-style:italic;font-size:1.3rem;line-height:1.4;color:var(--amber-dk);margin-bottom:20px}
.work p{font-size:1.01rem;line-height:1.72;color:var(--ink-soft);max-width:46ch}
.work-stack{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 28px}
.work-stack span{font-family:'JetBrains Mono',monospace;font-size:.68rem;padding:6px 12px;border-radius:100px;background:var(--cream-deep);color:var(--ink-soft);letter-spacing:.3px}
.work-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:auto}
.work-visit{display:inline-flex;align-items:center;gap:9px;font-family:'Space Mono',monospace;font-size:.74rem;letter-spacing:1px;text-transform:uppercase;
  color:var(--ink);text-decoration:none;padding:13px 22px;border-radius:100px;border:1.5px solid var(--ink);transition:background .35s,color .35s,transform .35s var(--ease-out)}
.work-visit:hover{background:var(--ink);color:var(--cream);transform:translateY(-2px)}
.work-visit.soft{border-color:var(--line);color:var(--ink-mute)}
.work-visit.soft:hover{background:transparent;border-color:var(--ink-mute);color:var(--ink);transform:none}

/* --- vizual rada: pravi screenshot u okviru pregledaca ---
   Traka je apsolutna i stoji IZNAD slike, pa slika dobija padding-top iste
   visine da joj vrh ne bude pokriven. Bez fiksnog aspect-ratio na kutiji:
   ratio nosi sama slika, pa se screenshot nikad ne isece sa strane. */
.work-shot{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);
  background:var(--paper);box-shadow:var(--shadow);padding-top:34px;
  transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out)}
.work-shot img{width:100%;height:auto;display:block;aspect-ratio:1551/744;object-fit:cover;object-position:top center}
@media(hover:hover){
  .work:hover .work-shot{transform:translateY(-6px);box-shadow:0 42px 90px -30px rgba(60,48,20,.5),0 12px 32px -14px rgba(60,48,20,.28)}
}
/* rezervni prikaz dok screenshot ne postoji */
.work-shot .ph{display:grid;place-items:center;align-content:center;text-align:center;padding:30px;gap:14px;aspect-ratio:1551/744}
.work-shot .ph b{font-family:'Syne',sans-serif;font-weight:800;font-size:1.5rem;letter-spacing:-.02em;color:var(--ink)}
.work-shot .ph span{font-family:'Space Mono',monospace;font-size:.64rem;letter-spacing:2px;text-transform:uppercase;color:var(--ink-mute)}
.work-shot .bar{position:absolute;top:0;left:0;right:0;height:34px;background:var(--cream-deep);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:7px;padding:0 14px}
.work-shot .bar i{width:9px;height:9px;border-radius:50%;background:var(--line);display:block}
.work-shot .bar em{font-family:'JetBrains Mono',monospace;font-size:.62rem;font-style:normal;color:var(--ink-mute);margin-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- PRISTUP / STATISTIKA (tamna sekcija) ---------- */
.approach{padding:130px 0;background:var(--ink);color:var(--cream);position:relative;overflow:hidden}
.approach::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:54px 54px;opacity:.6}
.approach .shell{position:relative;z-index:1}
.approach .sec-label{color:var(--cream-deep)}
.approach .sec-label::before{background:var(--amber-lo)}
.approach .sec-title{color:var(--cream)}
.approach-intro{max-width:56ch;font-size:1.12rem;line-height:1.7;color:var(--cream-deep);margin-top:28px}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:80px;border-top:1px solid rgba(237,228,208,.18)}
@media(max-width:880px){.stats{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.stats{grid-template-columns:1fr}}
.stat{padding:40px 32px 40px 0;border-right:1px solid rgba(237,228,208,.12)}
.stat:last-child{border-right:none}
@media(max-width:880px){.stat:nth-child(2){border-right:none}.stat{border-bottom:1px solid rgba(237,228,208,.12)}}
.stat-num{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(2.6rem,5vw,4.2rem);line-height:1;letter-spacing:-.03em;background:linear-gradient(120deg,#E8A33C,#F4EEDF);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.stat-lab{font-family:'Space Mono',monospace;font-size:.72rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--cream-deep);margin-top:14px;line-height:1.6}

.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:90px;background:rgba(237,228,208,.12);border:1px solid rgba(237,228,208,.12)}
@media(max-width:820px){.principles{grid-template-columns:1fr}}
.principle{background:var(--ink);padding:38px 34px}
.principle .pn{font-family:'Space Mono',monospace;font-size:.68rem;letter-spacing:1.5px;color:var(--amber-lo);margin-bottom:18px}
.principle h3{font-family:'Syne',sans-serif;font-weight:800;font-size:1.32rem;letter-spacing:-.01em;margin-bottom:12px;color:var(--cream)}
.principle p{font-size:.97rem;line-height:1.65;color:var(--cream-deep)}

/* ==========================================================================
   RADIONICA — pun inventar. Ovo je dokaz kapaciteta koji se ne moze glumiti.
   Namerno je gust i tih: nije meni, nego evidencija.
   ========================================================================== */
.shop{padding:130px 0}
.shop-head{max-width:60ch;margin-bottom:52px}
.shop-head p:not(.sec-title){font-size:1.06rem;line-height:1.72;color:var(--ink-soft);margin-top:24px;max-width:62ch}

.shop-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:34px}
.shop-filters button{font-family:'Space Mono',monospace;font-size:.68rem;letter-spacing:1.4px;text-transform:uppercase;
  padding:10px 18px;border-radius:100px;border:1.5px solid var(--line);background:transparent;color:var(--ink-mute);transition:border-color .3s,color .3s,background .3s}
.shop-filters button:hover{border-color:var(--ink-mute);color:var(--ink)}
.shop-filters button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--cream)}

.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-soft);border:1px solid var(--line-soft)}
@media(max-width:980px){.shop-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.shop-grid{grid-template-columns:1fr}}

.item{background:var(--cream);padding:24px 24px 22px;display:flex;flex-direction:column;gap:9px;text-decoration:none;color:inherit;position:relative;transition:background .35s}
.item[hidden]{display:none}
@media(hover:hover){.item:hover{background:var(--paper)}}
.item-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.item-name{font-family:'Syne',sans-serif;font-weight:800;font-size:1.06rem;letter-spacing:-.01em;color:var(--ink)}
.item-desc{font-size:.9rem;line-height:1.6;color:var(--ink-mute)}
.item-st{font-family:'Space Mono',monospace;font-size:.58rem;letter-spacing:1.2px;text-transform:uppercase;padding:4px 9px;border-radius:100px;white-space:nowrap;flex-shrink:0;border:1px solid var(--line)}
/* Na uskom ekranu duga oznaka ("Play Console · test") ne moze da se skupi
   uz ime pa probija karticu — 13px viska na 390px. Pusti je u novi red. */
@media(max-width:620px){
  .item-top{flex-wrap:wrap;gap:8px}
  .item-st{white-space:normal;flex-shrink:1}
}
.item-st[data-s="zivo"]{color:#08554E;border-color:rgba(14,140,130,.45);background:rgba(14,140,130,.08)}
.item-st[data-s="produkcija"]{color:#6E4207;border-color:rgba(212,132,10,.45);background:rgba(212,132,10,.09)}
.item-st[data-s="izrada"]{color:var(--ink-mute)}
.item-arrow{opacity:0;transition:opacity .3s,transform .3s var(--ease-out);color:var(--amber-dk);flex-shrink:0}
@media(hover:hover){.item:hover .item-arrow{opacity:1;transform:translate(2px,-2px)}}

/* Alati bez svoje stranice. Ranije su stajali kao mrtvi kvadrati u istoj
   mrezi sa onima koji se klikcu — ista pojava, razlicito ponasanje.
   Sada svi vode na kontakt, a ovi se jasno razlikuju: bez podvlacenja
   imena i sa oznakom da se o njima pita. */
.item.na-upit .item-name{color:var(--ink-soft)}
.item.na-upit::after{content:'na upit';position:absolute;right:22px;bottom:20px;
  font-family:'Space Mono',monospace;font-size:.56rem;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--ink-mute);opacity:0;transition:opacity .3s}
@media(hover:hover){
  .item.na-upit:hover::after{opacity:1}
  .item.na-upit:hover .item-name{color:var(--ink)}
}
.item.na-upit{padding-bottom:34px}

/* ---------- BLOG ---------- */
.journal{padding:0 0 130px}
.journal-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:44px;flex-wrap:wrap}
.journal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:980px){.journal-grid{grid-template-columns:1fr}}
.post{display:flex;flex-direction:column;gap:14px;padding:32px 30px;background:var(--paper);border:1px solid var(--line);border-radius:18px;text-decoration:none;color:inherit;transition:transform .4s var(--ease-out),border-color .4s,box-shadow .4s}
@media(hover:hover){.post:hover{transform:translateY(-4px);border-color:var(--ink);box-shadow:var(--shadow)}}
.post .cat{font-family:'Space Mono',monospace;font-size:.62rem;letter-spacing:1.8px;text-transform:uppercase;color:var(--amber-dk)}
.post h3{font-family:'Syne',sans-serif;font-weight:700;font-size:1.18rem;line-height:1.32;letter-spacing:-.015em;color:var(--ink)}
.post .more{margin-top:auto;padding-top:16px;font-family:'Space Mono',monospace;font-size:.66rem;letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-mute);display:flex;align-items:center;gap:8px}

/* ==========================================================================
   KONTAKT — v1 je imao samo mailto. Ovo je prava forma + telefon + Viber.
   ========================================================================== */
.cta{padding:0 0 130px}
.cta-box{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:28px;padding:76px 70px;overflow:hidden;box-shadow:var(--shadow)}
@media(max-width:860px){.cta-box{padding:48px 26px;border-radius:20px}}
.cta-box::before{content:'';position:absolute;top:-40%;right:-10%;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(212,132,10,.14),transparent 65%);pointer-events:none}
.cta-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
@media(max-width:980px){.cta-grid{grid-template-columns:1fr;gap:44px}}
/* :not(.sec-label) — u sekciji stoje dva h2: sitna oznaka i veliki naslov.
   Bez ovoga bi "Razgovarajmo" bilo ispisano istom velicinom kao naslov. */
.cta h2:not(.sec-label){font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(2.1rem,4.3vw,3.6rem);line-height:1.03;letter-spacing:-.035em;color:var(--ink);margin-bottom:22px;text-wrap:balance}
.cta h2 em{font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;background:var(--grad-headline);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.cta-lede{font-size:1.08rem;line-height:1.7;color:var(--ink-soft);margin-bottom:36px;max-width:44ch}

.direct{display:flex;flex-direction:column;gap:14px;margin-top:8px;min-width:0}
.direct a{display:flex;align-items:center;gap:16px;padding:18px 22px;border:1.5px solid var(--line);border-radius:14px;
  text-decoration:none;color:var(--ink);background:rgba(237,228,208,.4);transition:border-color .35s,transform .35s var(--ease-out),background .35s}
.direct a:hover{border-color:var(--ink);transform:translateX(4px);background:var(--cream-pale)}
.direct .ic{width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--cream);display:grid;place-items:center;flex-shrink:0}
.direct .tx{display:flex;flex-direction:column;gap:2px;min-width:0}
/* "info@masudis.com" je jedan neprelomljiv token — bez ovoga njegova
   min-content sirina razvuce celu grid kolonu preko ekrana na telefonu. */
.direct .tx b{font-family:'Syne',sans-serif;font-weight:800;font-size:1.06rem;letter-spacing:-.01em;overflow-wrap:anywhere}
.direct .tx span{overflow-wrap:anywhere}
.direct .tx span{font-family:'Space Mono',monospace;font-size:.66rem;letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-mute)}

/* --- forma --- */
.form{display:flex;flex-direction:column;gap:18px}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:600px){.f-row{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-family:'Space Mono',monospace;font-size:.66rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-mute)}
.field label .req{color:var(--amber-dk)}
.field input,.field textarea,.field select{
  font-family:'Syne',sans-serif;font-size:1rem;color:var(--ink);background:var(--cream-pale);
  border:1.5px solid var(--line);border-radius:12px;padding:15px 17px;width:100%;
  transition:border-color .3s,background .3s}
.field textarea{min-height:130px;resize:vertical;line-height:1.6}
.field input:hover,.field textarea:hover,.field select:hover{border-color:var(--ink-faint)}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--amber);background:var(--paper);outline:none}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:var(--rust);background:rgba(199,62,47,.05)}
.field .err{font-family:'Space Mono',monospace;font-size:.66rem;color:var(--rust);letter-spacing:.4px;min-height:0}
.field .err:empty{display:none}
/* honeypot — nevidljivo ljudima, popune ga botovi */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.form-foot{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:6px}
.form-note{font-family:'Space Mono',monospace;font-size:.64rem;letter-spacing:.6px;color:var(--ink-mute);line-height:1.7;max-width:34ch}
.form-note a{color:var(--ink-soft)}

.form-msg{padding:16px 20px;border-radius:12px;font-size:.95rem;line-height:1.6;display:none}
.form-msg.show{display:block}
.form-msg.ok{background:rgba(14,140,130,.1);border:1.5px solid rgba(14,140,130,.4);color:#0B6F67}
.form-msg.bad{background:rgba(199,62,47,.08);border:1.5px solid rgba(199,62,47,.4);color:#A32E22}

/* spinner u dugmetu */
.spin{width:15px;height:15px;border:2px solid rgba(237,228,208,.35);border-top-color:var(--cream);border-radius:50%;animation:sp .7s linear infinite;display:none}
.is-sending .spin{display:block}
.is-sending .btn-lbl{opacity:.7}
@keyframes sp{to{transform:rotate(360deg)}}

/* ==========================================================================
   LEPLJIVA AKCIONA TRAKA — samo telefon.
   Na mobilnom hero zauzme ceo ekran i dugmad padnu ispod preloma. Publika
   ovog sajta zove telefonom; traka drzi taj potez na dohvatu palca u svakom
   trenutku. Sakriva se dok je otvoren meni i dok je kontakt sekcija u vidu,
   da ne pokriva sopstvenu formu.
   ========================================================================== */
.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 var(--ease-out)
  }
  .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)}
  /* da traka ne pokrije poslednji red footera */
  footer{padding-bottom:calc(44px + 76px)}
  .mob.open ~ .dock{transform:translateY(115%)}
}

/* ---------- FOOTER ---------- */
footer{padding:80px 0 44px;border-top:1px solid var(--line)}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.3fr;gap:56px;margin-bottom:66px}
@media(max-width:880px){.foot-grid{grid-template-columns:1fr 1fr;gap:44px}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}
.foot-brand .brand-txt{font-size:1.1rem}
.foot-brand p{font-size:.94rem;line-height:1.7;color:var(--ink-mute);max-width:32ch;margin-top:18px}
.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}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:13px}
.foot-col a{font-size:.96rem;color:var(--ink-soft);text-decoration:none;transition:color .3s,padding-left .3s var(--ease-out)}
.foot-col a:hover{color:var(--amber-dk);padding-left:6px}
.foot-legal{font-family:'JetBrains Mono',monospace;font-size:.7rem;line-height:1.9;color:var(--ink-mute);margin-top:20px}

/* ---------- IKONICE DRUŠTVENIH MREŽA ----------
   Samo kanali koji stvarno postoje: telefon, Viber (isti broj), Instagram
   @masudis.studio i mejl. Ništa se ne dodaje "za svaki slučaj" — mrtva
   ikonica koja vodi na prazan profil gori je nego da je nema. */
/* iste vrednosti stoje i u masudis-most.css — stranice se dele na dva
   stylesheeta, pa pravilo mora u oba. Kad menjas, menjaj na oba mesta. */
.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 var(--ease-out)}
.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}
[data-tema="tamna"] .soc a{border-color:rgba(255,255,255,.22);color:#F2EDE1;background:rgba(255,255,255,.04)}
[data-tema="tamna"] .soc a:hover{background:#F2EDE1;color:#1F2024;border-color:#F2EDE1}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding-top:32px;border-top:1px solid var(--line-soft)}
.foot-bottom span,.foot-bottom a{font-family:'Space Mono',monospace;font-size:.66rem;letter-spacing:1px;text-transform:uppercase;color:var(--ink-mute);text-decoration:none}
.foot-bottom a:hover{color:var(--ink)}
.foot-pow strong{background:var(--grad-headline);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}

/* ==========================================================================
   STRANICA /sajtovi/
   ========================================================================== */
.page-hero{padding:190px 0 90px}
/* NE koristiti `ch` za merenje naslova: kod Syne 800 je "0" siroko skoro 1em,
   pa 16ch ispadne 16em i uopste ne ogranicava. Zato piksel + text-wrap:balance. */
.page-hero h1{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(2.4rem,5vw,4.6rem);line-height:1.02;letter-spacing:-.04em;max-width:900px;text-wrap:balance}
.page-hero h1 em{font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;background:var(--grad-headline);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.page-hero .lede{max-width:56ch;font-size:1.14rem;line-height:1.72;color:var(--ink-soft);margin-top:30px}
.crumb{font-family:'Space Mono',monospace;font-size:.68rem;letter-spacing:1.6px;text-transform:uppercase;color:var(--ink-mute);margin-bottom:28px;display:flex;gap:10px;align-items:center}
.crumb a{color:var(--ink-mute);text-decoration:none}
.crumb a:hover{color:var(--ink)}

/* paketi */
.tiers{padding:40px 0 120px}
.tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:22px;overflow:hidden}
@media(max-width:980px){.tier-grid{grid-template-columns:1fr}}
.tier{background:var(--paper);padding:44px 36px;display:flex;flex-direction:column}
.tier.mark{background:var(--cream-pale)}
.tier-tag{font-family:'Space Mono',monospace;font-size:.64rem;letter-spacing:2px;text-transform:uppercase;color:var(--amber-dk);margin-bottom:16px}
.tier h3{font-family:'Syne',sans-serif;font-weight:800;font-size:1.6rem;letter-spacing:-.02em;margin-bottom:12px}
.tier .who{font-size:.96rem;line-height:1.65;color:var(--ink-soft);margin-bottom:24px;min-height:3.2em}
/* raspon "120.000 – 240.000 RSD" je dug niz — na 1.9rem se prelamao i "RSD"
   je ostajalo samo u drugom redu. Manje i bez preloma. */
.tier .price{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(1.3rem,1.9vw,1.55rem);
  letter-spacing:-.03em;color:var(--ink);padding-bottom:20px;border-bottom:1px solid var(--line-soft);
  margin-bottom:24px;white-space:nowrap}
.tier .price small{white-space:normal}
.tier .price small{display:block;font-family:'Space Mono',monospace;font-size:.64rem;font-weight:400;letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-mute);margin-top:8px}
.tier ul{list-style:none;display:flex;flex-direction:column;gap:12px;margin-bottom:32px}
.tier li{font-size:.95rem;line-height:1.55;color:var(--ink-soft);display:flex;gap:11px;align-items:flex-start}
.tier li svg{flex-shrink:0;margin-top:.28em;color:var(--amber-dk)}
.tier .go{margin-top:auto}

/* sta nije ukljuceno — stoji odmah ispod cena.
   Bez ovoga svaki posao zavrsi raspravom oko obima. */
.napomena{margin-top:34px;padding:26px 30px;border:1px dashed var(--line);border-radius:16px;
  background:rgba(251,247,236,.45)}
.napomena h3{font-family:'Space Mono',monospace;font-size:.68rem;letter-spacing:2px;text-transform:uppercase;
  color:var(--ink-mute);margin-bottom:14px;font-weight:400}
.napomena p{font-size:.97rem;line-height:1.75;color:var(--ink-soft);max-width:74ch}
.napomena strong{color:var(--ink);font-weight:700}

/* besplatan pregled postojeceg sajta — najjeftiniji ulaz u razgovor */
/* cela kartica je <a>, pa se boja i podvlacenje moraju resetovati —
   inace naslov i pasus ispadnu plavi i podvuceni kao obican link */
.pregled{margin-top:26px;display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;
  padding:32px 34px;border:1.5px solid var(--ink);border-radius:18px;background:var(--paper);
  box-shadow:var(--shadow);text-decoration:none;color:var(--ink);
  transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out)}
.pregled,.pregled *{text-decoration:none}
.pregled h3{color:var(--ink)}
@media(hover:hover){.pregled:hover{transform:translateY(-3px);
  box-shadow:0 40px 90px -32px rgba(60,48,20,.45),0 12px 30px -14px rgba(60,48,20,.25)}}
@media(max-width:860px){.pregled{grid-template-columns:1fr;gap:18px;padding:26px 22px;text-align:left}}
.pregled > *{min-width:0}
.pregled .znak{width:52px;height:52px;border-radius:50%;background:var(--ink);color:var(--cream);
  display:grid;place-items:center;flex-shrink:0}
.pregled h3{font-family:'Syne',sans-serif;font-weight:800;font-size:1.35rem;letter-spacing:-.02em;margin-bottom:8px}
.pregled p{font-size:.99rem;line-height:1.65;color:var(--ink-soft);max-width:56ch}
.pregled .cena{font-family:'Space Mono',monospace;font-size:.68rem;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--teal-dk);margin-top:10px;display:inline-block}

/* proces */
.steps{padding:0 0 120px}
.step-list{border-top:1px solid var(--line);margin-top:52px}
.step{display:grid;grid-template-columns:100px 1fr 1.2fr;gap:40px;padding:34px 0;border-bottom:1px solid var(--line);align-items:baseline}
@media(max-width:860px){.step{grid-template-columns:1fr;gap:12px;padding:26px 0}}
.step .n{font-family:'Space Mono',monospace;font-size:.8rem;color:var(--amber-dk);letter-spacing:1px}
.step h3{font-family:'Syne',sans-serif;font-weight:800;font-size:1.45rem;letter-spacing:-.02em}
.step p{font-size:1rem;line-height:1.7;color:var(--ink-soft)}

/* faq */
.faq{padding:0 0 130px}
.faq-list{border-top:1px solid var(--line);margin-top:44px;max-width:900px}
.qa{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;padding:26px 0;display:flex;align-items:center;justify-content:space-between;gap:24px;
  font-family:'Syne',sans-serif;font-weight:700;font-size:1.14rem;letter-spacing:-.015em;color:var(--ink)}
.qa summary::-webkit-details-marker{display:none}
.qa summary .pm{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;flex-shrink:0;transition:.35s var(--ease-out)}
.qa[open] summary .pm{background:var(--ink);border-color:var(--ink);color:var(--cream);transform:rotate(45deg)}
.qa .a{padding:0 0 26px;max-width:64ch}
.qa .a p{font-size:1rem;line-height:1.75;color:var(--ink-soft)}
.qa .a p + p{margin-top:14px}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1180px){
  .nav-links{gap:24px}
  .nav-tel span{display:none}
  .nav-tel{padding:11px 13px}
}
@media(max-width:1080px){.shell{padding:0 40px}.nav-in{padding:24px 40px}#nav.scrolled .nav-in{padding:16px 40px}}
@media(max-width:900px){
  .nav-links{display:none}
  .burger{display:flex}
  .shell{padding:0 26px}.nav-in{padding:22px 26px}#nav.scrolled .nav-in{padding:14px 26px}
  body{cursor:auto}
  .cur-dot,.cur-ring,.cur-label{display:none!important}
  .field input,.field textarea,.field select,.burger,.mob-close,.qa summary,.shop-filters button{cursor:auto}
  .manifesto,.products,.approach,.cta,.works,.shop,.journal,.tiers,.steps,.faq{padding-top:80px;padding-bottom:80px}
  .branches{padding-bottom:80px}
  .branch{padding:38px 26px 34px}
  .prod-row-in{grid-template-columns:1fr;gap:14px}
  .prod-num,.prod-arrow{display:none}
  .stat{padding:30px 0;border-right:none!important;border-bottom:1px solid rgba(237,228,208,.12)}
  .page-hero{padding:140px 0 60px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
  .hero h1 .ln > span{transform:none}
  html{scroll-behavior:auto}
}

/* ---------- STAMPA ---------- */
@media print{
  .grain,.progress,#nav,.mob,.cur-dot,.cur-ring,.cur-label,.hero-art,.form{display:none!important}
  body{background:#fff;color:#000;cursor:auto}
  .reveal{opacity:1;transform:none}
}

/* --- potpis na 404 i hvala: te dve stranice nemaju pun footer --- */
.mini-foot{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:8px 22px;
  justify-content:center;align-items:center;padding:26px 24px 34px;
  font-family:'Space Mono',monospace;font-size:.68rem;letter-spacing:1.5px;
  color:var(--ink-mute);border-top:1px solid var(--line);text-align:center}
.mini-foot span:first-child{color:var(--ink);font-weight:700;letter-spacing:2px}
.mini-foot a{color:var(--ink-mute);text-decoration:none;border-bottom:1px solid var(--line)}
.mini-foot a:hover{color:var(--ink);border-bottom-color:var(--ink)}

/* ==========================================================================
   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 figcaption{font-size:.86rem}
}

/* uvecavanje na klik — van medija upita, vazi na svim sirinama */
.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)}

/* 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}

/* ==========================================================================
   STA SVE MOZEMO
   Sirok pregled usluga, sa portretom. Stoji posle statistike, gde citalac
   pita ko je iza ovoga — pa mu se odgovori licem, a ne jos jednim naslovom.
   ========================================================================== */
.moze{padding:clamp(80px,10vw,140px) 0;background:var(--paper);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

.moze-vrh{display:grid;grid-template-columns:auto 1fr;gap:clamp(28px,5vw,64px);
  align-items:center;margin-bottom:clamp(44px,6vw,72px)}
.moze-lice{display:flex;flex-direction:column;align-items:center;gap:16px;min-width:0}
.moze-lice img{width:clamp(148px,17vw,210px);height:auto;border-radius:18px;display:block;
  box-shadow:0 22px 48px -26px rgba(13,12,20,.55)}
.moze-potpis{text-align:center;line-height:1.5}
.moze-potpis strong{display:block;font-family:'Syne',sans-serif;font-weight:800;
  font-size:.98rem;letter-spacing:-.01em;color:var(--ink)}
.moze-potpis span{display:block;font-family:'Space Mono',monospace;font-size:.62rem;
  letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-mute);margin-top:4px}

.moze-uvod p{max-width:62ch;margin-top:18px;line-height:1.8;color:var(--ink-soft)}
.moze-uvod .moze-mala{font-size:.94rem;color:var(--ink-mute)}

/* tri kolone: devet kartica popuni tacno tri reda, bez prazne celije */
.moze-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.moze-k{background:var(--paper);padding:30px 28px 32px;min-width:0;
  transition:background .35s var(--ease-out)}
.moze-k:hover{background:var(--cream)}
.moze-num{font-family:'Space Mono',monospace;font-size:.66rem;letter-spacing:2px;
  color:var(--amber-dk);margin-bottom:14px}
.moze-ime{font-family:'Syne',sans-serif;font-weight:800;font-size:1.16rem;
  letter-spacing:-.015em;color:var(--ink);margin-bottom:16px}
.moze-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.moze-lista li{position:relative;padding-left:18px;font-size:.93rem;line-height:1.6;
  color:var(--ink-soft)}
.moze-lista li::before{content:'';position:absolute;left:0;top:.62em;width:6px;height:6px;
  border-radius:50%;background:var(--amber);opacity:.75}

.moze-dno{margin-top:clamp(36px,5vw,56px);display:flex;flex-wrap:wrap;gap:22px;
  align-items:center;justify-content:space-between}
.moze-dno p{max-width:52ch;line-height:1.75;color:var(--ink-soft);margin:0}

@media(max-width:860px){
  .moze-vrh{grid-template-columns:1fr;justify-items:start;gap:26px}
  .moze-lice{flex-direction:row;align-items:center;gap:18px}
  .moze-potpis{text-align:left}
  .moze-grid{border-radius:14px}
  .moze-k{padding:24px 22px 26px}
}

/* omotac dugmadi — koristi ga i sekcija „Sta sve mozemo” */
.cta-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
