/* ==========================================================================
   HEDONA PDP — strana proizvoda (modul Hedona_PDP)

   Učitava se POSLE `hedona-shop.css` (deklarisana zavisnost u
   `Hedona_PDP::enqueue()`). Sve je zaključano na body klasu `hedona-product`,
   koja se nikad ne pojavljuje na /cart/, /checkout/ i /my-account/.

   ZAŠTO OVAJ FAJL POSTOJI — tri izmerena kvara na najvažnijoj komercijalnoj
   strani (mereno iz DOM-a, `getComputedStyle` + `CSS.getMatchedStylesForNode`):

     cena   #ACACAC na pergamentu = 1,90:1, 22px/400 — najsvetliji tekst strane
     CTA    krem na zlatnoj       = 2,04:1, 12px    — i drugačiji nego u arhivi
     naslov zlatan                = 4,09:1 svetla / 3,76:1 tamna

   Uzrok NIJE nedostatak pravila — `hedona-shop.css` traži ispravno. Uzrok su
   Elementorova per-element pravila iz `post-332.css` sa višom specifičnošću:

     .woocommerce .elementor-332 .elementor-element-70aae0b9 .price          (0,5,0)
     .elementor-332 .elementor-element-30a5b1e3 .cart .button                (0,5,0)
     .elementor-332 .elementor-element-44ac4e00 .elementor-heading-title     (0,4,0)

   Rešenje NIJE veća specifičnost ni `!important` — to je rat koji je već
   izgubljen na korpi. `Hedona_PDP` iz markupa uklanja klase na koje se ta
   pravila kače (`price`, `button`, `elementor-heading-title`), pa ovde stoje
   obična pravila NIŽE specifičnosti nad našim klasama.

   TOKENI: isključivo `--hd-*` iz `hedona-layout.css` — nula tvrdih heks
   vrednosti, pa obe teme rade bez ijedne dodatne deklaracije boje.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Naslov — vrh hijerarhije, mastilo a ne zlato
   Zlatan naslov je gubio kontrast u tamnoj temi (3,76:1) i takmičio se sa
   cenom. Specifičnost (0,3,1) je izjednačena sa `hedona-skin.css:170`
   (`.woocommerce div.product .product_title`) — odlučuje redosled izvora,
   koji je zagarantovan zavisnošću u `enqueue()`.
   -------------------------------------------------------------------------- */
.hedona-product .elementor-widget-woocommerce-product-title h1.hedona-pdp__title {
  font-family: var(--hd-serif);
  font-size: clamp(27px, 3.2vw, 37px);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: 0;
  color: var(--hd-ink);
  margin: 0 0 12px;
  text-transform: none;
  text-wrap: balance;
}

/* --------------------------------------------------------------------------
   2. Cena — drugi najjači element strane
   `Hedona_PDP::price_block()` ispisuje `.hedona-pdp__price` sa netaknutim
   `$product->get_price_html()` unutra. Klase `price` više nema, pa Elementorovo
   pravilo nema šta da pogodi i ovde je dovoljna specifičnost (0,2,0).
   -------------------------------------------------------------------------- */
.hedona-product .hedona-pdp__price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 14px;
  margin: 0 0 18px;
  font-family: var(--hd-sans);
}

.hedona-product .hedona-pdp__amount {
  font-size: 30px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.005em;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  color: var(--hd-gold-deep);
}

/* Tamna tema: `--hd-gold` je svetliji od `--hd-gold-deep` i na crnoj podlozi
   daje mirniju, čitljiviju cifru. */
:root[data-theme="dark"] .hedona-product .hedona-pdp__amount {
  color: var(--hd-gold);
}

/* Stara cena — tiha, precrtana; akcijska nasleđuje zlatnu iz roditelja. */
.hedona-product .hedona-pdp__amount del {
  color: var(--hd-muted);
  font-size: 20px;
  font-weight: 400;
  margin-right: 4px;
  text-decoration: line-through;
  opacity: 1;
}
.hedona-product .hedona-pdp__amount ins {
  color: inherit;
  font-weight: 700;
  text-decoration: none;
  background: none;
}
.hedona-product .hedona-pdp__amount .woocommerce-Price-currencySymbol {
  font-size: 0.66em;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.hedona-product .hedona-pdp__amount .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Ušteda: mirna pločica, ne crveni badž — `--hd-wine` u tamnoj temi pada na
   3,98:1, pa značenje nosi precrtana stara cena, a ne boja. */
.hedona-product .hedona-pdp__save {
  align-self: center;
  padding: 5px 11px;
  border: 1px solid var(--hd-hairline);
  border-radius: var(--hd-r-pill);
  background: var(--hd-well);
  color: var(--hd-ink);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}

.hedona-product .hedona-pdp__vat {
  flex: 1 1 100%;
  margin-top: -2px;
  color: var(--hd-muted);
  font-size: 13px;
  line-height: 1.4;
}

/* --------------------------------------------------------------------------
   3. CTA — jedan izgled na celom sajtu
   Isti par tokena kao kartica u arhivi (`.hedona-pcard__cta`): tamna podloga
   `--hd-espresso` + krem tekst `--hd-cream`. U tamnoj temi se par obrće
   (svetlo dugme, tamno slovo) jer su oba tokena definisana za obe teme.
   Zlatna ostaje sekundarnim akcijama.

   Specifičnost (0,4,2) pobeđuje `.elementor-element-30a5b1e3 .cart button`
   (0,4,1); varijanta `.cart .button` (0,5,0) više ne pogađa jer je
   `Hedona_PDP::unhook_cta()` skinuo generičku klasu `button`.
   -------------------------------------------------------------------------- */
.hedona-product .elementor-add-to-cart form.cart button.hedona-pdp__cta,
.hedona-product .elementor-add-to-cart form.cart a.hedona-pdp__cta,
.hedona-product form.cart button.hedona-pdp__cta {
  flex: 1 1 220px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 54px;
  padding: 15px 30px;
  border: 1px solid var(--hd-espresso);
  border-radius: var(--hd-r-sm);
  background: var(--hd-espresso);
  color: var(--hd-cream);
  font-family: var(--hd-sans);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.01em;
  text-align: center;
  text-decoration: none;
  text-transform: none;
  box-shadow: var(--hd-sh-sm);
  cursor: pointer;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.hedona-product .elementor-add-to-cart form.cart button.hedona-pdp__cta:hover,
.hedona-product .elementor-add-to-cart form.cart a.hedona-pdp__cta:hover,
.hedona-product form.cart button.hedona-pdp__cta:hover {
  background: var(--hd-gold-deep);
  border-color: var(--hd-gold-deep);
  color: var(--hd-cream);
}

/* Varijabilan proizvod pre izbora atributa — Woo dodaje `disabled`. */
.hedona-product .elementor-add-to-cart form.cart button.hedona-pdp__cta:disabled,
.hedona-product .elementor-add-to-cart form.cart button.hedona-pdp__cta.disabled {
  opacity: 0.5;
  cursor: not-allowed;
  box-shadow: none;
}

/* Količina: specifičnost izjednačena sa `hedona-skin.css:181`
   (`.woocommerce div.product form.cart div.quantity .qty`, 0,5,3) — odlučuje
   redosled izvora. Bela pozadina iz `hedona-shop.css` je u tamnoj temi bila
   svetla mrlja; `--hd-card` prati temu. */
.hedona-product .elementor-add-to-cart form.cart div.quantity input.hedona-pdp__qty,
.hedona-product form.cart div.quantity input.hedona-pdp__qty {
  width: 100%;
  height: 54px;
  min-height: 54px;
  padding: 8px 10px;
  border: 1px solid var(--hd-line);
  border-radius: var(--hd-r-sm);
  background: var(--hd-card);
  color: var(--hd-ink);
  font-family: var(--hd-sans);
  font-size: 16px;
  font-weight: 600;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  text-align: center;
}

/* --------------------------------------------------------------------------
   4. Popravke kontrasta u tamnoj temi (tvrdi heksovi iz `hedona-shop.css`)
   Ne diramo tuđi fajl — prevodimo na tokene ovde. Sve izmereno na
   `--hd-parch` podlozi PDP-a u tamnoj temi.
   -------------------------------------------------------------------------- */

/* bilo #4A4132 → 1,83:1 */
.hedona-product .hedona-buy__excerpt {
  color: var(--hd-ink);
  font-size: 15.5px;
  line-height: 1.65;
  margin: 0 0 24px;
}
.hedona-product .hedona-buy__excerpt p:last-child {
  margin-bottom: 0;
}

/* bilo #1F6B3B → 2,82:1. Zeleni token ne postoji, a boja ionako ne sme da
   bude jedini nosilac značenja: tekst nosi poruku, tačkica je samo signal. */
.hedona-product .hedona-buy__stock.is-in,
.hedona-product .hedona-buy__stock.is-out {
  color: var(--hd-ink);
  font-size: 14.5px;
  font-weight: 600;
}
.hedona-product .hedona-buy__stock.is-in .hedona-buy__dot {
  background: var(--hd-gold-deep);
}
.hedona-product .hedona-buy__stock.is-out .hedona-buy__dot {
  background: var(--hd-wine);
}

/* bilo #4A4132 u panelima tabova i tabeli specifikacija */
.hedona-product .hedona-tabs .woocommerce-Tabs-panel,
.hedona-product .hedona-specs td {
  color: var(--hd-ink);
}

/* Tabovi: `hedona-skin.css:179–180` boji ih tvrdim heksovima
   (`.woocommerce div.product .woocommerce-tabs ul.tabs li a` 0,4,4 i
   `… li.active a` 0,5,4). U tamnoj temi je AKTIVAN tab ispadao espresso na
   espresso kartici — izmereno **1,06:1**, praktično nevidljivo. Specifičnost je
   ovde izjednačena, ne podignuta; odlučuje redosled izvora. */
.hedona-product div.hedona-tabs .woocommerce-tabs ul.tabs li a {
  color: var(--hd-muted);
}
.hedona-product div.hedona-tabs .woocommerce-tabs ul.tabs li.active a,
.hedona-product div.hedona-tabs .woocommerce-tabs ul.tabs li a:hover {
  color: var(--hd-ink);
}
.hedona-product .hedona-tabs #reviews input[type="text"],
.hedona-product .hedona-tabs #reviews input[type="email"],
.hedona-product .hedona-tabs #reviews textarea {
  background: var(--hd-card);
  color: var(--hd-ink);
  border-color: var(--hd-line);
  border-radius: var(--hd-r-sm);
}

/* hover CTA-a u kartici povezanih proizvoda je bio tvrdi #FDF7E8 */
.hedona-product .hedona-pcard__cta:hover,
.hedona-product .hedona-sbtn:hover {
  color: var(--hd-cream);
}

/* --------------------------------------------------------------------------
   5. Meke ivice i dubina umesto tvrdih okvira (tokeni oblika iz layouta)
   -------------------------------------------------------------------------- */
.hedona-product .woocommerce-product-gallery,
.hedona-product .hedona-tabs {
  border-color: var(--hd-hairline);
  border-radius: var(--hd-r-md);
  box-shadow: var(--hd-sh-sm);
}
.hedona-product .woocommerce-product-gallery__image img,
.hedona-product .flex-control-thumbs img {
  border-radius: var(--hd-r-sm);
}

/* --------------------------------------------------------------------------
   5b. S15 — praznine u kupovnoj koloni
   Galerija zauzima `grid-row: 2 / span 8`, a desna kolona samo redove 2–7.
   Višak visine galerije se razlivao po redovima, pa su između cene i opisa i
   između opisa i „Na stanju" zjapile praznine od ~100–140px (audit ih je merio
   kao ~200px). Poslednji red uzima `1fr` i upija sav višak, a Elementorove
   razmake widgeta (52px ispod cene, 62px ispod opisa) gasimo — ritam drže
   sami elementi.
   -------------------------------------------------------------------------- */
@media (min-width: 1025px) {
  .hedona-product .elementor-location-single > .e-con:first-of-type > .e-con-inner {
    grid-template-rows: auto auto auto auto auto auto auto 1fr;
    align-content: start;
    row-gap: 0;
  }
}

.hedona-product .elementor-location-single > .e-con:first-of-type .elementor-widget-woocommerce-product-title,
.hedona-product .elementor-location-single > .e-con:first-of-type .elementor-widget-woocommerce-product-price,
.hedona-product .elementor-location-single > .e-con:first-of-type .elementor-widget-woocommerce-product-content,
.hedona-product .elementor-location-single > .e-con:first-of-type .elementor-widget-woocommerce-notices,
.hedona-product .elementor-location-single > .e-con:first-of-type .elementor-widget-woocommerce-product-add-to-cart,
.hedona-product .elementor-location-single > .e-con:first-of-type .elementor-widget-woocommerce-product-meta {
  margin-bottom: 0;
  padding-bottom: 0;
}

/* --------------------------------------------------------------------------
   6. B4 — mobilna galerija NIJE lepljiva
   `hedona-shop.css:729` postavlja `position: sticky; top: 96px` na OMOTAČ
   widgeta galerije bez media upita; responsive blok na ≤1024px statifikuje
   samo unutrašnji `.woocommerce-product-gallery`. Zbog toga su na 390px pri
   `scrollY=520` naslov (y 205–274) i cena (y 313–348) ležali PREKO slike
   (y 97–361) i bili nečitljivi. Ista specifičnost (0,2,0) — odlučuje redosled.
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  .hedona-product .elementor-widget-woocommerce-product-images {
    position: static;
    top: auto;
    align-self: stretch;
    margin-bottom: 6px;
  }

  /* Redosled na telefonu. `hedona-shop.css` na ≤1024px svima vraća
     `grid-row: auto`, pa se raspored svodi na redosled u DOM-u Elementor
     šablona — a tamo widget „meta" stoji PRE naslova, zbog čega je na 390px
     „ŠIFRA / KATEGORIJA" ispisano iznad imena proizvoda. Ista specifičnost
     (0,2,0), odlučuje redosled izvora. */
  .hedona-product .elementor-widget-woocommerce-breadcrumb { grid-row: 1; }
  .hedona-product .elementor-widget-woocommerce-product-images { grid-row: 2; }
  .hedona-product .elementor-widget-woocommerce-product-title { grid-row: 3; }
  .hedona-product .elementor-widget-woocommerce-product-price { grid-row: 4; }
  .hedona-product .elementor-widget-woocommerce-product-content { grid-row: 5; }
  .hedona-product .elementor-widget-woocommerce-notices { grid-row: 6; }
  .hedona-product .elementor-widget-woocommerce-product-add-to-cart { grid-row: 7; }
  .hedona-product .elementor-widget-woocommerce-product-meta { grid-row: 8; }

  .hedona-product .hedona-pdp__price {
    margin-bottom: 16px;
  }
  .hedona-product .hedona-pdp__amount {
    font-size: 28px;
  }

  .hedona-product .elementor-add-to-cart form.cart,
  .hedona-product form.cart {
    scroll-margin-bottom: calc(var(--hedona-cartbar-offset, 76px) + 20px);
  }

  .hedona-product .elementor-location-single > .e-con:last-child {
    --padding-bottom: 0;
    padding-bottom: calc(var(--hedona-cartbar-offset, 76px) + 16px);
  }
}

@media (max-width: 600px) {
  .hedona-product .elementor-add-to-cart form.cart .quantity {
    flex: 0 0 92px;
  }
  .hedona-product .elementor-add-to-cart form.cart button.hedona-pdp__cta,
  .hedona-product form.cart button.hedona-pdp__cta {
    flex: 1 1 auto;
    padding: 15px 18px;
    font-size: 15.5px;
  }
  .hedona-product .hedona-pdp__save {
    font-size: 12.5px;
  }
}

/* --------------------------------------------------------------------------
   7. Sigurnosna mreža
   Ako `elementor/widget/render_content` ikad prestane da se izvršava (Elementor
   ukloni filter, Hedona_PDP se deaktivira), cena se vraća u zatečeni
   `<p class="price">` koji Elementor boji u #ACACAC. Ovo pravilo gađa element
   UNUTAR njega: direktno postavljena boja uvek pobeđuje nasleđenu, bez obzira
   na specifičnost — pa cena ostaje čitljiva i tada.
   -------------------------------------------------------------------------- */
.hedona-product .elementor-widget-woocommerce-product-price .price .woocommerce-Price-amount {
  color: var(--hd-gold-deep);
  font-family: var(--hd-sans);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
}
:root[data-theme="dark"] .hedona-product .elementor-widget-woocommerce-product-price .price .woocommerce-Price-amount {
  color: var(--hd-gold);
}
.hedona-product .elementor-widget-woocommerce-product-price .price del .woocommerce-Price-amount {
  color: var(--hd-muted);
  font-size: 20px;
  font-weight: 400;
}

@media (prefers-reduced-motion: reduce) {
  .hedona-product .elementor-add-to-cart form.cart button.hedona-pdp__cta {
    transition: none;
  }
}
