/* ============================================================
   blog.css — „Priče" (/price/): listing + članak.
   Port design_handoff_blog (2026-07-09), pravac „Indeks" (Listing A),
   oznaka brzine = Merač, POVEZANO = Mreža, Signal = redukovan šablon.

   Scope: SVE pod body.page-price — tokeni, tipografija i komponente
   ne cure na druge strane. Header/footer partial-i su deljeni; futer
   ovde dobija TAMNI tretman (samo za Priče — Denisova odluka: telo
   i tamni futer vezuju Priče za dosije familiju, standardni futer
   partial je vezuje za obične strane).

   Tema: default TAMNA (theme-toggle.js, cookie cp_theme); :light
   varijanta ispod. Header/futer ostaju tamni u obe teme.
   ============================================================ */

/* Skrol-bar pripada <html> (ne <body>) — base.css forsira color-scheme:light,
   pa na tamnoj strani gornje dugme skrol-bara „svetli" preko tamnog hedera.
   Isti obrazac kao simulator/lozinka/alati: html prati temu (default dark).
   scrollbar-gutter: stable — rezerviše žleb za skrolbar pa se ni na
   pregledačima sa OVERLAY skrolbarom (Opera GX/Brave/macOS) ne crta preko
   sticky hedera; na klasičnom skrolbaru (Win Chrome) nema promene. */
html { color-scheme: dark; scrollbar-gutter: stable; }
html[data-theme="light"] { color-scheme: light; }

/* Viewport-lock (Priče): heder ostaje fiksiran na vrhu, a sadržaj (main+footer,
   uvijeni u .cp-scroll) skroluje u sopstvenom kontejneru ISPOD hedera → skrolbar
   živi ispod hedera i nikad ne prelazi preko njega (jedini pristup koji radi i
   na iOS-u, gde CSS za skrolbar strane ne pomaže). Konzola /vesti/ koristi isti
   obrazac. */
html:has(body.page-price) { height: 100%; overflow: hidden; }
/* html pozadina MORA da prati temu Priča. Bez ovoga <html> ostaje na svetloj
   difolt boji sajta (#f4f4f2) dok je telo tamno → na iOS-u ta svetla površina
   probija ispod sadržaja (overscroll/dvh) i kroz transparentne krajeve crvene
   niti (.hdr::after / .ftA::after su transparent→crveno→transparent) → linija
   se čita kao „belo→crveno→belo" na dnu. Tamna html-pozadina to gasi. */
/* S84 (Denis): NOTCH boja = BODY pozadina. Na iOS-u body (100dvh, overflow:
   hidden) prekriva ceo viewport uključujući notch traku → notch pokazuje BODY
   bg, ne html canvas (zato ranija html izmena nije pomogla na telefonu). Heder
   je TAMAN u obe teme (#0f0f0d) → body mora #0f0f0d da se notch stopi sa
   hederom (kao /simulator/, gde je body već #0f0f0d). Zato je body bg dole u
   token-bloku promenjen na #0f0f0d, a članak (paper) je premešten na .cp-scroll
   pa se SADRŽAJ ne menja. html ostaje dark/paper (rub overscroll-a). */
html:has(body.page-price) { background: #0f0f0d; }
/* S85 (Denis): html TAMAN i u light temi — svetli html je na iOS-u provirivao
   kao svetla linijica između tamnog futera i Safari trake. Hrom (notch/rubovi/
   safe-area) je uvek taman [[feedback_dark_chrome]]; paper nosi .cp-scroll. */
html[data-theme="light"]:has(body.page-price) { background: #0f0f0d; }
body.page-price {
    height: 100vh; height: 100dvh;
    display: flex; flex-direction: column; overflow: hidden;
}
body.page-price > .hdr { position: static; flex: none; }
body.page-price > .cp-scroll {
    flex: 1 1 auto; min-height: 0;
    overflow-y: auto; overflow-x: hidden;
    background: var(--paper);           /* članak nosi paper; body je #0f0f0d (notch) */
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
}

/* ── Tokeni — svetli sadržaj ── */
body.page-price {
    --paper:  #f7f6f3;
    --cream:  #fafaf8;
    --sand:   #eceae4;
    --stone:  #d6d4ce;
    --slate:  #5a5754;
    /* sitni meta tekst (datum, broj pojmova, idx-note): #9a9a98/#8a8783 su na
       svetlom papiru merili 2.61–3.31:1 (AA traži 4.5) — bile su hardkodovane,
       pa ih tamna tema (gde prolaze) nije mogla spasiti. */
    --meta:   #6f6d68;
    --coal:   #2a2825;
    --ink:    #1a1a18;
    --deep:   #141412;
    --brand:  #9b1919;
    /* --brand nosi i podloge i niti; za slova ide -text (S131) */
    --brand-text: var(--brand);
    --brand-hover: #7d1414;
    --brand-faint: rgba(155, 25, 25, 0.10);
    --steel:  #3a5570;
    /* #a6731f je na papiru merio 3,81 — jedini od sest koji je padao. */
    --amber:  #8c611a;
    --forest: #4a5d3e;
    /* Ove tri su ranije postojale SAMO u tamnom bloku, pa je --cat za kategorije
       „softver", „ljudi" i „praksa" u svetloj temi ostajao nerazresen i boja se
       gubila. Vrednosti su tamne parnjake spustene na papir (2,48-3,06 -> 5,07+). */
    --teal:   #41716b;
    --clay:   #9f5538;
    --plum:   #835b84;
    --border-light: #e0dedd;
    --border-soft:  #e8e6e3;
    /* alat blok — invertovana „terminal" kartica; tamna u obe teme */
    --alat-bg: #1a1a18;
    --alat-fg-strong: #f0ede8;
    --alat-fg: #b0ada8;
    --alat-fg-mute: #8a8780;
    --alat-border: transparent;
    color-scheme: light;

    /* Širina kolone članka (desktop). Istorija: start 48rem (~80 znakova/red),
       pa +20% na 57.6rem — ali broj „~78" u starom komentaru opisivao je 48rem,
       ne 57.6rem; stvarno je bilo 97 znakova/red (brojano Range API-jem, S130).
       Denisova odluka S130: sredina — 52rem = medijana 88, prosek 87, max 97. */
    --art-w: 52rem;
    /* Osnovna veličina teksta u telu članka — menja je kontrola „veličina
       teksta" (data-tsize na .art); default 18px. */
    --art-fs: 18px;

    /* body bg = #0f0f0d (boja hedera) da se notch stopi s hederom (S84, Denis).
       Sadržaj članka nosi --paper preko .cp-scroll (gore). */
    background: #0f0f0d;
    color: var(--ink);
    font-size: 18px;
    line-height: 1.7;
}

/* ── Tokeni — tamni sadržaj (default) + dot-tekstura „digitalni teren"
      (telo se jasno razlikuje od pune tamne futer ploče) ── */
body.page-price[data-theme="dark"] {
    --paper:  #161614;
    --cream:  #1e1e1c;
    --sand:   #232320;
    --stone:  #35342f;
    --slate:  #a5a29c;
    --meta:   #9a9a98;
    --coal:   #d0cdc6;
    --ink:    #ece9e3;
    --deep:   #f3f0ea;
    --brand:  #c52828;
    --brand-text: var(--brand-on-plate);
    --brand-hover: #a51f1f;
    --brand-faint: rgba(197, 40, 40, 0.16);
    --steel:  #6a8db2;
    --amber:  #c79248;
    --forest: #8aa578;
    --teal:   #5fa39a;
    --clay:   #cf8f76;
    --plum:   #a781a8;
    --border-light: #2c2c29;
    --border-soft:  #26251f;
    --alat-bg: #0d0d0b;
    --alat-border: #2c2c29;
    color-scheme: dark;

    background-image: radial-gradient(circle at 1px 1px, rgba(236,233,227,0.032) 1px, transparent 1.5px);
    background-size: 46px 46px;
}

body.page-price ::selection { background: var(--brand-faint); }
.page-price main :focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.page-price main a { color: inherit; text-decoration: none; }
.page-price main button { font: inherit; cursor: pointer; border: 0; background: none; color: inherit; }

/* ============================================================
   SPEED — oznaka brzine, forma MERAČ (usvojeno; segmenti = minuti)
   ============================================================ */
.page-price .speed {
    display: inline-flex; align-items: center; gap: 8px;
    font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.04em;
    color: var(--slate); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.page-price .speed b { color: var(--ink); font-weight: 600; letter-spacing: 0.08em; }
/* Boja labela vezana za tip (ne samo segmenti): Signal = brend „puls",
   Dosije = smiren ink meter. Jača razlika dve brzine na listingu. */
.page-price .speed--sig b { color: var(--brand-text); }
.page-price .speed--dos b { color: var(--ink); }
.page-price .speed .speed-gauge { display: inline-flex; gap: 2px; align-items: center; flex: none; }
.page-price .speed .speed-gauge i { width: 5px; height: 12px; background: var(--stone); border-radius: 1px; }
.page-price .speed--sig .speed-gauge i.on { background: var(--brand); }
.page-price .speed--dos .speed-gauge i.on { background: var(--ink); }
/* Signal ima jedan segment — dajmo mu malo veću težinu da „brzi" token ne
   deluje kao usamljena crtica pored višesegmentnog Dosijea. */
.page-price .speed--sig .speed-gauge i.on { width: 7px; }

/* legenda (dve brzine) */
.page-price .speed-legend { display: flex; flex-wrap: wrap; gap: 16px 26px; margin-top: 24px; }
.page-price .speed-legend .li { display: inline-flex; align-items: center; gap: 10px; }
.page-price .speed-legend .lx {
    font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.05em; color: var(--slate);
    line-height: 1.5; white-space: nowrap;   /* opis brzine ostaje u jednom redu */
}
/* na uskim ekranima dve legende se slažu jedna ispod druge (item ostaje ceo) */
@media (max-width: 560px) {
    .page-price .speed-legend { flex-direction: column; gap: 10px; }
    .page-price .speed-legend .lx { white-space: normal; }
}

/* ============================================================
   LISTING — glava + čipovi + nota
   ============================================================ */
.page-price .idx-head { max-width: 64rem; margin: 0 auto; padding: 66px 24px 0; }
.page-price .kicker {
    font-family: var(--font-mono); font-size: 12px; font-weight: 500;
    letter-spacing: 0.16em; text-transform: uppercase; color: var(--brand-text);
    display: inline-flex; align-items: center; gap: 12px; margin-bottom: 18px;
}
.page-price .kicker .dash { width: 22px; height: 1px; background: var(--brand); }
.page-price .idx-head h1 {
    font-size: clamp(34px, 5vw, 50px); line-height: 1.1; letter-spacing: -0.02em;
    margin: 0 0 18px; text-wrap: balance; color: var(--deep); font-weight: 700;
}
.page-price .idx-dek { max-width: 44rem; color: var(--slate); font-size: 19px; margin: 0; }
.page-price .idx-dek b { color: var(--ink); font-weight: 600; }

.page-price .chips { max-width: 64rem; margin: 34px auto 0; padding: 0 24px; display: flex; flex-wrap: wrap; gap: 8px; }
.page-price .chip {
    font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.07em; text-transform: uppercase;
    border: 1px solid var(--stone); background: var(--cream); color: var(--slate);
    padding: 6px 13px; border-radius: 2px; transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.page-price .chip:hover { border-color: var(--slate); color: var(--ink); }
.page-price .chip.on { background: var(--ink); border-color: var(--ink); color: var(--paper); }

.page-price .idx-note {
    max-width: 64rem; margin: 0 auto; padding: 30px 24px 90px;
    font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.05em; color: var(--meta);
    display: flex; gap: 8px 20px; flex-wrap: wrap; border-top: 1px solid var(--border-light);
}
.page-price .idxA .row.hide { display: none !important; }
/* Udovice bez tvrdih spojeva: pregledač koji zna `pretty` prelama tako da
   poslednji red ne ostane sa jednom rečju; ostali prelamaju normalno. */
.page-price .art .body p, .page-price .art .body li, .page-price .art .body blockquote, .page-price .art .dek { text-wrap: pretty; }

/* Samo za čitače ekrana (živa regija filtera) — vizuelno nepostojeće. */
.page-price .vh { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

/* ── PINOVANI LEAD (srednji tretman — izdvojen, indeks ostaje glavni) ── */
.page-price .lead-wrap { max-width: 64rem; margin: 36px auto 4px; padding: 0 24px; }
.page-price .lead {
    display: grid; grid-template-columns: auto 1fr; gap: 0 26px; align-items: start;
    background: var(--cream); border: 1px solid var(--border-light); border-left: 3px solid var(--brand);
    padding: 30px 34px 28px; transition: border-color 0.15s;
}
.page-price .lead:hover { border-left-color: var(--brand-hover); }
.page-price .lead:hover h2 { color: var(--brand-text); }
.page-price .lead .lead-flag {
    grid-row: 1 / span 3; align-self: start;
    writing-mode: vertical-rl; transform: rotate(180deg);
    font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase;
    color: var(--brand-text); padding-top: 2px;
}
.page-price .lead .row-kicker { grid-column: 2; }
.page-price .row-kicker {
    font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--slate); margin: 0 0 12px; display: flex; gap: 12px; align-items: center;
}
.page-price .row-kicker .cat { color: var(--cat, var(--steel)); }

/* Identitet kategorija — svaka nosi svoju mute boju (data-cat na redu/leadu/
   članku → --cat). Boja se pojavljuje na oznaci kategorije (registar levo,
   lead kicker, kicker članka); telo ostaje neutralno. Fallback = steel. */
.page-price [data-cat="analize"]    { --cat: var(--steel); }
.page-price [data-cat="softver"]    { --cat: var(--teal); }
.page-price [data-cat="edukacija"]  { --cat: var(--amber); }
.page-price [data-cat="ljudi"]      { --cat: var(--clay); }
.page-price [data-cat="poslovanje"] { --cat: var(--forest); }
.page-price [data-cat="praksa"]     { --cat: var(--plum); }
.page-price .lead h2 {
    grid-column: 2; font-size: clamp(24px, 3.2vw, 33px); line-height: 1.18; letter-spacing: -0.015em;
    margin: 0 0 12px; text-wrap: balance; color: var(--deep); font-weight: 700; transition: color 0.15s;
}
.page-price .lead .dek { grid-column: 2; color: var(--slate); font-size: 17.5px; max-width: 46rem; margin: 0 0 18px; }
.page-price .lead .row-meta { grid-column: 2; }
.page-price .row-meta {
    font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.04em; color: var(--slate);
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; font-variant-numeric: tabular-nums;
}
.page-price .row-meta .dot { width: 3px; height: 3px; background: var(--stone); border-radius: 50%; }

/* ============================================================
   LISTING A — INDEKS (editorijalni registar)
   ============================================================ */
.page-price .idxA { max-width: 64rem; margin: 40px auto 0; padding: 0 24px; }
.page-price .idxA .row {
    display: grid; grid-template-columns: 150px minmax(0,1fr) auto; gap: 26px;
    padding: 26px 6px; border-top: 1px solid var(--border-light); align-items: start;
}
.page-price .idxA .row:last-of-type { border-bottom: 1px solid var(--border-light); }
.page-price .idxA .row .col-cat { display: flex; flex-direction: column; gap: 6px; padding-top: 3px; }
.page-price .idxA .row .cat {
    font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cat, var(--steel));
}
.page-price .idxA .row .date { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.04em; color: var(--meta); }
.page-price .idxA .row h3 {
    font-size: 21px; line-height: 1.32; font-weight: 600; letter-spacing: -0.005em; color: var(--ink);
    margin: 0 0 7px; transition: color 0.15s;
}
.page-price .idxA .row:hover h3 { color: var(--brand-text); }
.page-price .idxA .row .dek { color: var(--slate); font-size: 16.5px; max-width: 42rem; margin: 0; }
.page-price .idxA .row .col-meta {
    display: flex; flex-direction: column; align-items: flex-end; gap: 9px; padding-top: 2px; text-align: right;
}
.page-price .idxA .row .poj { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.04em; color: var(--meta); }
@media (max-width: 820px) {
    .page-price .idxA .row { grid-template-columns: 1fr; gap: 10px; padding: 22px 2px; }
    .page-price .idxA .row .col-cat { flex-direction: row; gap: 12px; align-items: center; padding-top: 0; }
    .page-price .idxA .row .col-meta { align-items: flex-start; text-align: left; flex-direction: row; gap: 14px; }
}

/* ============================================================
   ČLANAK
   ============================================================ */
/* Audio verzija — tiha traka: cream + tanka ivica, BEZ crvenog akcenta
   (kartica sa crvenom ivicom čitala se kao navod, go red kao uglavljen —
   Denis S129, sredina). Nativni <audio> (pristupačan sam po sebi;
   color-scheme po temi farba kontrole) + obeležje reči koja se izgovara. */
.page-price .art-audio {
    /* bliže meta redu iznad nego tekstu ispod — traka pripada signalima
       strane, ne telu (Denis S129) */
    margin: 14px 0 30px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
    background: var(--cream); border: 1px solid var(--border-light);
    border-radius: 2px; padding: 10px 14px;
}
/* SIGNAL meta (.compact) nosi margin-bottom 28px koji sudarom margina guta
   marginu trake — uvuci je da gap bude 14px kao i na dosijeu (čiji meta red
   nema donju marginu, pa tamo važi osnovnih 14px; S129, slepljeno na dosijeu). */
.page-price .art-meta.compact + .art-audio { margin-top: -14px; }
/* Od prvog puštanja do kraja snimka traka se lepi uz vrh — i kroz pauzu,
   da kontrole ne nestanu usred teksta (S129). Podloga je već neprovidna
   (cream), samo senka pri lepljenju. */
.page-price .art-audio.ap-on {
    position: sticky; top: 8px; z-index: 40;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
}
.page-price .art-audio .t {
    font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em;
    text-transform: uppercase; color: var(--meta); margin: 0 auto 0 0; /* natpis levo, kontrole desno */
    white-space: nowrap;
}
.page-price .art-audio .t .sub { text-transform: none; letter-spacing: 0.04em; margin-left: 6px; }
.page-price .art-audio audio { flex: 1 1 240px; max-width: 380px; min-width: 0; height: 32px; }
/* Sopstvene kontrole (JS skida controls i dodaje .ap) — nativne se ne mogu
   farbati pa im je hover Chrome-plav. */
.page-price .art-audio.ap audio { display: none; }
.page-price .ap-btn {
    flex: 0 0 auto; width: 28px; height: 28px; display: grid; place-items: center;
    border: 1px solid var(--stone); border-radius: 2px; background: none;
    color: var(--slate); padding: 0; transition: color 0.15s, border-color 0.15s;
}
.page-price .ap-btn:hover { color: var(--brand-text); border-color: var(--brand); }
.page-price .ap-btn svg { width: 12px; height: 12px; fill: currentColor; display: block; }
.page-price .ap-btn .i-pause { display: none; }
.page-price .art-audio.playing .ap-btn .i-play { display: none; }
.page-price .art-audio.playing .ap-btn .i-pause { display: block; }
.page-price .ap-seek { flex: 1 1 140px; min-width: 110px; max-width: 320px; accent-color: var(--brand); margin: 0; }
.page-price .ap-time {
    font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.04em;
    color: var(--meta); white-space: nowrap; font-variant-numeric: tabular-nums;
}
.page-price .ap-rate {
    flex: 0 0 auto; background: none; border: 1px solid var(--stone); border-radius: 2px;
    padding: 3px 7px; font-family: var(--font-mono); font-size: 10.5px;
    letter-spacing: 0.04em; color: var(--slate); transition: color 0.15s, border-color 0.15s;
}
.page-price .ap-rate:hover { color: var(--brand-text); border-color: var(--brand); }
/* Krstić za gašenje seanse — pojavi se tek kad traka postane lepljiva. */
.page-price .ap-x {
    display: none; flex: 0 0 auto; width: 22px; height: 22px; place-items: center;
    background: none; border: 0; padding: 0; color: var(--meta);
    font-size: 15px; line-height: 1; transition: color 0.15s;
}
.page-price .art-audio.ap-on .ap-x { display: grid; }
.page-price .ap-x:hover { color: var(--brand-text); }
.page-price .ka.on { background: var(--brand-faint); box-shadow: 0 0 0 2px var(--brand-faint); border-radius: 2px; }

/* Scroll-spy: celina u kojoj je čitalac, u Sadržaju. */
.page-price .toc a.on { color: var(--brand-text); }

/* Kopiranje sidra podnaslova — „#" se ukaže na hover/fokus, „✓" potvrdi. */
.page-price .body h2 .h-lnk, .page-price .body h3 .h-lnk {
    background: none; border: 0; padding: 0 0 0 8px; font-family: var(--font-mono);
    font-size: 0.7em; color: var(--meta); opacity: 0; transition: opacity 0.15s, color 0.15s;
    vertical-align: 2px;
}
.page-price .body h2:hover .h-lnk, .page-price .body h3:hover .h-lnk,
.page-price .body .h-lnk:focus-visible { opacity: 1; }
.page-price .body .h-lnk:hover { color: var(--brand-text); }
.page-price .body .h-lnk.ok { opacity: 1; color: var(--forest); }

/* „Podeli" u meta redu — diskretan mono, desno. */
.page-price .art-share {
    margin-left: auto; background: none; border: 0; padding: 0;
    font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.07em;
    text-transform: uppercase; color: var(--meta); transition: color 0.15s;
}
.page-price .art-share:hover { color: var(--brand-text); }
.page-price .art-share[hidden] { display: none; }


.page-price .art { max-width: var(--art-w); margin: 0 auto; padding: 60px 24px 0; }
.page-price .art .kicker { color: var(--slate); margin-bottom: 16px; }
.page-price .art .kicker a { color: var(--brand-text); }
.page-price .art .kicker a:hover { color: var(--brand-hover); }
/* Tamna tema: --brand (#c52828) na #161614 meri 3.2:1 na 12px kickeru — ispod
   AA. Svetliji ton samo za tekst veze; hover ide ka svetlijem, ne tamnijem. */
body.page-price[data-theme="dark"] .art .kicker a { color: #d95b4a; }
body.page-price[data-theme="dark"] .art .kicker a:hover { color: #e2604c; }
.page-price .art .kicker .sep { color: var(--meta); }   /* bio --stone = ton ZA LINIJE, na tekstu 1,45 (S131) */
.page-price .art .kicker .cat { color: var(--cat, var(--steel)); }
.page-price .art h1 {
    font-size: clamp(30px, 4.4vw, 44px); line-height: 1.13; letter-spacing: -0.02em;
    margin: 0 0 18px; text-wrap: balance; color: var(--deep); font-weight: 700;
}
.page-price .art .dek { font-size: 20px; line-height: 1.55; color: var(--slate); margin: 0 0 26px; text-wrap: pretty; }
.page-price .art-meta {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px;
    font-family: var(--font-mono); font-size: 12.5px; letter-spacing: 0.04em; color: var(--slate);
    padding: 15px 0; border-top: 1px solid var(--border-light); border-bottom: 1px solid var(--border-light);
    font-variant-numeric: tabular-nums;
}
/* Signal nema „znati" kutiju pa telo kreće odmah ispod šlajfne — predah ide ovde. */
.page-price .art-meta.compact { padding: 12px 0; font-size: 12px; margin-bottom: 28px; }
.page-price .art-meta .dot { width: 3px; height: 3px; background: var(--stone); border-radius: 50%; }

/* Kontrola „veličina teksta" (A/A/A) je premeštena u heder (.hdr-tsize,
   header.css) — menja --art-fs na .art. „Šta ćete znati" skalira zajedno
   sa telom (da efekat bude vidljiv odmah), naslovi proporcionalno. */
.page-price .art[data-tsize="l"]  { --art-fs: 20px; }
.page-price .art[data-tsize="xl"] { --art-fs: 22px; }

/* Šta ćete znati (samo Dosije) */
.page-price .znati { background: var(--sand); border: 1px solid var(--stone); padding: 24px 28px 20px; margin: 36px 0 42px; }
.page-price .znati .t {
    font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--brand-text);
    display: flex; justify-content: space-between; flex-wrap: wrap; gap: 6px; margin-bottom: 14px;
}
.page-price .znati .t .sub { color: var(--slate); text-transform: none; letter-spacing: 0.03em; }
.page-price .znati ul { list-style: none; margin: 0; padding: 0; }
.page-price .znati li { position: relative; padding-left: 22px; margin: 9px 0; color: var(--coal); font-size: calc(var(--art-fs) * 0.94); line-height: 1.55; }
.page-price .znati li::before {
    content: ""; position: absolute; left: 0; top: 9px; width: 8px; height: 8px; background: var(--brand);
    clip-path: polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%);
}

/* Telo članka skalira se preko --art-fs (kontrola „veličina teksta"); p/li
   nasleđuju, naslovi idu proporcionalno (calc). Default 18px. */
/* Mera reda — telo koristi punu širinu rama --art-w (Denisova odluka: šira
   kolona, manje prelazaka u nov red pri čitanju). NE kapirati na ch/rem. */
.page-price .art .body { font-size: var(--art-fs); }
.page-price .art .body h2 { scroll-margin-top: 16px; }  /* TOC sidra — mali predah (heder je van skrol-kontejnera) */
.page-price .art .body h3 { scroll-margin-top: 16px; }  /* isto za H3 sidra (scroll-spy + TOC klik) */
.page-price .art h2 { font-size: calc(var(--art-fs) * 1.62); line-height: 1.2; letter-spacing: -0.012em; margin: 48px 0 14px; color: var(--deep); font-weight: 700; text-wrap: balance; }
/* H3 — pod-sekcija (design_handoff §4.6.A): tih slate „tick" iznad, bez
   crvene, bez tačke; jasno ispod H2. */
.page-price .art h3 { position: relative; font-size: calc(var(--art-fs) * 1.22); line-height: 1.3; letter-spacing: -0.006em; color: var(--ink); font-weight: 600; margin: 36px 0 10px; padding-top: 15px; }
.page-price .art h3::before { content: ""; position: absolute; top: 0; left: 0; width: 20px; height: 2px; background: var(--slate); }
/* H4 — leaf nivo (npr. „Cene i planovi"): mono eyebrow, labela zapisa. */
.page-price .art h4 { font-family: var(--font-mono); font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--slate); margin: 24px 0 8px; }
.page-price .art p { margin: 0 0 18px; color: var(--coal); }
/* Prelom pasusa u telu = tačno jedan prazan red (1.7em = visina reda).
   Ranije 18px = 0.59 reda: na koloni od ~97 znakova pasus se nije
   dovoljno odvajao. U `em` da prati A/A/A kontrolu (--art-fs). */
.page-price .art .body p { margin-bottom: 1.7em; }
.page-price .art p strong { color: var(--ink); font-weight: 600; }
/* Markdown telo: liste dobijaju crveni tačka-marker (prototip ul.plain) */
.page-price .art .body ul { list-style: none; margin: 0 0 1.7em; padding: 0; }
.page-price .art .body ul li { position: relative; padding-left: 22px; margin: 9px 0; color: var(--coal); }
.page-price .art .body ul li::before { content: ""; position: absolute; left: 2px; top: 12px; width: 6px; height: 6px; background: var(--brand); border-radius: 50%; }

/* Tabela u telu (S117 — prvi tekst koji je ima; Parsedown je već umeo).
   Skrol nosi omot .tbl (BlogIndex::renderBody), da tabela ostane tabela i
   drži punu širinu kolone; na uskom ekranu se omot prevlači. */
.page-price .art .body .tbl { overflow-x: auto; margin: 4px 0 24px; }
.page-price .art .body table {
    width: 100%; min-width: 560px; border-collapse: collapse;
    margin: 0; font-size: calc(var(--art-fs) * 0.82); line-height: 1.45;
}
.page-price .art .body table thead th {
    font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.08em;
    text-transform: uppercase; color: var(--slate); background: var(--sand);
    text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--stone); white-space: nowrap;
}
.page-price .art .body table td {
    padding: 10px 14px; color: var(--coal); border-bottom: 1px solid var(--border-light);
    font-variant-numeric: tabular-nums; white-space: nowrap; vertical-align: top;
}
.page-price .art .body table td:first-child { color: var(--ink); font-weight: 600; white-space: nowrap; }
.page-price .art .body table tbody tr:last-child td { border-bottom: 1px solid var(--stone); }

/* Uporedna tabela — rang po koloni + tabla sa meračima (blog.js). Klase
   t1/t3 nose najbolju i najslabiju trećinu u koloni; sredina ostaje mirna. */
.page-price .art .body .tbl-blok { margin: 26px 0 24px; }
.page-price .art .body .tbl-tabla {
    position: sticky; top: 8px; z-index: 2;
    background: var(--paper); border: 1px solid var(--stone);
    padding: 12px 18px 10px; margin-bottom: 10px;
}
.page-price .art .body .tbl-glava {
    font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.02em;
    color: var(--slate); margin: 0 0 10px;
}
.page-price .art .body .tbl-glava b { color: var(--ink); font-weight: 600; }
.page-price .art .body .tbl-glava .nema-pecat { color: var(--brand-text); }
.page-price .art .body .tbl-meraci { display: flex; align-items: flex-end; gap: 12px; }
.page-price .art .body .mer { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; gap: 5px; min-width: 0; }
.page-price .art .body .mer-v {
    font-family: var(--font-mono); font-size: 11.5px; color: var(--ink);
    font-variant-numeric: tabular-nums; min-height: 20px; white-space: nowrap;
}
.page-price .art .body .mer-t { position: relative; display: block; width: 100%; height: 62px; background: var(--sand); }
.page-price .art .body .mer-f {
    position: absolute; left: 0; right: 0; bottom: 0; height: 8%;
    background: var(--slate);
    transition: height 0.42s cubic-bezier(0.22, 0.8, 0.22, 1), background-color 0.3s ease;
}
/* Crtica = prosek svih šesnaest; stubić skače iznad nje ili pada ispod. */
.page-price .art .body .mer-p { position: absolute; left: -3px; right: -3px; height: 1px; background: var(--ink); opacity: 0.45; }
/* Skala na krajevima trake: vrh = najbolja izmerena vrednost, dno =
   najslabija. Čip sa podlogom da ostane čitljiv i preko punog stubića. */
.page-price .art .body .mer-sk {
    position: absolute; right: 2px; z-index: 1; pointer-events: none;
    font-family: var(--font-mono); font-size: 9px; line-height: 1;
    color: var(--slate); background: var(--paper); padding: 1px 3px; opacity: 0.92;
}
.page-price .art .body .mer-sk-vrh { top: 2px; }
.page-price .art .body .mer-sk-dno { bottom: 2px; }
.page-price .art .body .mer-f.t1 { background: var(--forest); }
.page-price .art .body .mer-f.t3 { background: var(--amber); }
.page-price .art .body .mer-l {
    font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.08em;
    text-transform: uppercase; color: var(--slate); white-space: nowrap;
}
@media (prefers-reduced-motion: reduce) { .page-price .art .body .mer-f { transition: none; } }
/* Telefon: pet merača u 327px — vrednost sme u dva reda („vrlo nisko"), ali
   visina je rezervisana unapred da tabla ne poskakuje pri dodiru. */
@media (max-width: 759px) {
    .page-price .art .body .tbl-tabla { padding: 12px 12px 10px; }
    .page-price .art .body .tbl-meraci { gap: 8px; }
    .page-price .art .body .mer-v { white-space: normal; font-size: 10.5px; line-height: 1.25; min-height: 27px; text-align: center; }
    .page-price .art .body .mer-l { font-size: 9px; letter-spacing: 0.04em; }
    /* Mirni red se prelama na dva, ime proizvođača na jedan — visina se
       rezerviše da tabla ne poskoči kad se pređe preko reda. */
    .page-price .art .body .tbl-glava { min-height: 41px; }
}
.page-price .art .body table tbody tr { transition: background-color 0.12s ease; }
.page-price .art .body table tbody tr:hover,
.page-price .art .body table tbody tr.on { background: var(--sand); }
.page-price .art .body table tbody tr:focus-visible { outline: 2px solid var(--brand); outline-offset: -2px; }
.page-price .art .body table td.t1 { color: var(--forest); }
.page-price .art .body table td.t3 { color: var(--amber); }
.page-price .art .body table td.pecat-ne { color: var(--brand-text); font-weight: 600; }

/* Šira od kolone teksta — samo kad strana ima mesta sa strane. Jedan blok
   dole i tabela se vraća u meru kolone. */
@media (min-width: 1280px) {
    .page-price .art .body .tbl-blok { width: calc(100% + 132px); margin-left: -66px; }
}

/* ============================================================
   STRUKTURA TELA §4.6 (design_handoff_blog): mini-sadržaj, numerisane
   celine, drop-cap, pull-quote, node-prelom. Sve u dosije-jeziku.
   ============================================================ */
/* Mini-sadržaj (dugi dosije) — numerisan register, sidra na H2 */
.page-price .toc { border: 1px solid var(--border-light); background: var(--cream); padding: 16px 24px 12px; margin: 30px 0 40px; }
.page-price .toc .tt { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--brand-text); margin: 0 0 4px; }
.page-price .toc ol { list-style: none; counter-reset: toc; margin: 0; padding: 0; }
/* H2 celina — numerisan red (01/02), hairline gore */
.page-price .toc > ol > li { counter-increment: toc; }
.page-price .toc > ol > li > a { display: flex; align-items: baseline; gap: 14px; padding: 11px 0; border-top: 1px solid var(--border-soft); color: var(--ink); font-size: calc(var(--art-fs) * 0.9); line-height: 1.4; }
.page-price .toc > ol > li:first-child > a { border-top: 0; }
.page-price .toc > ol > li > a::before { content: counter(toc, decimal-leading-zero); font-family: var(--font-mono); font-size: 12px; color: var(--slate); flex: none; }
.page-price .toc a:hover { color: var(--brand-text); }
/* H3 pod-sekcije — uvučene pod naslov celine, tiše, bez broja */
.page-price .toc ul { list-style: none; margin: 2px 0 6px; padding: 0 0 0 32px; }
.page-price .toc ul li a { display: block; padding: 5px 0; color: var(--slate); font-size: calc(var(--art-fs) * 0.78); line-height: 1.35; }

/* Scroll-spy: aktivna sekcija dok se skroluje (blog.js dodaje .active).
   Jača od hover-a — brend boja + numeral se obojii + tanak marker levo. */
.page-price .toc a.active { color: var(--brand-text); }
.page-price .toc > ol > li > a.active { font-weight: 600; }
.page-price .toc > ol > li > a.active::before { color: var(--brand-text); }
.page-price .toc ul li a.active { color: var(--brand-text); position: relative; }
.page-price .toc ul li a.active::before { content: ""; position: absolute; left: -14px; top: 50%; width: 6px; height: 6px; margin-top: -3px; background: var(--brand); border-radius: 50%; }

/* Traka napretka čitanja — sticky na vrhu skrol-porta (viewport-lock:
   skrol živi u .cp-scroll, ne window; blog.js umeće traku i puni je preko
   transform: scaleX kroz CSSOM). Samo na dosijeima sa sadržajem. */
.page-price .art-prog { position: sticky; top: 0; z-index: 6; height: 3px; background: var(--border-soft); }
.page-price .art-prog i { display: block; height: 100%; transform: scaleX(0); transform-origin: left center; background: var(--brand); transition: transform .08s linear; }

/* Numerisane H2 celine — samo kad su celine stvarno niz (.art.numbered) */
.page-price .art.numbered .body { counter-reset: sec; }
.page-price .art.numbered .body h2 { counter-increment: sec; }
.page-price .art.numbered .body h2::before { content: counter(sec, decimal-leading-zero); display: block; font-family: var(--font-mono); font-size: 12px; font-weight: 500; letter-spacing: 0.14em; color: var(--brand-text); margin-bottom: 6px; }

/* Drop-cap — crveno prvo slovo otvaranja (esej) */
/* Inicijal — .dc span iz BlogIndex-a (ne ::first-letter: ume samo jedan
   znak, a tekst sme da počne skraćenicom poput AV). */
.page-price .art p.dropcap .dc { float: left; font-size: 3.5em; line-height: 0.8; font-weight: 700; color: var(--brand-text); margin: 8px 12px 0 0; }

/* Pull-quote — istaknuta rečenica (markdown blockquote → .pull) */
.page-price .art .body blockquote { margin: 34px 0; padding: 2px 0 2px 22px; border-left: 2px solid var(--brand); font-size: 23px; line-height: 1.42; font-weight: 600; letter-spacing: -0.01em; color: var(--deep); text-wrap: balance; }
.page-price .art .body blockquote p { margin: 0; color: inherit; font-size: inherit; }
.page-price .art .body blockquote cite { display: block; margin-top: 10px; font-family: var(--font-mono); font-size: 12px; font-weight: 500; font-style: normal; letter-spacing: 0.06em; color: var(--slate); }

/* Poziv — istaknut završni poziv čitaocu (markdown: pasus počinje sa {{POZIV}}).
   Familija „znati" kartice: peščana podloga + crvena leva ivica, bez quote forme. */
.page-price .art .body p.poziv {
    background: var(--sand); border: 1px solid var(--stone); border-left: 3px solid var(--brand);
    padding: 20px 24px; margin: 40px 0 0;
}
/* Link u pozivu — tretman kao enc-link (crveno podvlačenje, hover ispuna),
   bez ◇ potpisa: romb je rezervisan za pojmove Enciklopedije. */
.page-price .art .body p.poziv a {
    color: var(--ink); font-weight: 500;
    background-image: linear-gradient(var(--brand) 0 0);
    background-size: 100% 1px; background-position: 0 1.15em; background-repeat: no-repeat;
    padding-bottom: 1px; transition: background-size 0.15s, color 0.15s;
}
.page-price .art .body p.poziv a:hover { color: var(--brand-text); background-color: var(--brand-faint); }

/* Node-prelom — tihi rez (markdown hr → .sec-break oktagon među hairline-ima) */
.page-price .sec-break { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 42px 0; }
.page-price .sec-break::before, .page-price .sec-break::after { content: ""; height: 1px; width: 64px; background: var(--border-light); }
.page-price .sec-break i { width: 9px; height: 9px; background: var(--slate); clip-path: polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%); }

/* inline enciklopedijski link — suptilan, ne izbode telo (◇ potpis) */
.page-price .enc {
    color: var(--ink); font-weight: 500;
    background-image: linear-gradient(var(--brand) 0 0);
    background-size: 100% 1px; background-position: 0 1.15em; background-repeat: no-repeat;
    padding-bottom: 1px; transition: background-size 0.15s, color 0.15s;
}
.page-price .enc::after { content: "◇" / ""; font-size: 8px; color: var(--brand-text); vertical-align: 0.35em; margin-left: 2px; }
.page-price .enc:hover { color: var(--brand-text); background-color: var(--brand-faint); }

/* inline spoljašnji link (npr. zvanični sajt alata) — diskretno podvučeno,
   siva nit (bez crvenog ◇ potpisa; ◇ je rezervisan za enciklopediju).
   Nit je --slate, ne --stone: stone se u tamnoj temi (#35342f na #161614)
   ne vidi, pa link nije izgledao kao link dok se ne tapne (Denis, S129). */
.page-price .ext {
    color: inherit;
    background-image: linear-gradient(var(--slate) 0 0);
    background-size: 100% 1px; background-position: 0 1.15em; background-repeat: no-repeat;
    padding-bottom: 1px; transition: background-size 0.15s, color 0.15s;
}
.page-price .ext:hover { color: var(--brand-text); background-image: linear-gradient(var(--brand) 0 0); }

/* povezana vest callout ({{VEST}}) */
.page-price .vest-call { border: 1px solid var(--border-light); border-left: 3px solid var(--steel); background: var(--cream); padding: 18px 24px; margin: 32px 0; }
.page-price .vest-call .t { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--steel); margin-bottom: 8px; }
.page-price .vest-call .h { font-weight: 600; font-size: 17.5px; color: var(--ink); line-height: 1.4; display: block; }
.page-price .vest-call a:hover .h { color: var(--brand-text); }
.page-price .vest-call p { margin: 6px 0 0; font-size: 15.5px; color: var(--slate); }

/* alat blok ({{ALAT}}) — uvek taman, u obe teme */
.page-price .alat { background: var(--alat-bg); color: var(--alat-fg); border: 1px solid var(--alat-border); padding: 26px 30px; margin: 36px 0; }
.page-price .alat .t { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--alat-fg-mute); margin-bottom: 10px; display: inline-flex; align-items: center; gap: 8px; }
.page-price .alat .t::before { content: ""; width: 8px; height: 8px; background: var(--brand); clip-path: polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%); }
.page-price .alat .n { font-weight: 600; font-size: 20px; margin-bottom: 6px; color: var(--alat-fg-strong); }
.page-price .alat p { margin: 0 0 16px; font-size: 16px; color: var(--alat-fg); }
.page-price .alat .btn {
    display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 12.5px;
    letter-spacing: 0.1em; text-transform: uppercase; background: var(--brand); color: #fff; padding: 10px 18px; border-radius: 2px;
    transition: background 0.15s;
}
.page-price .alat .btn:hover { background: var(--brand-hover); color: #fff; }

/* ============================================================
   POVEZANO — Mreža (usvojeno): jedan graf, boja samo kao čvor-marker
   ============================================================ */
.page-price .povezano { max-width: var(--art-w); margin: 58px auto 0; padding: 0 24px; }
.page-price .povezano .head {
    font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.14em; color: var(--brand-text);
    /* granica „POVEZANO" zone: --slate (mirna siva) umesto --ink (na tamnoj
       temi skoro belo → 2px linija „gori"). Crveni „// POVEZANO" nosi sekciju. */
    border-top: 1px solid var(--slate); padding-top: 14px; margin-bottom: 20px;
    display: flex; align-items: center; gap: 12px;
}
.page-price .povezano .head .n { color: var(--meta); letter-spacing: 0.06em; margin-left: auto; }
.page-price .pov-mreza .grp { display: grid; grid-template-columns: 132px minmax(0,1fr); gap: 4px 20px; padding: 16px 0; border-top: 1px solid var(--border-soft); align-items: baseline; }
.page-price .pov-mreza .grp:first-child { border-top: 0; }
.page-price .pov-mreza .grp .lab { display: inline-flex; align-items: center; gap: 9px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--slate); }
.page-price .pov-mreza .grp .lab .nd { width: 8px; height: 8px; flex: none; }
.page-price .pov-mreza .grp.poj .nd { background: var(--brand); clip-path: polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%); }
.page-price .pov-mreza .grp.ves .nd { background: var(--steel); border-radius: 50%; }
.page-price .pov-mreza .grp.ala .nd { background: var(--amber); }
.page-price .pov-mreza .grp.usl .nd { background: var(--forest); }
.page-price .pov-mreza .terms { display: flex; flex-wrap: wrap; gap: 6px 8px; }
.page-price .pov-mreza .terms a { font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.02em; color: var(--coal); border-bottom: 1px solid var(--stone); padding-bottom: 1px; }
.page-price .pov-mreza .terms a:hover { color: var(--brand-text); border-color: var(--brand); }
.page-price .pov-mreza .one { display: block; font-weight: 600; font-size: 16px; color: var(--ink); line-height: 1.4; }
.page-price .pov-mreza .one:hover { color: var(--brand-text); }
.page-price .pov-mreza .grp .sub { display: block; font-size: 14px; color: var(--slate); margin-top: 3px; }

/* kompaktni POVEZANO za Signal */
.page-price .povezano.compact { margin-top: 40px; }
.page-price .povezano.compact .head { border-top-width: 1px; }

/* ============================================================
   AUTOR / BILTEN / SLEDEĆI
   ============================================================ */
.page-price .autor { max-width: var(--art-w); margin: 42px auto 0; padding: 0 24px; }
.page-price .autor .box { display: flex; gap: 18px; align-items: flex-start; border-top: 1px solid var(--border-light); padding-top: 26px; }
/* Denisova foto u heksagonu — CELA scena (hranjenje galeba; autor-denis-avatar.jpg
   400×400, resize bez crop-a). Poenta je akcija, ne portret. cover puni
   heksagon, clip-path seče uglove. */
.page-price .autor .av {
    width: 56px; height: 56px; flex: none;
    background-color: var(--ink);
    background-image: url("/assets/img/autor-denis-avatar.jpg");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    clip-path: polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);
    overflow: hidden;
}
.page-price .autor .n { font-weight: 700; margin: 2px 0 5px; }
.page-price .autor .k { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--brand-text); margin-bottom: 6px; }
.page-price .autor p { margin: 0; font-size: 15.5px; color: var(--slate); line-height: 1.6; }

.page-price .bilten { max-width: var(--art-w); margin: 42px auto 0; padding: 0 24px; }
.page-price .bilten .box { background: var(--sand); border: 1px solid var(--stone); padding: 24px 28px; display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; justify-content: space-between; }
.page-price .bilten .t { font-weight: 600; margin-bottom: 3px; display: inline-flex; align-items: center; gap: 9px; }
.page-price .bilten .t::before { content: ""; width: 8px; height: 8px; background: var(--brand); border-radius: 50%; }
.page-price .bilten p { margin: 0; font-size: 15.5px; color: var(--slate); }
.page-price .bilten .btn { font-family: var(--font-mono); font-size: 12.5px; letter-spacing: 0.1em; text-transform: uppercase; background: var(--brand); color: #fff; padding: 11px 20px; border-radius: 2px; white-space: nowrap; transition: background 0.15s; }
.page-price .bilten .btn:hover { background: var(--brand-hover); color: #fff; }

/* ============================================================
   ODZIV — feedback čitaoca („pismo uredništvu" + pristanak).
   Rep članka: autor → ODZIV → bilten → sledeći. Paper + hairline
   (tiše od biltena). Crvena samo kao signal (marker, pristanak, reakcija).
   ============================================================ */
.page-price .odziv { max-width: var(--art-w); margin: 46px auto 0; padding: 0 24px; }
.page-price .odziv .head {
    font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.14em; color: var(--brand-text);
    border-top: 1px solid var(--slate); padding-top: 14px; margin-bottom: 16px;
    display: flex; align-items: center; gap: 12px;
}
.page-price .odziv .head .n { color: var(--meta); letter-spacing: 0.06em; margin-left: auto; text-transform: lowercase; }
.page-price .odziv .intro { color: var(--slate); font-size: 16.5px; line-height: 1.62; max-width: 44rem; margin-bottom: 22px; text-wrap: pretty; }
.page-price .odziv .intro b { color: var(--ink); font-weight: 600; }

/* reakcija — niža prečka, jedan klik, anonimno */
.page-price .react { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding-bottom: 22px; border-bottom: 1px solid var(--border-soft); margin-bottom: 26px; }
.page-price .react .react-q { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--slate); }
.page-price .react .react-opts { display: flex; flex-wrap: wrap; gap: 8px; }
.page-price .react button {
    font-family: var(--font-mono); font-size: 12.5px; letter-spacing: 0.03em;
    border: 1px solid var(--stone); background: var(--cream); color: var(--coal);
    padding: 7px 14px; border-radius: 2px; cursor: pointer; transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.page-price .react button:hover { border-color: var(--slate); color: var(--ink); }
.page-price .react button.on { border-color: var(--brand); color: var(--brand-text); background: var(--brand-faint); }
.page-price .react .react-done { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.04em; color: var(--brand-text); display: none; }
.page-price .react.is-done .react-done { display: inline; }

/* forma */
.page-price .odziv-form { display: flex; flex-direction: column; gap: 18px; }
.page-price .odziv-form .fl { display: flex; flex-direction: column; gap: 7px; }
.page-price .odziv-form .fl > span { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--slate); }
.page-price .odziv-form textarea, .page-price .odziv-form input {
    font-family: var(--font-sans); font-size: 16px; color: var(--ink);
    background: var(--cream); border: 1px solid var(--stone); border-radius: 2px;
    padding: 12px 14px; width: 100%; transition: border-color 0.15s, box-shadow 0.15s;
}
.page-price .odziv-form textarea { min-height: 118px; line-height: 1.55; resize: vertical; }
.page-price .odziv-form textarea::placeholder, .page-price .odziv-form input::placeholder { color: #9a9a98; }
.page-price .odziv-form textarea:focus, .page-price .odziv-form input:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-faint); }
.page-price .odziv-form .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 560px) { .page-price .odziv-form .row2 { grid-template-columns: 1fr; } }
/* honeypot — van ekrana, ne fokusira se */
.page-price .odziv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

/* PRISTANAK — stvarni prekidač za objavu, ne sitni pravni tekst */
.page-price .consent {
    display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: start; cursor: pointer;
    background: var(--sand); border: 1px solid var(--stone); border-left: 3px solid var(--brand);
    padding: 18px 20px; position: relative;
}
.page-price .consent input { position: absolute; opacity: 0; width: 0; height: 0; }
.page-price .consent .box {
    width: 22px; height: 22px; margin-top: 2px; flex: none; border: 1.5px solid var(--slate);
    background: var(--paper); border-radius: 2px; display: flex; align-items: center; justify-content: center;
    transition: border-color 0.15s, background 0.15s;
}
.page-price .consent .box::after {
    content: ""; width: 6px; height: 11px; border: solid #fff; border-width: 0 2.5px 2.5px 0;
    transform: rotate(45deg) scale(0.4); margin-top: -2px; opacity: 0; transition: opacity 0.15s, transform 0.15s;
}
.page-price .consent input:checked + .box { background: var(--brand); border-color: var(--brand); }
.page-price .consent input:checked + .box::after { opacity: 1; transform: rotate(45deg) scale(1); }
.page-price .consent input:focus-visible + .box { box-shadow: 0 0 0 3px var(--brand-faint); }
.page-price .consent .consent-tx { font-size: 15.5px; line-height: 1.5; color: var(--slate); }
.page-price .consent .consent-tx b { display: block; color: var(--ink); font-weight: 600; font-size: 16.5px; margin-bottom: 4px; }

/* akcije — ink dugme (jako ali neutralno; crvena ostaje biltenu) */
.page-price .odziv-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.page-price .odziv-actions .btn {
    font-family: var(--font-mono); font-size: 12.5px; letter-spacing: 0.1em; text-transform: uppercase;
    background: var(--ink); color: var(--paper); padding: 12px 22px; border-radius: 2px; cursor: pointer; transition: opacity 0.15s;
}
.page-price .odziv-actions .btn:hover { opacity: 0.86; color: var(--paper); }
.page-price .odziv-actions .btn[disabled] { opacity: 0.5; cursor: default; }
.page-price .odziv-actions .note { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.04em; color: #9a9a98; }

/* greška pri slanju — poruka stiže sa servera (`msg`), skrivena dok je nema */
.page-price .odziv-err {
    border-left: 3px solid var(--brand); background: var(--brand-faint);
    padding: 11px 14px; font-size: 15px; line-height: 1.5; color: var(--deep);
}
.page-price .odziv-err[hidden] { display: none; }

/* poslato (zahvalnica) */
.page-price .odziv-sent { display: none; border: 1px solid var(--border-light); border-left: 3px solid var(--brand); background: var(--cream); padding: 26px 28px; }
.page-price .odziv-sent .t { font-weight: 700; font-size: 21px; color: var(--deep); margin-bottom: 8px; display: flex; align-items: center; gap: 12px; }
.page-price .odziv-sent .t::before { content: ""; width: 13px; height: 13px; flex: none; background: var(--brand); clip-path: polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%); }
.page-price .odziv-sent p { font-size: 16px; color: var(--slate); line-height: 1.6; max-width: 42rem; }
.page-price .odziv-sent .again { display: inline-block; margin-top: 14px; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--brand-text); }
.page-price .odziv-sent .again:hover { color: var(--brand-hover); }
.page-price .odziv.is-sent .react, .page-price .odziv.is-sent .odziv-form { display: none; }
.page-price .odziv.is-sent .odziv-sent { display: block; }

/* iz sandučeta (kurirani objavljeni odzivi) */
/* Samostalna sekcija ODMAH ispod teksta članka (S86, Denis) — pre povezanog
   i autora; forma za slanje ostaje dole u sekciji ODZIV. Isti ram kao članak. */
.page-price .sanduce { max-width: var(--art-w); margin: 46px auto 0; padding: 0 24px; }
.page-price .sanduce .sh { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--slate); border-top: 1px solid var(--border-light); padding-top: 14px; margin-bottom: 4px; display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; }
.page-price .sanduce .sh .sub { text-transform: none; letter-spacing: 0.03em; font-size: 11.5px; color: #9a9a98; margin-left: auto; }
.page-price .sanduce .post { padding: 18px 0; border-top: 1px solid var(--border-soft); }
.page-price .sanduce .post:first-of-type { border-top: 0; }
.page-price .sanduce .post .tx { font-size: 16.5px; line-height: 1.6; color: var(--coal); padding-left: 16px; border-left: 2px solid var(--stone); text-wrap: pretty; }
.page-price .sanduce .post .by { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; margin-top: 10px; padding-left: 16px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.04em; color: #9a9a98; }
.page-price .sanduce .post .by .who { color: var(--ink); }
.page-price .sanduce .post .by .dt { margin-left: auto; }

.page-price .next { max-width: var(--art-w); margin: 42px auto 0; padding: 0 24px; }
.page-price .next a { display: block; border: 1px solid var(--border-light); background: var(--cream); padding: 20px 26px; transition: border-color 0.15s; }
.page-price .next a:hover { border-color: var(--stone); }
.page-price .next .t { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--slate); margin-bottom: 8px; display: flex; gap: 10px; align-items: center; }
.page-price .next .nm { font-weight: 600; font-size: 19px; color: var(--ink); line-height: 1.35; }
.page-price .next a:hover .nm { color: var(--brand-text); }
/* Par kartica: levo prethodni (stariji), desno sledeći (noviji) — desna
   poravnata udesno kao smerni signal; na uskom ekranu jedna ispod druge. */
.page-price .next.dva { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.page-price .next .ka-novijem { text-align: right; }
.page-price .next .ka-novijem .t { justify-content: flex-end; }
@media (max-width: 759px) { .page-price .next.dva { grid-template-columns: 1fr; } }

/* Povratak na listing — tih mono link, uvek poslednji element članka */
.page-price .art-back { max-width: var(--art-w); margin: 44px auto 0; padding: 0 24px 96px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.page-price .art-back a { display: inline-flex; align-items: center; gap: 9px; line-height: 1; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--slate); transition: color 0.15s; }
.page-price .art-back a:hover { color: var(--brand-text); }
/* Strelica se ne pomera na hover (samo pocrveni sa celim linkom) — raniji
   translateX je pri sklanjanju miša izgledao kao „vraća se desno i niže".
   „←" glif u mono fontu se crta nisko → sitan optički pomak naviše da se
   centrira sa velikim slovima. */
.page-price .art-back .ar { font-size: 15px; line-height: 1; position: relative; top: -3px; }
/* „↑" se crta visoko (suprotno od „←" koje je nisko) → bez pomaka je centriran. */
.page-price .art-back .ar-up { top: 0; }

/* ============================================================
   FUTER — tamni tretman SAMO za Priče (override paper .ftA iz
   layout.css). Tamna ploča #0f0f0d + heks vodeni žig + crvena
   gornja nit → jasna granica i prema tamnom i prema svetlom telu.
   ============================================================ */
body.page-price .ftA {
    background: #0f0f0d;
    color: #b8b4ab;
    border-top: 1px solid var(--hdr-line);
    margin-top: 40px;
}
/* Dugme u futeru stoji na crvenoj ploci — nasledjena siva je merila 2,74. */
body.page-price .ftA .btn { color: #fff; }
body.page-price .ftA::before { opacity: 0.12; }
/* live ::after su dva ugaona heksagona (paper varijanta) → ovde crvena nit */
body.page-price .ftA::after {
    content: "";
    inset: auto;
    /* top:0 (bilo -1px, S85 Denis): na -1px je nit stajala IZNAD granice
       futera, preko pozadine članka — u svetloj temi providni krajevi su
       pokazivali svetlo („belo→crveno→belo" iznad Safari trake). Unutar
       futera krajevi pokazuju njegovu TAMNU pozadinu (tamna u obe teme)
       → linija je uvek crno→crveno→crna. */
    left: 0; right: 0; top: 0; height: 1px;
    background-image: linear-gradient(90deg, transparent, var(--brand-bright) 30%, var(--brand-bright) 70%, transparent);
    background-position: 0 0; background-size: auto; background-repeat: repeat;
    opacity: 0.5;
}
body.page-price .ftA-stamp { color: #8a8780; }
body.page-price .ftA-stamp strong { color: var(--brand-on-dark); }
body.page-price .ftA-brand-mark { color: var(--brand-bright); }
body.page-price .ftA-brand-name { color: #ece9e3; }
body.page-price .ftA-brand-name .slash { color: var(--brand-bright); }
body.page-price .ftA-brand-tag { color: #9a958d; }
body.page-price .ftA-divider { background: var(--brand-bright); opacity: 0.5; }
/* layout.css daje .ftA-grid „frosted" papir-ploču (rgba paper + blur) — na
   svetlom futeru je suptilna, na tamnom futeru Priča postaje siva ploča.
   Tamni futer je već jedna tamna površina → gasimo panel. */
body.page-price .ftA-grid {
    border-top: 1px solid var(--hdr-line);
    background: transparent;
    -webkit-backdrop-filter: none;
            backdrop-filter: none;
}
body.page-price .ftA-grid h4 { color: #8a857e; }
body.page-price .ftA-grid a { color: #b8b4ab; }
body.page-price .ftA-grid a:hover { color: var(--brand-bright); }
body.page-price .ftA-grid .cur { color: var(--brand-bright); border-bottom-color: var(--brand-bright); }
body.page-price .ftA-cta-col .btn:hover { background: var(--brand-bright); }
body.page-price .ftA-cta-col .contact-line { color: #a09b93; }
body.page-price .ftA-cta-col .contact-line strong { color: #ece9e3; }
body.page-price .ftA-bottom { border-top: 1px solid var(--hdr-line); color: #8a8780; }
body.page-price .ftA-cookie-btn { color: #8a857e; }
body.page-price .ftA-cookie-btn:hover { color: var(--brand-bright); }
body.page-price .nav-pending { color: #8a8780; }

@media (prefers-reduced-motion: reduce) {
    .page-price main *, body.page-price .ftA * { transition: none !important; animation: none !important; }
}
