/* ==========================================================================
   zd-product.css — canonical product-detail stranica keramike
   /keramika/proizvod/<slug>/
   Generiše: scripts/build-keramika-product-pages.py
   ==========================================================================

   Geometrija je izmerena iz odobrene reference
   `referentne slike/keramika-proizvodi.png` (panel 1449 px, sadržajni okvir
   1215 px → praktično 1:1 sa 1240 px shell-om na 1440 vw):

     galerija (thumbs+scena)  580 / 1215 = 47,7 %   →  2,30fr
     info kolona              322 / 1215 = 26,5 %   →  1,28fr
     uzorak (desna kolona)    252 / 1215 = 20,7 %   →  1,00fr
     razmaci                  31 i 30 px            →  2rem

   Scena: 514 × 286 px u referenci = 1,797 → aspect-ratio 16/9.
   Thumb kolona: 54 px, kvadratni thumb-ovi, peti nosi „+N".

   MOBILNI IZGLED JE PRIVREMEN. Odobrena mobilna referenca još ne postoji
   (korisnik je javio 2026-09-08 da će je dodati u `referentne slike`), pa je
   mobilni raspored ovde namerno konzervativan: jedna kolona, bez sticky bara,
   bez novih breakpointova. Kada slika stigne, menja se SAMO ovaj fajl.

   Breakpointovi su ISKLJUČIVO oni koje projekat već koristi:
   359.98 · 374.98 · 430.98 · 767.98 · 991.98 · 1099.98 · 1199.98
   ========================================================================== */

.zd-v2.zd-product {
  /* Lokalni tokeni — sve boje/razmaci dolaze iz zd-foundation.css. */
  --zd-p-gap: 2rem;
  --zd-p-thumb: 54px;
  --zd-p-stage-ratio: 16 / 9;
  --zd-p-line: var(--zd-line);
  --zd-p-cta-h: 48px;
  background: var(--zd-bg);
}

.zd-v2 .zd-p-shell {
  max-width: calc(var(--zd-max-content) + 2 * var(--zd-gutter));
  margin-inline: auto;
  padding-inline: var(--zd-gutter);
  width: 100%;
}

/* --------------------------------------------------------------------------
   breadcrumb
   -------------------------------------------------------------------------- */
.zd-v2 .zd-p-crumbs { margin: 0 0 var(--zd-5); }

.zd-v2 .zd-p-crumbs ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 .5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--zd-fs-micro);
  letter-spacing: .04em;
  color: var(--zd-ink-soft);
}

.zd-v2 .zd-p-crumbs li + li::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  margin-right: .5rem;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg) translateY(-1px);
  opacity: .55;
}

.zd-v2 .zd-p-crumbs a { color: inherit; text-decoration: none; }
.zd-v2 .zd-p-crumbs a:hover { color: var(--zd-accent-dark); }
.zd-v2 .zd-p-crumbs [aria-current] { color: var(--zd-ink); }

/* --------------------------------------------------------------------------
   hero
   -------------------------------------------------------------------------- */
.zd-v2 .zd-p-hero {
  /* --zd-header-h = info traka + razmak + nav kartica (zd-home.css). Header je
     `position: fixed`, pa prvi sadržaj mora da počne ispod cele kartice —
     isto pravilo koje već koristi `.zd-kcat` na stranicama kategorija. */
  padding-block: calc(var(--zd-header-h, 122px) + clamp(1.25rem, 3vh, 2.25rem))
                 var(--zd-7);
}

.zd-v2 .zd-p-hero__grid {
  display: grid;
  grid-template-columns: 2.30fr 1.28fr 1fr;
  gap: var(--zd-p-gap);
  align-items: start;
}

/* galerija ------------------------------------------------------------------ */
.zd-v2 .zd-p-gallery {
  display: grid;
  grid-template-columns: var(--zd-p-thumb) minmax(0, 1fr);
  gap: 12px;
  min-width: 0;
}

.zd-v2 .zd-p-thumbs {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.zd-v2 .zd-p-thumb {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1;
  padding: 0;
  border: 1px solid transparent;
  border-radius: var(--zd-radius-sm);
  background: var(--zd-surface);
  cursor: pointer;
  overflow: hidden;
  transition: border-color var(--zd-t-fast) var(--zd-ease),
              opacity var(--zd-t-fast) var(--zd-ease);
  opacity: .72;
}

.zd-v2 .zd-p-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.zd-v2 .zd-p-thumb[aria-current="true"] {
  border-color: var(--zd-accent);
  opacity: 1;
}

@media (hover: hover) and (pointer: fine) {
  .zd-v2 .zd-p-thumb:hover { opacity: 1; }
}

/* Peti thumb kada ima još fotografija — otvara lightbox. */
.zd-v2 .zd-p-thumb.is-more img { filter: brightness(.5); }

.zd-v2 .zd-p-thumb__more {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: var(--zd-fs-small);
  font-variant-numeric: tabular-nums;
  color: #fff;
  letter-spacing: .02em;
}

.zd-v2 .zd-p-stage {
  position: relative;
  margin: 0;
  aspect-ratio: var(--zd-p-stage-ratio);
  background: var(--zd-surface);
  border-radius: var(--zd-radius);
  overflow: hidden;
}

.zd-v2 .zd-p-stage__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Blagi zoom na hover — bez bounce-a i bez pomeranja layouta. */
  transition: transform .6s var(--zd-ease);
}

@media (hover: hover) and (pointer: fine) {
  .zd-v2 .zd-p-stage:hover .zd-p-stage__img { transform: scale(1.03); }
}

.zd-v2 .zd-p-zoom,
.zd-v2 .zd-p-nav {
  position: absolute;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: var(--zd-radius-sm);
  background: rgba(250, 247, 242, .88);
  color: var(--zd-ink);
  cursor: pointer;
  opacity: 0;
  transition: opacity var(--zd-t-fast) var(--zd-ease),
              background var(--zd-t-fast) var(--zd-ease);
}

.zd-v2 .zd-p-zoom { top: 12px; right: 12px; }
.zd-v2 .zd-p-zoom svg,
.zd-v2 .zd-p-nav svg { width: 17px; height: 17px; }

.zd-v2 .zd-p-nav { top: 50%; translate: 0 -50%; }
.zd-v2 .zd-p-nav--prev { left: 12px; }
.zd-v2 .zd-p-nav--next { right: 12px; }

.zd-v2 .zd-p-stage:hover .zd-p-zoom,
.zd-v2 .zd-p-stage:hover .zd-p-nav,
.zd-v2 .zd-p-zoom:focus-visible,
.zd-v2 .zd-p-nav:focus-visible { opacity: 1; }

/* Na dodir nema hovera — kontrole su stalno vidljive, ali diskretne. */
@media (hover: none) {
  .zd-v2 .zd-p-zoom,
  .zd-v2 .zd-p-nav { opacity: 1; }
}

.zd-v2 .zd-p-counter {
  position: absolute;
  left: 12px;
  bottom: 12px;
  margin: 0;
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(28, 26, 23, .55);
  color: #fff;
  font-size: var(--zd-fs-micro);
  font-variant-numeric: tabular-nums;
  letter-spacing: .04em;
}

/* info kolona --------------------------------------------------------------- */
.zd-v2 .zd-p-info { min-width: 0; }

.zd-v2 .zd-p-brand {
  margin: 0 0 .6rem;
  font-size: var(--zd-fs-micro);
  letter-spacing: var(--zd-ls-eyebrow);
  text-transform: uppercase;
  color: var(--zd-ink-soft);
}

.zd-v2 .zd-p-title {
  margin: 0;
  font-family: var(--zd-font-display);
  font-size: clamp(1.9rem, 2.6vw, 2.35rem);
  font-weight: var(--zd-fw-display);
  line-height: var(--zd-lh-tight);
  letter-spacing: -.015em;
  color: var(--zd-ink);
  /* Najduži naziv u katalogu je „Porcelanska cokla" / „Topping Terrazzo" —
     prelom mora da radi i kad naziv ima više reči. */
  overflow-wrap: break-word;
}

.zd-v2 .zd-p-sum {
  margin: .75rem 0 0;
  font-size: var(--zd-fs-small);
  color: var(--zd-ink-soft);
}

/* cena ---------------------------------------------------------------------- */
.zd-v2 .zd-p-price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: .4rem .5rem;
  margin: var(--zd-5) 0 0;
  padding-top: var(--zd-4);
  border-top: 1px solid var(--zd-p-line);
}

.zd-v2 .zd-p-price__v {
  font-family: var(--zd-font-body); font-weight: var(--zd-fw-cta);
  font-size: 1.65rem;
  line-height: 1.1;
  color: var(--zd-ink);
  font-variant-numeric: tabular-nums;
}

.zd-v2 .zd-p-price__u {
  font-size: var(--zd-fs-small);
  color: var(--zd-ink-soft);
}

.zd-v2 .zd-p-price__range {
  flex-basis: 100%;
  font-size: var(--zd-fs-micro);
  color: var(--zd-ink-soft);
}

.zd-v2 .zd-p-price--request {
  font-family: var(--zd-font-body); font-weight: var(--zd-fw-ui);
  font-size: 1.25rem;
  color: var(--zd-ink-soft);
}

/* varijante ----------------------------------------------------------------- */
.zd-v2 .zd-p-axes {
  display: grid;
  gap: var(--zd-4);
  margin-top: var(--zd-5);
}

.zd-v2 .zd-p-axis__l {
  margin: 0 0 .5rem;
  font-size: var(--zd-fs-micro);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--zd-ink-soft);
}

.zd-v2 .zd-p-opts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.zd-v2 .zd-p-opt {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  min-height: 36px;
  padding: .4rem .7rem;
  border: 1px solid var(--zd-p-line);
  border-radius: var(--zd-radius-sm);
  background: transparent;
  color: var(--zd-ink);
  font: inherit;
  font-size: var(--zd-fs-small);
  line-height: 1.2;
  cursor: pointer;
  transition: border-color var(--zd-t-fast) var(--zd-ease),
              background var(--zd-t-fast) var(--zd-ease),
              color var(--zd-t-fast) var(--zd-ease);
}

@media (hover: hover) and (pointer: fine) {
  .zd-v2 .zd-p-opt:hover { border-color: var(--zd-line-strong); }
}

/* Izabrana vrednost se NE razlikuje samo bojom (tačka 37): nosi i tamnu
   podlogu i deblju ivicu, pa je čitljiva i bez percepcije boje. */
.zd-v2 .zd-p-opt[aria-pressed="true"] {
  border-color: var(--zd-ink);
  background: var(--zd-ink);
  color: var(--zd-ink-invert);
}

/* Mali uzorak uz boju — generator ga dodaje SAMO kada za tu boju postoji
   fotografija baš tog modela (`imgTier == exact`). Nikad izmišljen swatch. */
.zd-v2 .zd-p-opt--sw { padding-left: .4rem; }

.zd-v2 .zd-p-opt__sw {
  display: block;
  width: 22px;
  height: 22px;
  border-radius: 2px;
  object-fit: cover;
  flex: none;
}

/* izabrani model ------------------------------------------------------------ */
.zd-v2 .zd-p-selected {
  display: none;                 /* desktop: isto piše uz uzorak desno */
  margin: .55rem 0 0;
  font-size: var(--zd-fs-small);
  color: var(--zd-ink);
}

.zd-v2 .zd-p-selected__l {
  display: block;
  font-size: var(--zd-fs-micro);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--zd-ink-soft);
}

.zd-v2 .zd-p-selected__v { display: block; overflow-wrap: break-word; }

/* link ka punom tehničkom bloku --------------------------------------------- */
.zd-v2 .zd-p-specs-link { display: none; margin: var(--zd-4) 0 0; }

.zd-v2 .zd-p-specs-link a {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: var(--zd-fs-small);
  color: var(--zd-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--zd-p-line);
  padding-bottom: .2rem;
}

.zd-v2 .zd-p-specs-link svg { width: 15px; height: 15px; }
.zd-v2 .zd-p-specs-link a:hover { border-bottom-color: var(--zd-accent); }

/* mobilni sticky action bar -------------------------------------------------- */
/* Na desktopu ne postoji — CTA ostaje u info koloni, kao u referenci. */
.zd-v2 .zd-p-bar { display: none; }

/* CTA ----------------------------------------------------------------------- */
.zd-v2 .zd-p-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: var(--zd-5);
}

.zd-v2 .zd-p-cta__main,
.zd-v2 .zd-p-cta__alt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: var(--zd-p-cta-h);
  padding: 0 1.15rem;
  border-radius: var(--zd-radius-sm);
  font-size: var(--zd-fs-small);
  letter-spacing: .02em;
  text-decoration: none;
  transition: background var(--zd-t-fast) var(--zd-ease),
              border-color var(--zd-t-fast) var(--zd-ease),
              color var(--zd-t-fast) var(--zd-ease);
}

.zd-v2 .zd-p-cta__main {
  /* Referenca drži oba dugmeta u JEDNOM redu unutar info kolone (~328 px).
     `min-width: 0` dozvoljava skupljanje ispod sopstvenog sadržaja umesto
     preloma u dva reda. */
  flex: 1 1 auto;
  min-width: 0;
  border: 1px solid var(--zd-ink);
  background: var(--zd-ink);
  color: var(--zd-ink-invert);
  white-space: nowrap;
}

.zd-v2 .zd-p-cta__alt {
  flex: 0 1 auto;
  min-width: 0;
  padding-inline: .9rem;
  border: 1px solid var(--zd-p-line);
  background: transparent;
  color: var(--zd-ink);
  white-space: nowrap;
}

.zd-v2 .zd-p-cta__main svg,
.zd-v2 .zd-p-cta__alt svg { width: 16px; height: 16px; flex: none; }

@media (hover: hover) and (pointer: fine) {
  .zd-v2 .zd-p-cta__main:hover { background: var(--zd-accent-dark); border-color: var(--zd-accent-dark); }
  .zd-v2 .zd-p-cta__alt:hover { border-color: var(--zd-ink); }
}

/* uzorak izabranog SKU-a ---------------------------------------------------- */
.zd-v2 .zd-p-swatch { min-width: 0; }

.zd-v2 .zd-p-swatch__box {
  margin: 0;
  aspect-ratio: 1;
  border-radius: var(--zd-radius);
  background: var(--zd-surface);
  overflow: hidden;
}

.zd-v2 .zd-p-swatch__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.zd-v2 .zd-p-swatch__t {
  margin: .8rem 0 0;
  font-size: var(--zd-fs-micro);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--zd-ink-soft);
}

/* „Fotografija kolekcije" — stoji samo kada snimak NIJE baš tog modela. */
.zd-v2 .zd-p-swatch__p {
  display: block;
  margin-top: .25rem;
  letter-spacing: .04em;
  text-transform: none;
  opacity: .8;
}

.zd-v2 .zd-p-swatch__p:empty { display: none; }

/* --------------------------------------------------------------------------
   sekcije
   -------------------------------------------------------------------------- */
.zd-v2 .zd-p-sec { padding: var(--zd-7) 0; }
.zd-v2 .zd-p-sec--tint { background: var(--zd-surface); }

.zd-v2 .zd-p-sec__head { margin-bottom: var(--zd-5); }

.zd-v2 .zd-p-sec__head--row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--zd-5);
  flex-wrap: wrap;
}

.zd-v2 .zd-p-sec__t {
  margin: 0;
  font-family: var(--zd-font-display); letter-spacing: -.01em;
  font-size: var(--zd-fs-h2);
  font-weight: var(--zd-fw-display);
  line-height: 1.2;
  color: var(--zd-ink);
}

.zd-v2 .zd-p-sec__d {
  margin: .4rem 0 0;
  font-size: var(--zd-fs-small);
  color: var(--zd-ink-soft);
}

/* ambijent ------------------------------------------------------------------ */
.zd-v2 .zd-p-amb { background: var(--zd-surface); }

.zd-v2 .zd-p-amb__grid {
  display: grid;
  gap: var(--zd-4);
  margin: 0;
  padding: 0;
  list-style: none;
  /* Raspored se prilagođava STVARNOM broju fotografija — 1, 2, 3 ili 4+.
     Bez praznih ćelija i bez ponavljanja iste slike da bi red bio pun. */
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.zd-v2 .zd-p-amb__grid[data-n="1"] { grid-template-columns: minmax(0, 1fr); }
.zd-v2 .zd-p-amb__grid[data-n="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.zd-v2 .zd-p-amb__grid[data-n="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* 4+ fotografija: uvek najviše 4 u redu, da kadar ostane dovoljno velik. */
.zd-v2 .zd-p-amb__grid[data-n="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.zd-v2 .zd-p-amb__i {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: var(--zd-radius);
  background: var(--zd-bg);
  cursor: pointer;
  overflow: hidden;
}

.zd-v2 .zd-p-amb__i img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  transition: transform .6s var(--zd-ease);
}

.zd-v2 .zd-p-amb__grid[data-n="1"] img { aspect-ratio: 21 / 9; }

@media (hover: hover) and (pointer: fine) {
  .zd-v2 .zd-p-amb__i:hover img { transform: scale(1.04); }
}

/* tehnika + varijante ------------------------------------------------------- */
.zd-v2 .zd-p-tech__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: var(--zd-7);
  align-items: start;
}

/* Kolekcija sa jednim modelom nema blok varijanti — tehnika ide punom širinom. */
.zd-v2 .zd-p-tech__grid--single { grid-template-columns: minmax(0, 1fr); }

.zd-v2 .zd-p-spec__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 var(--zd-5);
}

.zd-v2 .zd-p-spec { margin: 0; }

.zd-v2 .zd-p-spec__r {
  display: grid;
  grid-template-columns: minmax(0, 8.5rem) minmax(0, 1fr);
  gap: .75rem;
  padding: .65rem 0;
  border-bottom: 1px solid var(--zd-p-line);
  font-size: var(--zd-fs-small);
}

.zd-v2 .zd-p-spec__r dt { margin: 0; color: var(--zd-ink-soft); }
.zd-v2 .zd-p-spec__r dd { margin: 0; color: var(--zd-ink); overflow-wrap: break-word; }

.zd-v2 .zd-p-doc { margin: var(--zd-4) 0 0; font-size: var(--zd-fs-small); }

.zd-v2 .zd-p-doc a {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--zd-accent-dark);
  text-decoration: none;
  border-bottom: 1px solid var(--zd-accent-soft);
}

.zd-v2 .zd-p-doc svg { width: 14px; height: 14px; }
.zd-v2 .zd-p-doc a:hover { border-bottom-color: var(--zd-accent); }

.zd-v2 .zd-p-vars {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
  gap: var(--zd-3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.zd-v2 .zd-p-var {
  display: block;
  width: 100%;
  padding: 0 0 .55rem;
  border: 1px solid transparent;
  border-radius: var(--zd-radius-sm);
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: border-color var(--zd-t-fast) var(--zd-ease);
}

.zd-v2 .zd-p-var img {
  display: block;
  width: 100%;
  /* `height: auto` je OBAVEZAN: <img> nosi width/height atribute (rezervacija
     prostora, bez layout shift-a), a taj prezentacioni hint pobeđuje
     `aspect-ratio` sve dok visina nije auto. Bez ovoga se pločica razvuče na
     punu visinu originalne slike. */
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: var(--zd-radius-sm);
  background: var(--zd-surface);
  margin-bottom: .5rem;
}

.zd-v2 .zd-p-var__n {
  display: block;
  padding-inline: .5rem;
  font-size: var(--zd-fs-micro);
  color: var(--zd-ink);
  overflow-wrap: break-word;
}

.zd-v2 .zd-p-var__c {
  display: block;
  padding-inline: .5rem;
  font-size: var(--zd-fs-micro);
  color: var(--zd-ink-soft);
}

.zd-v2 .zd-p-var[aria-current="true"] { border-color: var(--zd-accent); }

@media (hover: hover) and (pointer: fine) {
  .zd-v2 .zd-p-var:hover { border-color: var(--zd-line-strong); }
}

/* srodni proizvodi ---------------------------------------------------------- */
/* Redosled sekcija je 2026-09-14 promenjen u tehnika → ambijent → slično.
   Tintovana je poslednja sekcija, da stranica ne završi ravno u footer.
   Ambijent ima tint samo na 36 stranica koje ga uopšte imaju; kada postoji,
   dve tintovane sekcije bi bile jedna do druge — zato tada „Možda će vam se
   dopasti" pada na osnovnu podlogu i ritam ostaje naizmeničan. */
.zd-v2 .zd-p-rel { background: var(--zd-surface); }
.zd-v2 .zd-p-amb + .zd-p-rel { background: var(--zd-bg); }

.zd-v2 .zd-p-rel__more {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: var(--zd-fs-small);
  color: var(--zd-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--zd-p-line);
  padding-bottom: .2rem;
}

.zd-v2 .zd-p-rel__more svg { width: 16px; height: 16px; }
.zd-v2 .zd-p-rel__more:hover { border-bottom-color: var(--zd-accent); }

.zd-v2 .zd-p-rel__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--zd-4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.zd-v2 .zd-p-rel__l {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr) 20px;
  align-items: center;
  gap: var(--zd-3);
  padding: 10px 12px 10px 10px;
  background: var(--zd-bg);
  border: 1px solid transparent;
  border-radius: var(--zd-radius);
  text-decoration: none;
  color: inherit;
  transition: border-color var(--zd-t-fast) var(--zd-ease),
              transform var(--zd-t-fast) var(--zd-ease);
}

.zd-v2 .zd-p-rel__m {
  display: block;
  border-radius: var(--zd-radius-sm);
  overflow: hidden;
  background: var(--zd-surface);
}

.zd-v2 .zd-p-rel__m img {
  display: block;
  width: 100%;
  height: auto;                 /* vidi napomenu uz .zd-p-var img */
  aspect-ratio: 1;
  object-fit: cover;
}

.zd-v2 .zd-p-rel__b { min-width: 0; }

.zd-v2 .zd-p-rel__n {
  display: block;
  font-size: var(--zd-fs-small);
  color: var(--zd-ink);
  overflow-wrap: break-word;
}

.zd-v2 .zd-p-rel__k {
  display: block;
  margin-top: .15rem;
  font-size: var(--zd-fs-micro);
  color: var(--zd-ink-soft);
}

.zd-v2 .zd-p-rel__a { width: 18px; height: 18px; color: var(--zd-ink-soft); }

@media (hover: hover) and (pointer: fine) {
  .zd-v2 .zd-p-rel__l:hover {
    border-color: var(--zd-line-strong);
    transform: translateY(-2px);
  }
  .zd-v2 .zd-p-rel__l:hover .zd-p-rel__a { color: var(--zd-accent-dark); }
}

/* --------------------------------------------------------------------------
   lightbox — bez ijedne eksterne biblioteke
   -------------------------------------------------------------------------- */
.zd-v2 .zd-p-lb {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  justify-items: center;
  gap: var(--zd-4);
  padding: var(--zd-5);
  background: rgba(16, 15, 13, .94);
}

.zd-v2 .zd-p-lb[hidden] { display: none; }

.zd-v2 .zd-p-lb__f {
  grid-column: 2;
  margin: 0;
  max-width: min(1200px, 92vw);
  max-height: 84vh;
  display: grid;
  place-items: center;
}

.zd-v2 .zd-p-lb__f img {
  display: block;
  max-width: 100%;
  max-height: 84vh;
  width: auto;
  height: auto;
  object-fit: contain;
}

.zd-v2 .zd-p-lb__x,
.zd-v2 .zd-p-lb__nav {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 999px;
  background: transparent;
  color: #fff;
  cursor: pointer;
  transition: background var(--zd-t-fast) var(--zd-ease);
}

.zd-v2 .zd-p-lb__x {
  position: absolute;
  top: var(--zd-4);
  right: var(--zd-4);
}

.zd-v2 .zd-p-lb__nav--prev { grid-column: 1; justify-self: end; }
.zd-v2 .zd-p-lb__nav--next { grid-column: 3; justify-self: start; }
.zd-v2 .zd-p-lb__x svg { width: 18px; height: 18px; }
.zd-v2 .zd-p-lb__nav svg { width: 20px; height: 20px; }

.zd-v2 .zd-p-lb__x:hover,
.zd-v2 .zd-p-lb__nav:hover { background: rgba(255, 255, 255, .12); }

.zd-v2 .zd-p-lb__n {
  position: absolute;
  left: 50%;
  bottom: var(--zd-4);
  translate: -50% 0;
  margin: 0;
  font-size: var(--zd-fs-micro);
  font-variant-numeric: tabular-nums;
  letter-spacing: .06em;
  color: rgba(255, 255, 255, .72);
}

body.zd-p-lock { overflow: hidden; }

/* --------------------------------------------------------------------------
   responsive
   -------------------------------------------------------------------------- */

/* ≤1199.98 — uzorak silazi ispod info kolone, galerija dobija prostor. */
@media (max-width: 1199.98px) {
  .zd-v2 .zd-p-hero__grid {
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
    grid-template-areas: "gallery info" "swatch info";
    align-items: start;
  }
  .zd-v2 .zd-p-gallery { grid-area: gallery; }
  .zd-v2 .zd-p-info { grid-area: info; }
  .zd-v2 .zd-p-swatch {
    grid-area: swatch;
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr);
    align-items: center;
    gap: var(--zd-4);
  }
  .zd-v2 .zd-p-swatch__t { margin: 0; }
  .zd-v2 .zd-p-rel__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ≤991.98 — tehnički blok u jednu kolonu. */
@media (max-width: 991.98px) {
  .zd-v2 .zd-p-tech__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--zd-6);
  }
  .zd-v2 .zd-p-amb__grid[data-n="3"],
  .zd-v2 .zd-p-amb__grid[data-n="4"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ≤767.98 — MOBILNI PRODUCT DETAIL
   ==========================================================================
   Kalibrisano po odobrenoj referenci
   `referentne slike/keramika-product-mobile.png` (1024×1536; ekran mockup-a
   614 px širine = 390 CSS px, skala 1,5744). Sve vrednosti ispod su izmerene
   iz te slike i preračunate u CSS px na 390 vw:

     spoljna margina teksta        16
     galerija / thumbovi           12  (media je za 4 px šira od teksta)
     galerija                      368 × 213  → aspect-ratio 7/4
     thumb traka                   5 × 68, razmak 6, visina 62
     razmaci  breadcrumb→galerija  10 · galerija→thumb 6 · thumb→brand 18
              brand→H1 13 · H1→varijanta 12 · varijanta→opis 15
              opis→cena 20 · cena→prva osa 21 · label→čipovi 6
              osa→osa 16 · poslednja osa→linija 8 · linija→ključni 14
              ključni→link 16 · link→bar 12
     H1                            ~34 px serif (izmerena visina verzala 24,8)
     naziv varijante               ~17 px serif
     cena                          ~28 px serif, zlatna
     čip boje                      50 visok, uzorak 34×34
     čip formata / površine        31 u referenci → 38 ovde (touch target)
     sticky dugme                  44 visoko, radijus 12

   Radijusi su u referenci mekši nego na desktopu (10–12 px prema 3 px), pa su
   ovde lokalni tokeni — desktop se NE menja.

   Boje su postojeći tokeni; izmereno u referenci: pozadina #FBF8F4
   (`--zd-bg`), zlatna #7A6A2E–#8A6A22 (`--zd-accent-dark`), tekst #1C1A17
   (`--zd-ink`), linija #EBE9E4 (`--zd-line`). */
@media (max-width: 767.98px) {
  .zd-v2.zd-product {
    --zd-gutter: 16px;
    --zd-p-radius: 10px;
    --zd-p-media-bleed: -4px;
    --zd-p-bar-pad: 10px;
    --zd-p-bar-btn: 44px;
    --zd-p-bar-h: calc(var(--zd-p-bar-btn) + 2 * var(--zd-p-bar-pad) + 1px);
    /* Rezerva za fiksni bar: izvedena iz istih tokena od kojih je bar
       sastavljen + razmak, pa se ne mogu razići. */
    padding-bottom: calc(var(--zd-p-bar-h) + var(--zd-3)
                         + env(safe-area-inset-bottom, 0px));
  }

  .zd-v2 .zd-p-hero {
    padding-block: calc(var(--zd-header-h, 100px) + .5rem) var(--zd-6);
  }

  .zd-v2 .zd-p-crumbs { margin-bottom: 10px; }
  .zd-v2 .zd-p-crumbs ol { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .zd-v2 .zd-p-crumbs ol::-webkit-scrollbar { display: none; }
  .zd-v2 .zd-p-crumbs li { white-space: nowrap; }

  .zd-v2 .zd-p-hero__grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "gallery" "info" "swatch";
    gap: 18px;                      /* thumb traka → brand */
  }

  /* ---- galerija ---------------------------------------------------------- */
  .zd-v2 .zd-p-gallery {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    margin-inline: var(--zd-p-media-bleed);   /* media je šira od teksta */
  }

  .zd-v2 .zd-p-stage {
    order: 1;
    aspect-ratio: 7 / 4;
    border-radius: var(--zd-p-radius);
  }

  /* Referenca na telefonu nema bočne strelice — listanje je prevlačenjem,
     a ceo set otvara dugme za ceo ekran. */
  .zd-v2 .zd-p-nav { display: none; }

  .zd-v2 .zd-p-zoom {
    top: 12px;
    right: 12px;
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .92);
    opacity: 1;
  }

  .zd-v2 .zd-p-zoom svg { width: 18px; height: 18px; }

  /* brojač je u referenci DOLE DESNO */
  .zd-v2 .zd-p-counter {
    left: auto;
    right: 12px;
    bottom: 12px;
    padding: 4px 11px;
    font-size: .75rem;
  }

  /* ---- thumbovi: 5 u redu, bez horizontalnog skrola ---------------------- */
  .zd-v2 .zd-p-thumbs {
    order: 2;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
    overflow: visible;
  }

  .zd-v2 .zd-p-thumb {
    flex: none;
    width: 100%;
    aspect-ratio: 11 / 10;
    border-radius: 8px;
    opacity: 1;
  }

  .zd-v2 .zd-p-thumb[aria-current="true"] {
    border-width: 2px;
    border-color: var(--zd-accent-dark);
  }

  /* ---- info -------------------------------------------------------------- */
  .zd-v2 .zd-p-brand {
    margin-bottom: 13px;
    font-size: .6875rem;            /* 11 px */
    letter-spacing: .16em;
    color: var(--zd-accent-dark);
  }

  .zd-v2 .zd-p-title { font-size: 2.125rem; line-height: 1.05; }   /* 34 px */

  .zd-v2 .zd-p-selected {
    display: block;
    margin: 12px 0 0;
    font-family: var(--zd-font-body); font-weight: var(--zd-fw-ui);
    font-size: 1.0625rem;           /* 17 px */
    line-height: 1.25;
    color: var(--zd-ink);
  }

  .zd-v2 .zd-p-selected__v { display: inline; }

  .zd-v2 .zd-p-sum {
    margin-top: 15px;
    font-size: .84375rem;           /* 13,5 px */
    line-height: 1.55;
    color: var(--zd-ink-soft);
  }

  /* ---- cena: u referenci je zlatna i serif ------------------------------- */
  .zd-v2 .zd-p-price {
    margin-top: 20px;
    padding-top: 0;
    border-top: 0;
    align-items: baseline;
    gap: .3rem .45rem;
  }

  .zd-v2 .zd-p-price__v { font-size: 1.75rem; color: var(--zd-accent-dark); }

  .zd-v2 .zd-p-price__u {
    font-family: var(--zd-font-body); font-weight: var(--zd-fw-ui);
    font-size: 1.0625rem;
    color: var(--zd-accent-dark);
  }

  .zd-v2 .zd-p-price--request { font-size: 1.375rem; }

  /* ---- varijantne ose ---------------------------------------------------- */
  .zd-v2 .zd-p-axes { margin-top: 21px; gap: 16px; }

  .zd-v2 .zd-p-axis__l {
    margin-bottom: 6px;
    font-size: .625rem;             /* 10 px */
    letter-spacing: .12em;
  }

  .zd-v2 .zd-p-opts { gap: 8px; }

  .zd-v2 .zd-p-opt {
    min-height: 38px;               /* referenca 31; podignuto zbog dodira */
    padding: 0 1rem;
    border-radius: var(--zd-p-radius);
    font-size: .84375rem;
  }

  /* Čip sa uzorkom je viši i nosi kvadrat uzorka levo — kao u referenci. */
  .zd-v2 .zd-p-opt--sw {
    min-height: 50px;
    padding: 0 .875rem 0 .5rem;
    gap: .625rem;
  }

  .zd-v2 .zd-p-opt__sw { width: 34px; height: 34px; border-radius: 6px; }

  /* Izabran čip: zlatna ivica + blaga zlatna podloga (referenca), a NE tamna
     ispuna kao na desktopu. Razlika se ne oslanja samo na boju — ivica je i
     deblja, a `aria-pressed` nosi stanje za čitače ekrana. */
  .zd-v2 .zd-p-opt[aria-pressed="true"] {
    border-color: var(--zd-accent-dark);
    border-width: 1.5px;
    background: var(--zd-accent-soft);
    color: var(--zd-ink);
  }

  .zd-v2 .zd-p-specs-link { display: block; margin-top: 16px; }

  .zd-v2 .zd-p-specs-link a {
    color: var(--zd-accent-dark);
    border-bottom-color: transparent;
    font-size: .78125rem;
  }

  /* Uzorak izabranog modela: referenca ga na telefonu NEMA — istu ulogu nosi
     kvadrat u čipu boje (koji se prikazuje samo uz stvarnu fotografiju tog
     modela) i sama galerija. */
  .zd-v2 .zd-p-swatch { display: none; }

  /* CTA se seli u sticky bar — ne prikazuje se dvaput. */
  .zd-v2 .zd-p-cta { display: none; }

  /* ---- sticky action bar -------------------------------------------------- */
  .zd-v2 .zd-p-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1100;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: var(--zd-p-bar-pad) var(--zd-gutter);
    padding-bottom: calc(var(--zd-p-bar-pad) + env(safe-area-inset-bottom, 0px));
    background: color-mix(in srgb, var(--zd-bg) 92%, transparent);
    border-top: 1px solid var(--zd-line);
    box-shadow: 0 -6px 24px rgba(28, 26, 23, .07);
  }

  @supports (backdrop-filter: blur(10px)) {
    .zd-v2 .zd-p-bar { backdrop-filter: blur(10px); }
  }
  @supports not (color-mix(in srgb, red 50%, transparent)) {
    .zd-v2 .zd-p-bar { background: var(--zd-bg); }
  }

  .zd-v2 .zd-p-bar__main {
    flex: 1 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: var(--zd-p-bar-btn);
    padding: 0 1rem;
    border: 0;
    border-radius: 12px;
    background: var(--zd-accent-dark);
    color: var(--zd-ink-invert);
    font-size: .9375rem;
    letter-spacing: .01em;
    text-decoration: none;
  }

  .zd-v2 .zd-p-bar__main svg { width: 18px; height: 18px; flex: none; }
  .zd-v2 .zd-p-bar__main .zd-p-bar__arrow { margin-left: auto; }

  .zd-v2 .zd-p-bar__tel {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: var(--zd-p-bar-btn);
    height: var(--zd-p-bar-btn);
    border: 1px solid var(--zd-line);
    border-radius: 999px;
    background: var(--zd-surface);
    color: var(--zd-accent-dark);
    text-decoration: none;
  }

  .zd-v2 .zd-p-bar__tel svg { width: 19px; height: 19px; }

  .zd-v2 .zd-p-bar__main:focus-visible,
  .zd-v2 .zd-p-bar__tel:focus-visible {
    outline: 2px solid var(--zd-accent);
    outline-offset: 2px;
  }

  /* ---- sekcije ispod hero-a ---------------------------------------------- */
  .zd-v2 .zd-p-sec { padding: var(--zd-6) 0; }
  .zd-v2 .zd-p-spec__cols { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .zd-v2 .zd-p-spec__r { grid-template-columns: minmax(0, 7.5rem) minmax(0, 1fr); }
  .zd-v2 .zd-p-vars { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
  .zd-v2 .zd-p-amb__i img,
  .zd-v2 .zd-p-var img,
  .zd-v2 .zd-p-rel__m { border-radius: 8px; }

  /* Srodni proizvodi: 2 u redu, kartice ostaju dovoljno velike. */
  .zd-v2 .zd-p-rel__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zd-v2 .zd-p-rel__l {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: .6rem;
    padding: 8px;
    border-radius: var(--zd-p-radius);
  }
  .zd-v2 .zd-p-rel__a { display: none; }

  /* ---- lightbox ---------------------------------------------------------- */
  .zd-v2 .zd-p-lb {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr auto;
    align-content: center;
    padding: var(--zd-4);
  }
  .zd-v2 .zd-p-lb__f { grid-column: 1; }
  .zd-v2 .zd-p-lb__nav--prev { grid-column: 1; grid-row: 2; justify-self: center; translate: -34px 0; }
  .zd-v2 .zd-p-lb__nav--next { grid-column: 1; grid-row: 2; justify-self: center; translate: 34px 0; }
  .zd-v2 .zd-p-lb__n { bottom: calc(var(--zd-4) + env(safe-area-inset-bottom, 0px)); }
}

/* ≤430.98 — CTA preko cele širine, ključni podaci u jednu kolonu. */
@media (max-width: 430.98px) {
  .zd-v2 .zd-p-cta__main,
  .zd-v2 .zd-p-cta__alt { flex: 1 1 100%; }
}

/* ≤359.98 — najuži uređaji: uzorak pun red, varijante 2 u redu. */
@media (max-width: 359.98px) {
  .zd-v2 .zd-p-swatch { grid-template-columns: minmax(0, 1fr); }
  .zd-v2 .zd-p-vars { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zd-v2 .zd-p-rel__grid { grid-template-columns: minmax(0, 1fr); }
}

/* --------------------------------------------------------------------------
   pristupačnost
   -------------------------------------------------------------------------- */
.zd-v2 .zd-p-thumb:focus-visible,
.zd-v2 .zd-p-opt:focus-visible,
.zd-v2 .zd-p-var:focus-visible,
.zd-v2 .zd-p-amb__i:focus-visible,
.zd-v2 .zd-p-zoom:focus-visible,
.zd-v2 .zd-p-nav:focus-visible {
  outline: 2px solid var(--zd-accent);
  outline-offset: 2px;
}

.zd-v2 .zd-p-lb__x:focus-visible,
.zd-v2 .zd-p-lb__nav:focus-visible {
  outline: 2px solid var(--zd-gold-on-dark);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .zd-v2 .zd-p-stage__img,
  .zd-v2 .zd-p-amb__i img,
  .zd-v2 .zd-p-rel__l,
  .zd-v2 .zd-p-opt,
  .zd-v2 .zd-p-thumb,
  .zd-v2 .zd-p-var { transition: none; }
  .zd-v2 .zd-p-stage:hover .zd-p-stage__img,
  .zd-v2 .zd-p-amb__i:hover img { transform: none; }
  .zd-v2 .zd-p-rel__l:hover { transform: none; }
}

/* ==========================================================================
   HERO RASPORED PO REFERENCI
   `referentne slike/referentna-slika-keramika-proizvodi-2.png`

   Vezano za `.zd-p-hero--v2` na <section class="zd-p-hero">. Klasu nose sve
   product stranice keramike; zadržana je da bi ova pravila ostala jasno
   odvojena od starijih blokova u istom fajlu.

   ŠTA SE PROMENILO U ODNOSU NA PRVU REFERENCU
   -------------------------------------------
   Prva referenca je imala tri kolone (galerija | info | uzorak); specifikacije
   su produžavale usku srednju kolonu i ispod galerije je ostajala velika
   praznina. Sada su dve celine:

     [ galerija ]                      [ panel: info | uzorak ]

   Sažeta traka „Karakteristike" je postojala između 2026-09-14 i istog dana
   uklonjena: ista polja stoje u sekciji „Tehničke karakteristike", koja je
   premeštena odmah ispod hero-a. Redosled sekcija je sada
   hero → tehnika + varijante → ambijent → slično.

   IZMERENO IZ REFERENCE
   ---------------------
   Slika je 1672 px široka; okvir sadržaja u njoj je 98…1573 px. Projekat na
   1405 px viewport-a daje sadržajni okvir od 1240 px uz marginu 82,5 px —
   odnos 98/1405 ≈ 82,5/1672 poklapa se, pa je skala slike 1672/1405 = 1,1900.
   Sve vrednosti ispod su referentni pikseli podeljeni sa 1,19:

     sadržaj                     1476 → 1240
     galerija                     785 →  659,7      \  1,2fr : 1fr
     razmak                        38 →   31,9  (2rem)  >  uz gap 2rem
     panel                        653 →  548,7      /
       tekst                      312 →  262,2      \  1fr : 1fr
       razmak                      29 →   24,4  (1,5rem)  >
       uzorak                     313 →  263,0      /
     scena                    785×417 →  659,7×350,4  → aspect-ratio 15/8
     thumb                    148×99  →  124,4×83,2   → aspect-ratio 3/2, 5 u redu
     razmaci u galeriji            11 →    9,2  (10px)
     čip (boja/format)         v 50   →   42,0
     dugmad                    v 61   →   51,3  (52px), razmak 14 → 11,8 (12px)
     uzorak                  313×307  →  263×258      → aspect-ratio 1

   Mobilni (≤767.98) i tablet raspored ostaju po VEĆ ODOBRENOJ mobilnoj
   referenci; ovde se samo ponavljaju deklaracije koje bi novi, specifičniji
   selektori inače pregazili.
   ========================================================================== */

.zd-v2 .zd-p-hero--v2 {
  --zd-p-gal-gap: 10px;
  --zd-p-panel-gap: 1.5rem;
  --zd-p-band-out: min(2.75rem, var(--zd-gutter));
  --zd-p-band-bg: #F6F2EA;
  --zd-p-band-line: #EAE3D7;
  --zd-p-cta-h: 52px;
}

/* --- glavna mreža ---------------------------------------------------------- */
.zd-v2 .zd-p-hero--v2 .zd-p-hero__grid {
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  grid-template-areas: none;
  gap: 0 var(--zd-p-gap);
  align-items: start;
}

/* --- galerija: velika scena, ispod nje red od pet sličica ------------------- */
/* `grid-area: auto` poništava imenovana područja iz starijih media blokova
   (`"gallery info" / "swatch info"`); bez toga bi na telefonu panel završio
   IZNAD galerije. */
.zd-v2 .zd-p-hero--v2 .zd-p-gallery {
  grid-area: auto;
  grid-column: 1;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--zd-p-gal-gap);
}

.zd-v2 .zd-p-hero--v2 .zd-p-stage {
  order: 1;
  aspect-ratio: 15 / 8;
}

.zd-v2 .zd-p-hero--v2 .zd-p-thumbs {
  order: 2;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--zd-p-gal-gap);
}

/* Kada kolekcija ima manje od pet fotografija, red se ne razvlači — sličice
   zadrže istu širinu kao u referenci. */
.zd-v2 .zd-p-hero--v2 .zd-p-thumbs:has(> li:nth-child(4):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.zd-v2 .zd-p-hero--v2 .zd-p-thumbs:has(> li:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.zd-v2 .zd-p-hero--v2 .zd-p-thumbs:has(> li:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.zd-v2 .zd-p-hero--v2 .zd-p-thumb {
  box-sizing: border-box;
  width: 100%;
  aspect-ratio: 3 / 2;
  border: 0;
  padding: 0;
  border-radius: var(--zd-radius);
  opacity: .82;
}

/* Aktivna sličica: zlatni okvir sa svetlim procepom, kao u referenci. */
.zd-v2 .zd-p-hero--v2 .zd-p-thumb[aria-current="true"] {
  border: 2px solid var(--zd-accent);
  padding: 2px;
  background: var(--zd-bg);
  opacity: 1;
}

/* --- desni panel: tekst + uzorak, dugmad preko obe kolone ------------------- */
.zd-v2 .zd-p-hero--v2 .zd-p-panel {
  grid-column: 2;
  display: grid;
  /* Na referentnoj širini obe kolone su jednake (262 : 263). Ispod nje
     tekstualna kolona ima prednost — `min` od 258 px je širina koju traže
     četiri čipa boje u jednom redu; uzorak se skuplja umesto da se čipovi lome
     u dva reda. Bez toga bi između 1200 i ~1300 px „Greige" pao u novi red. */
  grid-template-columns: minmax(258px, 1fr) minmax(0, 1fr);
  column-gap: var(--zd-p-panel-gap);
  align-items: start;
  min-width: 0;
}

.zd-v2 .zd-p-hero--v2 .zd-p-info { grid-area: auto; grid-column: 1; grid-row: 1; }

.zd-v2 .zd-p-hero--v2 .zd-p-swatch {
  grid-area: auto;
  grid-column: 2;
  grid-row: 1;
  display: block;
  margin-top: 21px;                   /* referenca: uzorak počinje u visini H1 */
}

.zd-v2 .zd-p-hero--v2 .zd-p-cta {
  grid-column: 1 / -1;
  grid-row: 2;
  gap: 12px;
  margin-top: 30px;
}

/* Dugmad u referenci NISU razvučena preko celog panela — šire se samo koliko
   traži sadržaj, a red počinje uz levu ivicu panela. */
.zd-v2 .zd-p-hero--v2 .zd-p-cta__main {
  flex: 0 0 auto;
  min-width: 244px;
  padding-inline: 1.6rem;
}

.zd-v2 .zd-p-hero--v2 .zd-p-cta__alt {
  flex: 0 0 auto;
  min-width: 192px;
  padding-inline: 1.4rem;
}

/* --- tipografija info kolone (referenca je krupnija od prve verzije) -------- */
.zd-v2 .zd-p-hero--v2 .zd-p-title {
  margin-top: .45rem;
  font-size: clamp(2rem, 3.15vw, 2.75rem);
}

.zd-v2 .zd-p-hero--v2 .zd-p-sum {
  margin-top: .65rem;
  font-size: .9375rem;
}

.zd-v2 .zd-p-hero--v2 .zd-p-price {
  margin-top: 1.35rem;
  padding-top: 1.35rem;
  gap: .35rem .5rem;
}

.zd-v2 .zd-p-hero--v2 .zd-p-price__v { font-size: 1.9375rem; }
.zd-v2 .zd-p-hero--v2 .zd-p-axes { margin-top: 1.25rem; gap: 1.4rem; }
.zd-v2 .zd-p-hero--v2 .zd-p-axis__l { margin-bottom: .3rem; }

.zd-v2 .zd-p-hero--v2 .zd-p-opts { gap: 6px; }

.zd-v2 .zd-p-hero--v2 .zd-p-opt {
  min-height: 42px;
  padding: .45rem .7rem;
  font-size: .9375rem;
}

.zd-v2 .zd-p-hero--v2 .zd-p-swatch__t { margin-top: .95rem; font-size: .8125rem; }

/* Link na pun tehnički blok ostaje deo stranice; na desktopu je sakriven
   (postojeće pravilo), na telefonu stoji ispod trake. */
.zd-v2 .zd-p-hero--v2 .zd-p-specs-link { grid-column: 1 / -1; }

/* --------------------------------------------------------------------------
   ≤1199.98 — GALERIJA PREKO CELE ŠIRINE, PANEL ISPOD NJE

   Ispod 1200 px tekstualna polovina panela padne ispod ~250 px, pa se čipovi
   boje i formata lome u dva reda — a upravo to referenca izbegava. Zato se
   ispod te granice dve celine slažu jedna ispod druge: galerija punom širinom,
   pa panel punom širinom (i dalje tekst + uzorak u dve kolone). Tako nema ni
   preloma čipova ni praznine ispod galerije.
   -------------------------------------------------------------------------- */
@media (max-width: 1199.98px) {
  .zd-v2 .zd-p-hero--v2 .zd-p-hero__grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: none;
    gap: var(--zd-6) 0;
  }

  .zd-v2 .zd-p-hero--v2 .zd-p-gallery,
  .zd-v2 .zd-p-hero--v2 .zd-p-panel { grid-area: auto; grid-column: 1; }

  .zd-v2 .zd-p-hero--v2 .zd-p-swatch {
    display: block;
    grid-template-columns: none;
    gap: 0;
  }

  .zd-v2 .zd-p-hero--v2 .zd-p-cta__main { min-width: 220px; }
  .zd-v2 .zd-p-hero--v2 .zd-p-cta__alt { min-width: 176px; }
}

/* --------------------------------------------------------------------------
   ≤767.98 — VRAĆANJE ODOBRENOG MOBILNOG RASPOREDA
   Novi selektori su specifičniji od postojećih mobilnih pravila, pa se ovde
   ponavljaju vrednosti iz već odobrene mobilne reference.
   -------------------------------------------------------------------------- */
@media (max-width: 767.98px) {
  .zd-v2 .zd-p-hero--v2 .zd-p-hero__grid { grid-template-areas: none; gap: 0; }

  .zd-v2 .zd-p-hero--v2 .zd-p-gallery {
    gap: 6px;
    margin-inline: var(--zd-p-media-bleed);
  }

  .zd-v2 .zd-p-hero--v2 .zd-p-stage { aspect-ratio: 7 / 4; border-radius: var(--zd-p-radius); }

  .zd-v2 .zd-p-hero--v2 .zd-p-thumbs { gap: 6px; }

  .zd-v2 .zd-p-hero--v2 .zd-p-thumb {
    aspect-ratio: 11 / 10;
    border-radius: 8px;
    opacity: 1;
  }

  .zd-v2 .zd-p-hero--v2 .zd-p-thumb[aria-current="true"] {
    border: 2px solid var(--zd-accent-dark);
    padding: 0;
    background: transparent;
  }

  /* panel: jedna kolona, bez uzorka i bez CTA (oni su u sticky baru) */
  .zd-v2 .zd-p-hero--v2 .zd-p-panel {
    display: block;
    margin-top: 18px;                 /* thumb traka → brand, po referenci */
  }

  .zd-v2 .zd-p-hero--v2 .zd-p-swatch { display: none; }
  .zd-v2 .zd-p-hero--v2 .zd-p-cta { display: none; }

  .zd-v2 .zd-p-hero--v2 .zd-p-title { margin-top: 0; font-size: 2.125rem; }
  .zd-v2 .zd-p-hero--v2 .zd-p-sum { margin-top: 15px; font-size: .84375rem; }

  .zd-v2 .zd-p-hero--v2 .zd-p-price {
    margin-top: 20px;
    padding-top: 0;
    gap: .3rem .45rem;
  }

  .zd-v2 .zd-p-hero--v2 .zd-p-price__v { font-size: 1.75rem; }
  .zd-v2 .zd-p-hero--v2 .zd-p-axes { margin-top: 21px; gap: 16px; }
  .zd-v2 .zd-p-hero--v2 .zd-p-axis__l { margin-bottom: 6px; }
  .zd-v2 .zd-p-hero--v2 .zd-p-opts { gap: 8px; }

  .zd-v2 .zd-p-hero--v2 .zd-p-opt {
    min-height: 38px;
    padding: 0 1rem;
    font-size: .84375rem;
  }

  .zd-v2 .zd-p-hero--v2 .zd-p-opt--sw { min-height: 50px; padding: 0 .875rem 0 .5rem; }

  .zd-v2 .zd-p-hero--v2 .zd-p-specs-link { margin-top: 16px; }
}
