﻿/* ==========================================================================
   SPM Stamenković — Custom CSS za Helix Ultimate
   Nalepiti u: Template Manager > Helix Ultimate stil > Custom Code > Custom CSS
   ========================================================================== */

/* --- Fontovi (dodati i link u Custom Code > Custom Code <head> ako Helix
   ne učita Google Fonts automatski):
   <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@600;700;800&family=Nunito+Sans:wght@400;600;700&display=swap" rel="stylesheet">
*/

/* ==========================================================================
   VirtueMart Cart modul (header) — kompaktna ikonica sa brojem stavki,
   pun sadržaj (lista/total/Plaćanje) tek na hover kao padajući panel.
   Struktura potvrđena kroz Inspect element: #vmCartModule sadrži
   .vm_cart_products (lista), .total, .total_products ("N product"),
   .show_cart > a.details (link ka checkout-u).
   ========================================================================== */
/* Pozicioniranje "desno od Sign In" preko CSS reda (order).
   VAŽNO (iz header.php): Korpa (pozicija "menu") i ".header-modules" (Search
   + Sign In, hardkodovano u templejtu, ne pravi Joomla modul) NISU jedno u
   drugom — oboje su BRAĆA/SESTRE unutar istog flex reda "#sp-menu .sp-column".
   Zato order stavljamo na TA DVA elementa (i na hamburger, da ostane poslednji),
   ne unutar .header-modules gde korpa uopšte i ne postoji. */
#sp-menu .sp-column > .sp-module.top-cart{
  order:1;
}
#offcanvas-toggler{
  order:2;
}

/* VAŽNO: .sp-module je stvarna flex-stavka u header redu (pored Sign In/
   hamburger). Kad njeno dete (#vmCartModule) postane position:absolute na
   hover, apsolutno pozicionirani element ne doprinosi širini roditelja — pa
   bi se .sp-module skupio na skoro 0px i cela traka bi se pomerila. Zato mu
   dajemo FIKSNU širinu/visinu koja se NIKAD ne menja, bez obzira šta se
   dešava unutra (bedž ili otvoren panel). Sve je sa !important i overflow:
   visible da nijedno pravilo iz templejta (Helix/Bootstrap) ne može ovo
   da pregazi ili da odseče panel. */
#sp-menu,
#sp-menu .sp-column{
  overflow:visible !important;
}

/* SAMO NA DESKTOPU (≥992px, isti prag na kom Helix pokazuje glavni meni —
   vidi "d-none d-lg-block" na <ul class="sp-megamenu-parent">). Ovde je
   korpi potrebna fiksna 150px "rezervacija" mesta jer se panel na hover
   otvara preko position:absolute. Na mobilnom (ispod 992px) ova fiksna
   širina je bila PREVELIKA za red logo+meni+korpa+hamburger, pa je red
   morao da se prelomi u drugi red i "iscuri" ispod headera preko hero
   sekcije — zato ovo NIKAD ne sme da važi na mobilnom. */
@media (min-width:992px){
  .sp-module.top-cart{
    position:relative !important;
    width:150px !important;
    height:36px !important;
    min-width:150px !important;
    max-width:150px !important;
    flex:0 0 150px !important;
    overflow:visible !important;
  }
}
.sp-module.top-cart .sp-module-title{
  display:none;
}

.vm-centered .vmgroup .row,
.vm-centered .vmgroup > div {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.vm-centered .vmgroup .product,
.vm-centered .vmgroup [class*="width"] {
    float: none; /* VM default koristi float:left */
}

/* STVARNA STRUKTURA (potvrđeno iz Inspect elementa):
   #vmCartModule
     .hiddencontainer     (inline display:none — ignorisati)
     .vm_cart_products > .vmcontainer > .product_row (ime + cena float:right)
     .total               (inline style="float:right")
     .total_products       <-- bedž "N product", dolazi POSLE .total, ne pre!
     .show_cart > a.details (inline style="float:right", link "Plaćanje")
     div[style*="clear"]
     .payments-signin-button (prazan)

   KLJUČNA ISPRAVKA: #vmCartModule ima FIKSNU širinu 280px UVEK (i pre i na
   hover), ne "auto". Ranije je širina rasla SA 120px (bedž) NA 280px (kartica)
   tek na hover, a pošto je kontejner bio usidren za desnu ivicu (right:0),
   taj rast širine je pomerao levu ivicu i sve unutra (bedž, "Plaćanje") na
   čudna mesta — to je uzrok "još gore" izgleda sa screenshot-a. Kad je
   širina UVEK ista, ništa se ne pomera — samo se sadržaj otkriva/sakriva. */
@media (min-width:992px){
  #vmCartModule.top-cart{
    position:absolute !important;
    top:0 !important;
    right:0 !important;
    left:auto !important;
    bottom:auto !important;
    margin:0 !important;
    display:block !important;
    width:auto !important;
    box-sizing:border-box !important;
    text-align:right;
    z-index:50;
  }
}

/* Sakriveno po defaultu — otkriva se samo na hover */
#vmCartModule > .vm_cart_products,
#vmCartModule > .total,
#vmCartModule > .show_cart,
#vmCartModule > div[style*="clear"]{
  display:none;
}

/* Uvek vidljiva kompaktna oznaka: ikonica korpe + broj stavki. Drži se uz
   desnu ivicu 280px kutije (text-align:right gore) — ista pozicija kao pre. */
#vmCartModule > .total_products{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:var(--spm-blush);
  color:var(--spm-primary);
  font-weight:700;
  font-size:13px;
  padding:8px 16px 8px 32px;
  border-radius:30px;
  position:relative;
  cursor:pointer;
  white-space:nowrap;
  z-index:2;
}
#vmCartModule > .total_products::before{
  content:"\1F6D2";
  position:absolute;
  left:12px;
  font-size:14px;
}

.vm_cart_products .product_row span {
	margin: 0 5px;
}

/* Na hover: SAMO JEDNA kartica (pozadina/senka/padding) na #vmCartModule kao
   celini. Deca (.vm_cart_products/.total/.total_products/.show_cart) su samo
   red teksta bez svoje pozadine/senke — tako, ako je neko od njih prazno
   (npr. korpa je prazna → .total i .show_cart su prazni div-ovi), ne pravi
   se vidljiva "duh" bela kutija bez sadržaja, kao što se desilo malopre.
   .total_products NIJE sakriven na hover jer je za praznu korpu on JEDINI
   sadržaj ("Korpa je prazna" tekst) — za punu korpu i dalje se vidi kao
   kratak red iznad Total-a. SAMO DESKTOP (≥992px) — hover ionako ne radi
   dobro na dodir/mobilnom, pa na mobilnom korpa ostaje običan mali bedž
   u redu (vidi mobilni blok ispod). */
@media (min-width:992px){
  .sp-module.top-cart:hover #vmCartModule.top-cart{
    right:-125px !important;
    background:#fff;
    box-shadow:0 16px 40px rgba(0,0,0,.16);
    border:1px solid #f2e9e4;
    border-radius:var(--spm-radius);
    padding:18px 20px;
    text-align:left;
  }

  .sp-module.top-cart:hover #vmCartModule > .total_products{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    background:none;
    color:var(--spm-primary);
    font-size:14px;
    font-weight:700;
    text-align:center;
    padding:2px 0 14px 0;
    border-bottom:1px solid #f2e9e4;
    margin-bottom:14px;
  }
  .sp-module.top-cart:hover #vmCartModule > .total_products::before{
    content:"\1F6D2";
    position:static;
    font-size:15px;
  }
  .sp-module.top-cart:hover #vmCartModule > .vm_cart_products,
  .sp-module.top-cart:hover #vmCartModule > .total,
  .sp-module.top-cart:hover #vmCartModule > .show_cart{
    display:block;
    width:100% !important;
    box-sizing:border-box !important;
    float:none !important;
    text-align:left;
  }
  .sp-module.top-cart:hover #vmCartModule > .total{
    font-size:14px;
    font-weight:700;
    padding-top:8px;
    border-top:1px solid #f2e9e4;
    margin-top:6px;
  }
  .sp-module.top-cart:hover .product_row{
    font-size:13px;
    padding:6px 0;
    border-bottom:1px solid #f2e9e4;
    float:none !important;
  }
  .sp-module.top-cart:hover .product_row .subtotal_with_tax{
    float:right !important;
  }
  .sp-module.top-cart:hover .show_cart .details{
    display:inline-block;
    margin-top:10px;
    background:var(--spm-primary);
    color:#fff !important;
    padding:8px 20px;
    border-radius:30px;
    font-weight:700;
    text-decoration:none;
    float:none !important;
  }
}

/* MOBILNI PRIKAZ (<992px) — korpa mora da ostane OBIČNA flex-stavka u redu
   sa logoom i hamburgerom (bez fiksne 150px rezervacije i bez apsolutnog
   pozicioniranja iz desktop bloka gore, koji su bili uzrok da red pukne u
   drugi red i "iscuri" ispod headera). Ovde je samo kompaktan bedž — bez
   hover panela (na dodir ionako ne radi), tekst malo manji da stane pored
   hamburgera na uskom ekranu. */
@media (max-width:991.98px){
  /* PRAVI UZROK "korpa+hamburger padaju ispod logoa": #sp-header .row je
     Bootstrap flex red sa flex-wrap:wrap. #sp-menu (kolona sa meni/korpa/
     hamburger) je flex-stavka koja PO DEFAULTU ima min-width:auto — znači
     ne sme da se skupi ispod širine svog sadržaja, čak i kad je taj sadržaj
     (npr. sakriveni <nav> meni koji na mobilnom nema vidljive linkove)
     nevidljiv. Kad logo + ta neskupljiva širina #sp-menu ne stanu u red,
     Bootstrap prelama CELU #sp-menu kolonu u NOVI RED — otud korpa i
     hamburger padaju ispod logoa. Rešenje: zabraniti prelamanje reda,
     dozvoliti #sp-menu da se skupi (min-width:0), i ukloniti sakriveni
     <nav> iz toka na mobilnom da ne "krade" prostor iako se ne vidi. */
  #sp-header .row{
    flex-wrap:nowrap !important;
  }
  #sp-logo{
    flex-shrink:0 !important;
  }
  #sp-menu{
    min-width:0 !important;
    flex-shrink:1 !important;
    flex-grow:0 !important;
  }
  #sp-menu .sp-column{
    min-width:0 !important;
  }
  #sp-menu nav.sp-megamenu-wrapper{
    display:none !important;
  }

  .sp-module.top-cart{
    position:static !important;
    width:auto !important;
    height:auto !important;
    min-width:0 !important;
    max-width:none !important;
    flex:0 0 auto !important;
  }
  #vmCartModule.top-cart{
    position:relative !important;
    width:auto !important;
    display:inline-flex !important;
    text-align:left;
  }
  #vmCartModule > .total_products{
    font-size:11.5px;
    padding:6px 10px 6px 24px;
    max-width:150px;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  #vmCartModule > .total_products::before{
    left:8px;
    font-size:12px;
  }

  /* Nema hover-a na dodir, pa tap na bedž vodi DIREKTNO na stranicu korpe.
     ".show_cart > a.details" je pravi link ka /component/virtuemart/cart —
     samo ga razvučemo preko celog bedža kao nevidljiv sloj (bez ikakvog
     JS-a), tako da dodir bilo gde na bedžu otvori korpu. */
  #vmCartModule > .show_cart{
    display:block !important;
    position:absolute !important;
    inset:0 !important;
    z-index:5;
  }
  #vmCartModule > .show_cart .details{
    display:block !important;
    width:100%;
    height:100%;
    opacity:0;
  }
}

:root{
  --spm-primary:#C81E3A;
  --spm-primary-dark:#8F1226;
  --spm-gold:#E8A33D;
  --spm-cream:#FFF9F3;
  --spm-blush:#FBE4E6;
  --spm-mint:#E4F1EC;
  --spm-lavender:#EFE7F7;
  --spm-text:#2B2320;
  --spm-text-light:#786b64;
  --spm-radius:16px;
  --spm-shadow:0 10px 30px rgba(43,35,32,0.08);
}

body{
  font-family:'Nunito Sans', -apple-system, sans-serif;
  color:var(--spm-text);
  background:var(--spm-cream);
}
h1,h2,h3,h4,h5,
.sppb-addon-title,
.helix-ultimate-block-title{
  font-family:'Poppins', sans-serif !important;
  font-weight:700;
}

/* --- Linkovi i dugmad (Helix Ultimate + SPPB Button addon) --- */
a{ color:var(--spm-primary); }
a:hover{ color:var(--spm-primary-dark); }

/* Napomena: SPPB Button addon nosi svoju boju po instanci (podešava se u
   editoru za svako dugme posebno), zato mu OVDE ne nameravamo boju preko
   !important — samo oblik/razmak, da ne pregazimo npr. bela dugmad na
   crvenim/ljubičastim promo banerima. */
.sppb-btn,
.sppb-btn-primary{
  border-radius:50px !important;
  font-weight:700 !important;
  padding:10px 26px !important;
}

/* Ovo su nativna Helix Ultimate / Joomla dugmad (meni, forme) koja nemaju
   sopstvenu boju po instanci, pa je ovde bezbedno nametnuti brend crvenu. */
.helix-btn,
button.validate{
  background:var(--spm-primary) !important;
  border-color:var(--spm-primary) !important;
  border-radius:50px !important;
  font-weight:700 !important;
  padding:10px 26px !important;
}
.helix-btn:hover,
button.validate:hover{
  background:var(--spm-primary-dark) !important;
  border-color:var(--spm-primary-dark) !important;
}
/* Namerno UKLONJENO: ".sppb-btn-secondary" je bila generička klasa koju SPPB
   dodaje dugmadima, pa je preko !important gazila boje koje smo podesili
   po instanci (zato su dugmad na promo banerima ispala providna/samo ivica
   umesto punog belog polja). Ako ti zatreba stvarno "outline" dugme, koristi
   dole definisanu ".spm-btn-outline" klasu i dodaj je ručno u polje
   "Custom Class" tog konkretnog dugmeta u SPPB editoru. */
.spm-btn-outline{
  background:transparent !important;
  border:2px solid #fff !important;
  color:#fff !important;
  border-radius:50px !important;
}

/* --- Top bar / Header (prilagoditi selektore prema Helix stilu koji koristite) --- */
.helix-ultimate-topbar{
  background:var(--spm-primary-dark) !important;
  color:#f4dede !important;
  font-size:12.5px;
}
.helix-ultimate-header{
  box-shadow:0 2px 10px rgba(0,0,0,0.05);
}
.helix-ultimate-menu > li > a{
  font-weight:700 !important;
}

/* --- Glavni meni traka (ako koristite crvenu traku ispod headera) --- */
.spm-nav-bar{
  background:var(--spm-primary);
}
.spm-nav-bar a{
  color:#fff !important;
  font-weight:700;
}

/* ==========================================================================
   Utility klase — dodati u polje "Custom Class" na SPPB addonu (Row/Column/
   Icon Box/Banner) da bi elementi dobili izgled sa mockupa, bez obzira na
   VirtueMart/Helix markup.
   ========================================================================== */

/* USP traka (Brza isporuka / 150+ proizvoda / Cena i kvalitet) — klasa
   "spm-usp-icon" je već upisana u JSON fajlu na ta 3 Feature Box addona.
   Selektor cilja direktno <i class="fa fa-..."> ikonicu (ne pogađa naziv
   omotača koji SPPB koristi), pa treba da radi bez obzira na verziju. */
.spm-usp-icon i[class*="fa-"]{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border-radius:12px;
  background:var(--spm-blush);
  color:var(--spm-primary) !important;
  font-size:20px !important;
}

/* Hero sekcija — dodati na Row koji sadrži naslov + dugme */
.spm-hero{
  background:linear-gradient(120deg, var(--spm-blush) 0%, var(--spm-lavender) 100%);
  padding:70px 0;
}
.spm-hero .sppb-addon-title{ font-size:44px; line-height:1.15; }

/* Kartice kategorija — dodati na Column addon */
.spm-cat-card{
  border-radius:var(--spm-radius);
  padding:26px;
  min-height:160px;
  box-shadow:var(--spm-shadow);
  transition:transform .2s ease;
}
.spm-cat-card:hover{ transform:translateY(-4px); }
.spm-cat-card.spm-c1{ background:linear-gradient(135deg,#FBE4E6,#f6c7cc); }
.spm-cat-card.spm-c2{ background:linear-gradient(135deg,#E4F1EC,#c3e3d6); }
.spm-cat-card.spm-c3{ background:linear-gradient(135deg,#EFE7F7,#d9c8ef); }
.spm-cat-card.spm-c4{ background:linear-gradient(135deg,#FFF3D6,#f3d98c); }
.spm-cat-card.spm-c5{ background:linear-gradient(135deg,#E4ECF7,#c3d4ee); }
.spm-cat-card.spm-c6{ background:linear-gradient(135deg,#FCE9DA,#f3c79e); }

/* Icon Box (USP traka) — dodati na Icon Box addon */
.spm-usp .sppb-addon-icon{
  background:var(--spm-blush) !important;
  color:var(--spm-primary) !important;
  border-radius:12px !important;
}

/* Promo baneri (2 kolone) */
.spm-promo-a{ background:linear-gradient(135deg,#C81E3A,#8F1226); color:#fff; border-radius:20px; padding:40px; }
.spm-promo-b{ background:linear-gradient(135deg,#7A4FA3,#4E2F73); color:#fff; border-radius:20px; padding:40px; }

/* B2B / Veleprodaja CTA traka */
.spm-b2b{
  background:var(--spm-primary-dark);
  color:#fff;
  padding:50px 0;
  text-align:center;
}

/* ==========================================================================
   VirtueMart modul "Popularni/Najnoviji proizvodi".

   VAŽNO: modul ima DVA moguća layout fajla — "single.php" (bez ikakve grid
   logike, uvek 1 po redu — ono što je do sada bilo aktivno) i "default.php"
   (prava grid logika: svaki proizvod dobija klase "product-container widthXX
   floatleft"). Pravi fix je promeniti "Изглед/Layout" na modulu i očistiti
   Joomla keš (System > Clear Cache) — videti objašnjenje u razgovoru.

   Ovaj CSS blok radi za OBA slučaja: neutrališe stari float/width sistem i
   forsira flex-grid, tako da nije bitno koji je layout tačno aktivan niti
   koliko je "products_per_row" podešeno u modulu.
   ========================================================================== */

/* single.php: proizvodi su goli div-ovi bez klase, direktno u
   .product-container (koji je ovde OMOTAČ, ne kartica).
   VAŽNO #1: ".product-container" NIJE jedinstvena klasa samo za modul —
   VirtueMart je koristi i kao spoljašnji omotač cele stranice pojedinačnog
   proizvoda (productdetails-view). Zato OBAVEZNO tražimo i "vmproduct" uz nju.
   VAŽNO #2: taj deo klase nije uvek doslovno "vmproduct" — VirtueMart lepi
   modul-specifičan sufiks direktno na kraj (npr. "vmproductbig-title",
   "vmproductw1400"), pa tražimo PODNISKU [class*="vmproduct"] umesto tačnog
   imena klase. Ni jedna varijanta se ne poklapa sa "productdetails-view" na
   pravoj strani proizvoda, tako da je bezbedno u oba slučaja. */
.product-container[class*="vmproduct"]{
  display:flex !important;
  flex-wrap:wrap;
  gap:22px;
  justify-content:flex-start;
}
.product-container[class*="vmproduct"] > div{
  flex:0 1 260px;
  max-width:260px;
}

/* default.php: svaki proizvod JESTE ".product-container" (sa dodatnim
   widthXX/floatleft klasama) unutar omotača "vmproduct<sufiks> productdetails".
   VAŽNO: taj omotač NIJE uvek doslovno ".vmproduct" — VirtueMart lepi
   moduleclass_sfx direktno na kraj ("vmproductw1400", "vmproductbig-title"...)
   pa tačna klasa zavisi od podešavanja svakog modula. Zato koristimo
   [class*="vmproduct"] (sadrži tu podnisku) umesto tačnog imena klase —
   pogađa sve varijante sufiksa. */
[class*="vmproduct"].productdetails{
  display:flex !important;
  flex-wrap:wrap;
  gap:22px;
  justify-content: center;
}
[class*="vmproduct"].productdetails > div[style*="clear"]{
  display:none;
}
[class*="vmproduct"].productdetails > .product-container{
  float:none !important;
  width:auto !important;
  flex:0 1 260px;
  max-width:260px;
}

/* (Stara neispravno skopirana verzija ovog pravila je uklonjena odavde —
   videti gore ".product-container.vmproduct" koje je bezbedno skopirano.) */

.product-container .spacer{
  background:#fff;
  border-radius:var(--spm-radius);
  box-shadow:var(--spm-shadow);
  overflow:hidden;
  padding-bottom:16px;
  height:100%;
  transition:transform .2s ease;
}
.product-container .spacer:hover{
  transform:translateY(-3px);
}

/* Slika ima fiksne width/height atribute (440x293) iz VirtueMarta — CSS ih
   pregazi da bi popunila karticu umesto da ostane sitna u praznom prostoru. */
.product-container .featuredProductImage{
  width:100% !important;
  height:200px !important;
  object-fit:cover;
}

.product-container .productdetails{
  padding:0 16px;
}

.product-container .product-price{
  color:var(--spm-primary);
  font-weight:800;
  margin:10px 0;
}

/* Bootstrap "w-100" na dugmetu ga razvlači preko cele kartice — sad kad je
   kartica uska (260px) to više nije problem, ali ga ipak zaokružujemo i
   bojimo u brend crvenu (podrazumevana Bootstrap plava/siva inače probija). */
.product-container .addtocart-button.w-100{
  border-radius:50px !important;
  background:var(--spm-primary) !important;
  border-color:var(--spm-primary) !important;
}
.product-container .addtocart-button.w-100:hover{
  background:var(--spm-primary-dark) !important;
  border-color:var(--spm-primary-dark) !important;
}
.PricesalesPrice,
.product-price{
  color:var(--spm-primary) !important;
  font-weight:800 !important;
}
.addtocart-bar .addtocart-button,
.addtocart-area button{
  background:var(--spm-primary) !important;
  border-radius:50px !important;
  border:none !important;
}

/* --- Footer --- */
.helix-ultimate-footer,
footer.spm-footer{
  background:#241715;
  color:#d8c9c5;
}
.helix-ultimate-footer h3,
.helix-ultimate-footer h4{
  color:#fff !important;
}

/* --- Sakrij "Pakovanje/Veličina" (VirtueMart custom fields) SAMO u ovom
   modulu na početnoj. VAŽNO: [class*="vmproduct"] uz .product-container
   (samo modul ima taj deo klase, u bilo kojoj sufiks-varijanti) — bez toga
   bi ovo sakrilo i pravi padajući meni na strani pojedinačnog proizvoda. --- */
.product-container[class*="vmproduct"] .vm-customfields-wrap{
  display:none !important;
}

/* Isto, za "default.php" stil modula (npr. "Nedavno pogledani") gde je
   [class*="vmproduct"] na SPOLJAŠNJEM omotaču, a svaka kartica je zaseban
   ".product-container" pored nje (bez te klase na sebi) — zato ovde mora
   razmak (potomak), ne spojen selektor kao gore. */
[class*="vmproduct"].productdetails .vm-customfields-wrap{
  display:none !important;
}

/* --- Isto, ali za stranicu KATEGORIJE (/proizvodi-spm/...) — drugačiji
   VirtueMart prikaz (component browse view) od modula, prepoznatljiv po
   atributu data-vm="product-container" koji nemaju ni modul ni pojedinačna
   strana proizvoda. Sakriva i "Boja" (cf4all dugmad u bojama), ne samo
   padajuće menije. --- */
[data-vm="product-container"] .vm-customfields-wrap{
  display:none !important;
}

/* --- Količina (+/-) na product karticama — diskretno, ne puna crvena kao
   glavno dugme, da "Dodaj u korpu" ostane vizuelno najjača akcija. --- */
/* Red koji sadrži količinu i dugme (Bootstrap "row") — centriramo ga da
   kartica ne izgleda krivo kad se količina prelomi u sopstveni red iznad
   dugmeta (usko dugme na uskoj kartici). */
.addtocart-bar .row{
  justify-content:center;
}
.addtocart-bar .col-auto{
  width:100%;
  display:flex;
  justify-content:center;
}

.quantity-box{
  display:flex !important;
  align-items:center;
  gap:4px;
  background:var(--spm-cream);
  border-radius:30px;
  padding:3px;
  width:fit-content;
  margin:0 auto 10px auto;
}
.quantity-controls.quantity-minus,
.quantity-controls.quantity-plus{
  background:#fff !important;
  color:var(--spm-primary) !important;
  border:1px solid #f0dede !important;
  border-radius:50% !important;
  width:30px !important;
  height:30px !important;
  display:flex !important;
  align-items:center;
  justify-content:center;
  padding:0 !important;
  line-height:1;
}
.quantity-controls.quantity-minus:hover,
.quantity-controls.quantity-plus:hover{
  background:var(--spm-blush) !important;
  border-color:var(--spm-blush) !important;
}
.quantity-input{
  border:none !important;
  background:transparent !important;
  width:34px !important;
  font-weight:700;
  color:var(--spm-text);
}

/* --- Responsive sitni popravci --- */
@media(max-width:767px){
  .spm-hero .sppb-addon-title{ font-size:30px; }
  .spm-cat-card{ min-height:120px; padding:18px; }
}