/*
 * DEKOHOP MASTER THEME - TÜM SAYFALAR ÜRÜN KARTI / MASAÜSTÜ
 *
 * ETKİ ALANI:
 * - data-dekohop-product-card niteliği taşıyan ürün kartları
 * - Ürün kartının görseli, adı, açıklaması, fiyatı, puanı ve işlem düğmeleri
 * - Merkezi DEKOHOP ürün etiketlerinin ürün kartındaki yerleşimi
 *
 * ŞİMDİLİK ETKİLEMEZ:
 * - Ürün detay sayfası ana içeriği
 * - Sepet ve ödeme satırları
 * - Mobil görünüm (bütün masaüstü sayfaları bittikten sonra ayrı kurallar eklenecek)
 *
 * KURAL: Aşağıdaki Türkçe değişkenler elle değiştirilebilir. Dinamik etiketlerin
 * kendilerine ait renk, punto, simge, konum, radius ve border değerleri yönetici
 * panelindeki Tasarım > Ürün Etiketleri ekranından gelir ve genel varsayılanları ezer.
 */

/* DEKOHOP-EDITABLE-SETTINGS-START */
:root {
  /* 01 - KART GÖSTER / GİZLE */
  --dekohop-product-card-image-display: block; /* block: görsel açık, none: kapalı */
  --dekohop-product-card-description-display: none; /* block: açıklama açık, none: kapalı */
  --dekohop-product-card-tax-display: none; /* inline: vergi bilgisi açık, none: kapalı */
  --dekohop-product-card-rating-display: inline-flex; /* inline-flex: puan açık, none: kapalı */
  --dekohop-product-card-actions-display: flex; /* flex: işlem düğmeleri açık, none: kapalı */
  --dekohop-product-card-favorite-display: inline-flex; /* Favori düğmesi */
  --dekohop-product-card-compare-display: inline-flex; /* Karşılaştır düğmesi */

  /* 02 - KART KUTUSU */
  --dekohop-product-card-background: #eef1ef; /* Kartın önceki değerden biraz daha koyu fakat hâlâ soft gri arka planı. */
  --dekohop-product-card-border-width: 1px;
  --dekohop-product-card-border-color: rgba(23, 25, 31, 0.38); /* Ürün kartını çevreleyen 1 px orta saydamlıkta siyaha yakın kenar. */
  --dekohop-product-card-hover-border-color: #b51f2e; /* Hover sırasında referanstaki bordo vurgu. */
  --dekohop-product-card-radius: 10px;
  --dekohop-product-card-shadow: 0 8px 18px rgba(17, 19, 24, 0.28); /* Karta yakın biten, daha yoğun normal gölge. */
  --dekohop-product-card-hover-shadow: 0 12px 24px rgba(17, 19, 24, 0.36); /* Hover sırasında karta yakın kalan daha yoğun gölge. */
  --dekohop-product-card-hover-lift: -3px;
  --dekohop-product-card-transition-time: 180ms;

  /* 03 - GÖRSEL */
  --dekohop-product-card-image-background: transparent; /* Görselin arkasında ayrı beyaz katman oluşturmaz; kartın soft gri zemini kesintisiz görünür. */
  --dekohop-product-card-image-ratio: 1 / 1;
  --dekohop-product-card-image-fit: contain; /* contain resmi kesmez, cover alanı doldurur */
  --dekohop-product-card-image-padding: 8px; /* Kart kenarı ile ürün görseli arasındaki boşluk; önceki 5 px değerin %60 fazlası. */
  --dekohop-product-card-image-radius: var(--dekohop-product-card-radius); /* Görsel köşesi kartla aynı oranı kullanır. */
  --dekohop-product-card-image-hover-scale: 1.035;
  --dekohop-product-card-image-hover-opacity: 1; /* 1: hover sırasında beyazımsı şeffaf perde oluşmaz. */
  --dekohop-product-card-badge-overflow: visible; /* visible: etiket karttan taşabilir; hidden: kart sınırında kesilir. */
  --dekohop-product-card-image-link-overflow: hidden; /* Ürün fotoğrafının hover büyümesini kendi görsel alanında tutar. */

  /* 04 - İÇERİK BOŞLUKLARI */
  --dekohop-product-card-content-padding: 0.35rem 1rem 0; /* Ürün adı, görsel altına yaklaşır; son değer 0 olduğu için fiyat altında fazladan boşluk oluşmaz. */
  --dekohop-product-card-section-gap: 10px; /* Dört ana bölümün ortak aralığı: ürün adı → fiyat → yorum özeti → favori/karşılaştırma. */
  --dekohop-product-card-content-gap: var(--dekohop-product-card-section-gap); /* Ürün adı–fiyat ile fiyat–yorum özeti arasını ortak 10 px ayara bağlar. */
  --dekohop-product-card-media-info-gap: 0.35rem; /* Görsel ile ürün adı arasındaki sıkı ve kontrollü boşluk. */
  --dekohop-product-card-title-row-min-height: 3rem; /* Ürün adı için iki satırlık sabit alan. */
  --dekohop-product-card-price-row-min-height: 2.4rem; /* Fiyat satırının dikey hizası. */
  --dekohop-product-card-content-divider-width: 0px; /* 0px: görsel ile bilgi arasındaki çizgi kapalı. */
  --dekohop-product-card-content-divider-color: transparent;

  /* 05 - ÜRÜN ADI */
  --dekohop-product-card-title-color: #17191f;
  --dekohop-product-card-title-hover-color: #24633e;
  --dekohop-product-card-title-font-size: 1.35rem; /* Ürün adı puntosu. */
  --dekohop-product-card-title-font-weight: 500;
  --dekohop-product-card-title-line-height: 1.42;
  --dekohop-product-card-title-lines: 2;
  --dekohop-product-card-title-text-align: center; /* Ürün adının her satırını kart içinde yatay olarak ortalar. */
  --dekohop-product-card-title-text-wrap: balance; /* balance: ürün adını kelime boşluklarından, iki satırın uzunluğu birbirine en yakın olacak şekilde böler. normal: tarayıcının standart satır bölmesini kullanır. */

  /* 06 - AÇIKLAMA */
  --dekohop-product-card-description-color: #66736d;
  --dekohop-product-card-description-font-size: 0.86rem;
  --dekohop-product-card-description-lines: 2;

  /* 07 - FİYAT */
  --dekohop-product-card-price-color: #17191f;
  --dekohop-product-card-special-price-color: #111111; /* İndirimli güncel fiyatın siyah rengi. */
  --dekohop-product-card-old-price-color: #d71920; /* Üstü çizili eski/normal fiyatın kırmızı rengi. */
  --dekohop-product-card-price-font-size: 1.97rem; /* İndirimli/güncel fiyat: önceki 1,77 rem değerinden 2 px daha büyük. */
  --dekohop-product-card-price-font-weight: 650;
  --dekohop-product-card-old-price-font-size: 1.38rem; /* Üstü çizili eski fiyat: önceki 1,08 rem değerinden toplam 3 px daha büyük. */
  --dekohop-product-card-old-price-font-weight: 500;
  --dekohop-product-card-old-price-decoration: line-through;
  --dekohop-product-card-price-inline-gap: 1.65rem; /* Normal ve indirimli fiyat arasındaki yatay boşluk; önceki değerin üç katı. */

  /* 08 - İŞLEM DÜĞMELERİ */
  --dekohop-product-card-action-gap: 0.45rem;
  --dekohop-product-card-action-height: 2.75rem;
  --dekohop-product-card-icon-button-size: 2.75rem; /* Favori ve karşılaştır ikonlarının eşit en-boy ölçüsü. */
  --dekohop-product-card-action-radius: 999px;
  --dekohop-product-card-cart-background: #e8e5f5; /* Soft leylak-gri Sepete Ekle zemini. */
  --dekohop-product-card-cart-color: #352f5d;
  --dekohop-product-card-cart-hover-background: #d9d4ef;
  --dekohop-product-card-cart-border-width: 1px;
  --dekohop-product-card-cart-border-color: #17191f;
  --dekohop-product-card-cart-border-style: solid;
  --dekohop-product-card-cart-hover-width: auto; /* Sepete Ekle arka planı yalnız yazı ve simge genişliğini sarar. */
  --dekohop-product-card-cart-title-top: 0.35rem; /* Hover düğmesinin ürün adı alanındaki üst konumu. */
  --dekohop-product-card-cart-title-vertical-offset: 3px; /* Hover düğmesinin dikey konumu; 11 px değerinden 8 px yukarı alınmış son ayar. */
  --dekohop-product-card-cart-title-side-space: 1rem; /* Hover düğmesi için kartın sağ ve sol güvenli boşluğu. */
  --dekohop-product-card-stock-background: #f6e2e4; /* Stokta Yok yazısının soft kırmızı zemini. */
  --dekohop-product-card-stock-color: #9f2631;
  --dekohop-product-card-stock-border-color: #d89aa1;
  --dekohop-product-card-stock-font-weight: 700;
  --dekohop-product-card-icon-background: #f5f8f6;
  --dekohop-product-card-icon-color: #33423b;
  --dekohop-product-card-icon-hover-background: #e7f3ed;

  /* 08A - FAVORİ KALBİ: NMAX REFERANS GÖRÜNÜMÜ
   * Kalp çizimi tema içindeki assets/icons/favorite-heart-nmax.svg dosyasından gelir.
   * Favori sunucuda başarıyla kaydedilince is-favorite sınıfı uygulanır.
   * Renk, ölçü ve animasyonların tamamı yalnız bu bölümden değiştirilebilir.
   */
  --dekohop-product-card-favorite-heart-size: 21.75px; /* 29 px NMAX kalbin çember içinde tam yüzde 25 küçültülmüş ölçüsü. */
  --dekohop-product-card-favorite-heart-top: 1px; /* Kalbin optik merkezden kullanici tercihiyle 1 px asagi alinmis dikey konumu. */
  --dekohop-product-card-favorite-normal-color: rgba(0, 0, 0, 0.60); /* Favoriye eklenmemiş kalp rengi. */
  --dekohop-product-card-favorite-hover-color: #111111; /* Mouse kalbin üzerindeyken görünen renk. */
  --dekohop-product-card-favorite-active-color: #e60023; /* Favoriye eklenmiş NMAX kırmızısı. */
  --dekohop-product-card-favorite-active-hover-color: #e60023;
  --dekohop-product-card-favorite-normal-background: rgba(255, 255, 255, 0.97);
  --dekohop-product-card-favorite-normal-border: rgba(0, 0, 0, 0.10);
  --dekohop-product-card-favorite-normal-shadow: 0 5px 14px rgba(0, 0, 0, 0.12);
  --dekohop-product-card-favorite-active-background: rgba(255, 255, 255, 0.24);
  --dekohop-product-card-favorite-active-border-color: rgba(230, 0, 35, 0.50);
  --dekohop-product-card-favorite-beat-duration: 2s; /* Aktif kalbin çift atış döngüsü. */
  --dekohop-product-card-favorite-beat-scale: 1.22; /* Kalp atışında ulaşılacak büyüklük. */
  --dekohop-product-card-favorite-shine-duration: 2.2s; /* Kalbin içinden geçen parlama süresi. */
  --dekohop-product-card-favorite-shine-opacity: 0.95; /* Parlama şeridinin en yüksek görünürlüğü. */

  /* 09 - ÇOKLU ÜRÜN GÖRSELİ */
  --dekohop-product-card-gallery-controls-display: none; /* Mouse yatay konumuyla geçiş kullanıldığı için oklar kapalı. */
  --dekohop-product-card-gallery-control-size: 2.25rem;
  --dekohop-product-card-gallery-control-edge: 0.55rem;
  --dekohop-product-card-gallery-control-background: rgba(255, 255, 255, 0.92);
  --dekohop-product-card-gallery-control-color: #25312b;
  --dekohop-product-card-gallery-control-hover-background: #e5f2ec;
  --dekohop-product-card-gallery-control-shadow: 0 4px 12px rgba(19, 27, 23, 0.16);
  --dekohop-product-card-gallery-counter-background: rgba(25, 31, 28, 0.72);
  --dekohop-product-card-gallery-counter-color: #ffffff;
  --dekohop-product-card-gallery-transition-time: 180ms;
  --dekohop-product-card-gallery-dots-display: flex; /* flex: görsel noktaları açık, none: kapalı */
  --dekohop-product-card-gallery-dot-size: 0.52rem;
  --dekohop-product-card-gallery-dot-gap: 0.38rem;
  --dekohop-product-card-gallery-dot-color: #c9cfcc;
  --dekohop-product-card-gallery-dot-active-color: #6f7b75;
  --dekohop-product-card-gallery-dot-bottom: 5px; /* Noktaları görsel çerçevesinin altından yukarı taşır. */
  --dekohop-product-card-gallery-dot-opacity: 0.58; /* Normal ve hover durumunda ortak yarı saydamlık. */
  --dekohop-product-card-gallery-dot-active-opacity: 0.82;
  --dekohop-product-card-gallery-dot-margin: 0;

  /* 10 - PUAN VE YORUM ÖZETİ */
  --dekohop-product-card-rating-gap: 0.38rem; /* Yıldız grubu, parantezli yorum adedi ve kamera arasındaki temel boşluk. */
  --dekohop-product-card-rating-font-size: 1.26rem; /* Yıldız yanındaki parantezli gerçek yorum adedinin boyutu. */
  --dekohop-product-card-rating-star-size: 2.18rem; /* Yorum özeti artık kendi satırında olduğu için yıldızların biraz büyütülmüş son ölçüsü. */
  --dekohop-product-card-rating-star-image: url("../assets/icons/rating-star-gold-128.webp"); /* Kullanıcının verdiği tek altın yıldız görseli; tema paketine yerel olarak dahildir. */
  --dekohop-product-card-rating-star-color: #f4b323;
  --dekohop-product-card-rating-star-empty-color: #c7cfcb;
  --dekohop-product-card-rating-star-empty-opacity: 0.28; /* Puanla dolmayan yıldız bölümünün görünürlüğü: 0 tamamen görünmez, 1 tamamen görünür. */
  --dekohop-product-card-rating-star-empty-filter: grayscale(1) saturate(0.2) brightness(1.08); /* Boş yıldızı aynı görselin soluk gri hali yapar. */
  --dekohop-product-card-rating-star-fill-filter: none; /* Dolu altın yıldız görseline uygulanacak isteğe bağlı filtre. */
  --dekohop-product-card-rating-star-shadow: drop-shadow(0 1px 0 #a76808) drop-shadow(0 2px 3px rgba(87, 55, 6, 0.24)); /* Yıldıza hafif 3B görünüm verir. */
  --dekohop-product-card-rating-text-color: #405047;
  --dekohop-product-card-rating-score-color: #1e2923;
  --dekohop-product-card-review-media-display: inline-flex; /* inline-flex: fotoğraflı yorum simgesi açık, none: kapalı. Yalnız gerçek onaylı yorum görseli varsa oluşur. */
  --dekohop-product-card-review-media-size: 1.65rem; /* Fotoğraflı yorum kamerasının yıldız satırındaki görünür boyutu. */
  --dekohop-product-card-review-media-background: transparent; /* Kamera çevresinde beyaz kutu veya çember oluşturmaz. */
  --dekohop-product-card-review-media-border-color: transparent;
  --dekohop-product-card-review-media-border-width: 0;
  --dekohop-product-card-review-media-radius: 0; /* Görsel kendi kamera biçiminde kalır; çembere kırpılmaz. */
  --dekohop-product-card-review-media-shadow: none;
  --dekohop-product-card-review-media-opacity: 1;
  --dekohop-product-card-review-media-image: url("../assets/icons/review-photo-camera-user.png");
  --dekohop-product-card-review-media-image-size: contain; /* Kamera kesilmeden simge alanına sığar. */
  --dekohop-product-card-review-media-blend-mode: normal; /* Şeffaf PNG kendi gerçek renkleriyle gösterilir; beyaz zemin veya karıştırma uygulanmaz. */
  --dekohop-product-card-review-media-hover-scale: 1.05;
  --dekohop-product-card-review-media-left-space: 0.60rem; /* Parantezli yorum adedi ile kamera arasındaki ek ayırma boşluğu. */
  --dekohop-product-card-variant-display: inline-flex; /* inline-flex: renk/adet göstergesi açık, none: kapalı. Yalnız birden fazla gerçek renk seçeneğinde oluşur. */
  --dekohop-product-card-variant-right: 0.65rem;
  --dekohop-product-card-variant-bottom: 0.65rem;
  --dekohop-product-card-variant-height: 2rem;
  --dekohop-product-card-variant-horizontal-padding: 0.62rem;
  --dekohop-product-card-variant-gap: 0.38rem;
  --dekohop-product-card-variant-background: rgba(255, 255, 255, 0.94);
  --dekohop-product-card-variant-color: #26332d;
  --dekohop-product-card-variant-border-color: rgba(38, 51, 45, 0.14);
  --dekohop-product-card-variant-border-width: 1px;
  --dekohop-product-card-variant-radius: 999px;
  --dekohop-product-card-variant-shadow: 0 3px 10px rgba(23, 34, 29, 0.16);
  --dekohop-product-card-variant-font-size: 1.05rem;
  --dekohop-product-card-variant-font-weight: 700;
  --dekohop-product-card-variant-swatch-size: 1rem;
  --dekohop-product-card-variant-swatch-overlap: -0.34rem;
  --dekohop-product-card-variant-swatch-one: #7dd3fc;
  --dekohop-product-card-variant-swatch-two: #c084fc;
  --dekohop-product-card-variant-layer: 8; /* Galeri noktalarının üstünde, ürün etiketlerinin ve filtre açılırlarının altında. */
  --dekohop-product-card-primary-stage-height: var(--dekohop-product-card-title-row-min-height); /* Hover düğmesini iki satırlık ürün adı alanının tam yüksekliğinde ortalar; normal kartta mutlak konumlu olduğu için yer ayırmaz. */
  --dekohop-product-card-primary-stage-gap: 0px; /* Hover düğmesi mutlak konumlu olduğu için normal akışta ek boşluk yoktur. */
  --dekohop-product-card-rating-exit-time: 760ms;
  --dekohop-product-card-rating-star-rise-time: 520ms;
  --dekohop-product-card-rating-star-delay: 72ms;
  --dekohop-product-card-rating-star-zoom: 1.7;
  --dekohop-product-card-rating-star-fall-distance: 1.55rem;
  --dekohop-product-card-rating-side-padding: 0.35rem;
  --dekohop-product-card-actions-hover-time: 220ms;
  --dekohop-product-card-bottom-row-gap: var(--dekohop-product-card-section-gap); /* Yorum özeti ile favori/karşılaştırma arasını aynı ortak 10 px ayara bağlar. */
  --dekohop-product-card-bottom-row-padding: 0; /* İki alt satırı taşıyan dış alanın ortak boşluğu. */
  --dekohop-product-card-review-row-min-height: 2.35rem; /* Yıldız + yorum adedi + varsa kamera simgesinin tek başına kullandığı satır yüksekliği. */
  --dekohop-product-card-review-row-padding: 0 1rem; /* Yorum özeti satırının sağ-sol güvenli boşluğu. */
  --dekohop-product-card-actions-row-min-height: var(--dekohop-product-card-icon-button-size); /* Favori ve karşılaştırma satırının en düşük yüksekliği. */
  --dekohop-product-card-actions-row-padding: 0 1rem 10px; /* Favori/karşılaştırma satırından kartın alt kenarına kadar tam 10 px boşluk. */

  /* 11 - ETİKET GRUBU VARSAYILANLARI
   * Her etiket için panelden girilen değerler bunları ezer.
   */
  --dekohop-product-badge-group-gap: 0.35rem;
  --dekohop-product-badge-edge-space: 0.72rem;
  --dekohop-product-badge-content-edge-space: 0.55rem; /* Ürün bilgisi alanındaki dört köşe uzaklığı. */
  --dekohop-product-badge-layer: 1900; /* Etiketi komşu ürün kartı ve kart içi galeri öğelerinin üstünde; kategori filtre katmanlarının (2000+) altında tutar. */
  --dekohop-product-badge-background: #e4f3eb;
  --dekohop-product-badge-color: #244137;
  --dekohop-product-badge-font-size: 12px;
  --dekohop-product-badge-font-weight: 600;
  --dekohop-product-badge-icon-size: 14px;
  --dekohop-product-badge-border-width: 0px;
  --dekohop-product-badge-border-color: #c9d8d1;
  --dekohop-product-badge-border-style: solid;
  --dekohop-product-badge-radius: 10px;
  --dekohop-product-badge-padding-y: 4px;
  --dekohop-product-badge-padding-x: 8px;
  --dekohop-product-badge-offset-x: 0px; /* Paneldeki etiket bazlı X kaydırma boşsa: + sağa, - sola. */
  --dekohop-product-badge-offset-y: 0px; /* Paneldeki etiket bazlı Y kaydırma boşsa: + aşağı, - yukarı. */
  --dekohop-product-badge-shadow: 0 4px 12px rgba(17, 19, 24, 0.10);

  /* 12 - DİNAMİK İNDİRİM ROZETİ
   * Geçerli normal/indirimli fiyat farkından hesaplanan yüzdeyi gösterir.
   * Genel büyüklük, İndirimli Ürünler etiketinin paneldeki "Etiket resmi büyüklüğü" ayarından gelir.
   */
  --dekohop-discount-badge-red: #ef1f2f; /* Panel değeri yoksa kontur rengi. */
  --dekohop-discount-badge-red-dark: #a80e1b; /* Panel değeri yoksa kabartma/gölge rengi. */
  --dekohop-discount-badge-text: #ffffff; /* Panel değeri yoksa iç yazı rengi. */
  --dekohop-discount-badge-width-ratio: 1.42;
  --dekohop-discount-badge-depth: 0.075;
}
/* DEKOHOP-EDITABLE-SETTINGS-END */

/* DEKOHOP-COMMON-DESKTOP-RULES-START */
[data-dekohop-product-card] .product-thumb {
  display: flex;
  height: 100%;
  margin-top: 0;
  margin-bottom: 0;
  overflow: var(--dekohop-product-card-badge-overflow);
  flex-direction: column;
  border: var(--dekohop-product-card-border-width) solid var(--dekohop-product-card-border-color);
  border-radius: var(--dekohop-product-card-radius);
  background: var(--dekohop-product-card-background);
  box-shadow: var(--dekohop-product-card-shadow);
  transition: margin-top var(--dekohop-product-card-transition-time) ease, margin-bottom var(--dekohop-product-card-transition-time) ease, border-color var(--dekohop-product-card-transition-time) ease, box-shadow var(--dekohop-product-card-transition-time) ease;
}

[data-dekohop-product-card] .product-thumb:hover {
  margin-top: var(--dekohop-product-card-hover-lift);
  margin-bottom: calc(0px - var(--dekohop-product-card-hover-lift));
  border-color: var(--dekohop-product-card-hover-border-color);
  box-shadow: var(--dekohop-product-card-hover-shadow);
  transform: none; /* transform ve position kartı ayrı boya katmanına alıp komşu etiketi örttüğü için hareket dengeli margin ile yapılır. */
}

/*
 * KATEGORİ SAYFASI KATMAN KORUMASI:
 * 30-kategori-sayfasi.css içindeki daha güçlü hover seçicisinin transform
 * oluşturmasını engeller. Kartın gölgesi, çizgisi ve yukarı hareketi korunur;
 * komşu kartın dışarı taşan etiketi ise hover kartının altında kalmaz.
 */
#product-category [data-dekohop-product-card] .product-thumb:hover {
  transform: none;
}

/*
 * KATEGORI SAYFASI UYUM KATMANI
 *
 * 30-kategori-sayfasi.css kart kutusuna sayfaya ozel, daha guclu bir seciciyle
 * cizgi ve golge atar. Bu kurallar ürün karti ayarlarinin kategori sayfasinda da
 * tek kaynak olmasini saglar; filtre, yerlesim ve kategori verisine dokunmaz.
 */
#product-category .dekohop-category-product-grid [data-dekohop-product-card] .product-thumb {
  border-color: var(--dekohop-product-card-border-color);
  border-radius: var(--dekohop-product-card-radius);
  box-shadow: var(--dekohop-product-card-shadow);
}

#product-category .dekohop-category-product-grid [data-dekohop-product-card] .product-thumb:hover {
  border-color: var(--dekohop-product-card-hover-border-color);
  box-shadow: var(--dekohop-product-card-hover-shadow);
  transform: none;
}

[data-dekohop-product-card] .product-thumb > .image {
  position: relative;
  display: var(--dekohop-product-card-image-display);
  box-sizing: border-box;
  overflow: var(--dekohop-product-card-badge-overflow);
  aspect-ratio: var(--dekohop-product-card-image-ratio);
  padding: var(--dekohop-product-card-image-padding);
  border-radius: var(--dekohop-product-card-image-radius);
  background: var(--dekohop-product-card-image-background);
}

[data-dekohop-product-card] .dekohop-product-card-gallery,
[data-dekohop-product-card] .dekohop-product-card-gallery__link,
[data-dekohop-product-card] .dekohop-product-card-gallery__image {
  display: block;
  width: 100%;
  height: 100%;
}

[data-dekohop-product-card] .dekohop-product-card-gallery {
  position: relative;
  overflow: var(--dekohop-product-card-image-link-overflow);
  border-radius: var(--dekohop-product-card-image-radius);
  background: var(--dekohop-product-card-image-background);
}

[data-dekohop-product-card] .dekohop-product-card-gallery__link {
  position: relative;
  overflow: hidden;
  border-radius: inherit;
}

[data-dekohop-product-card] .product-thumb .image .dekohop-product-card-gallery__link:hover,
[data-dekohop-product-card] .product-thumb .image .dekohop-product-card-gallery__link:focus {
  opacity: var(--dekohop-product-card-image-hover-opacity);
}

[data-dekohop-product-card] .dekohop-product-card-gallery__image {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: 0;
  object-fit: var(--dekohop-product-card-image-fit);
  transition: opacity var(--dekohop-product-card-gallery-transition-time) ease, transform var(--dekohop-product-card-transition-time) ease;
}
[data-dekohop-product-card] .dekohop-product-card-gallery__image.is-active { opacity: 1; }

[data-dekohop-product-card] .dekohop-product-card-gallery__button {
  position: absolute;
  z-index: 4;
  top: 50%;
  display: var(--dekohop-product-card-gallery-controls-display);
  width: var(--dekohop-product-card-gallery-control-size);
  height: var(--dekohop-product-card-gallery-control-size);
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--dekohop-product-card-gallery-control-background);
  box-shadow: var(--dekohop-product-card-gallery-control-shadow);
  color: var(--dekohop-product-card-gallery-control-color);
  opacity: 0;
  transform: translateY(-50%);
  transition: opacity var(--dekohop-product-card-gallery-transition-time) ease, background var(--dekohop-product-card-gallery-transition-time) ease;
}
[data-dekohop-product-card] .dekohop-product-card-gallery__button--previous { left: var(--dekohop-product-card-gallery-control-edge); }
[data-dekohop-product-card] .dekohop-product-card-gallery__button--next { right: var(--dekohop-product-card-gallery-control-edge); }
[data-dekohop-product-card] .dekohop-product-card-gallery:hover .dekohop-product-card-gallery__button,
[data-dekohop-product-card] .dekohop-product-card-gallery:focus-within .dekohop-product-card-gallery__button { opacity: 1; }
[data-dekohop-product-card] .dekohop-product-card-gallery__button:hover,
[data-dekohop-product-card] .dekohop-product-card-gallery__button:focus-visible { background: var(--dekohop-product-card-gallery-control-hover-background); }
[data-dekohop-product-card] .dekohop-product-card-gallery__counter {
  position: absolute;
  z-index: 4;
  right: var(--dekohop-product-card-gallery-control-edge);
  bottom: var(--dekohop-product-card-gallery-control-edge);
  padding: 0.2rem 0.46rem;
  border-radius: 999px;
  background: var(--dekohop-product-card-gallery-counter-background);
  color: var(--dekohop-product-card-gallery-counter-color);
  font-size: 0.72rem;
  line-height: 1;
  pointer-events: none;
}

[data-dekohop-product-card] .dekohop-product-card-gallery__dots {
  position: absolute;
  z-index: 5;
  bottom: var(--dekohop-product-card-gallery-dot-bottom);
  left: 50%;
  display: var(--dekohop-product-card-gallery-dots-display);
  min-height: var(--dekohop-product-card-gallery-dot-size);
  align-items: center;
  justify-content: center;
  gap: var(--dekohop-product-card-gallery-dot-gap);
  margin: var(--dekohop-product-card-gallery-dot-margin);
  opacity: var(--dekohop-product-card-gallery-dot-opacity);
  transform: translateX(-50%);
}
[data-dekohop-product-card] .dekohop-product-card-gallery__dot {
  display: block;
  width: var(--dekohop-product-card-gallery-dot-size);
  height: var(--dekohop-product-card-gallery-dot-size);
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--dekohop-product-card-gallery-dot-color);
  box-shadow: none;
  transition: background var(--dekohop-product-card-gallery-transition-time) ease, transform var(--dekohop-product-card-gallery-transition-time) ease;
}
[data-dekohop-product-card] .dekohop-product-card-gallery__dot.is-active {
  background: var(--dekohop-product-card-gallery-dot-active-color);
  opacity: var(--dekohop-product-card-gallery-dot-active-opacity);
  transform: scale(1.28);
}
[data-dekohop-product-card] .dekohop-product-card-variant-pill {
  position: absolute;
  z-index: var(--dekohop-product-card-variant-layer);
  right: var(--dekohop-product-card-variant-right);
  bottom: var(--dekohop-product-card-variant-bottom);
  display: var(--dekohop-product-card-variant-display);
  height: var(--dekohop-product-card-variant-height);
  align-items: center;
  justify-content: center;
  gap: var(--dekohop-product-card-variant-gap);
  padding: 0 var(--dekohop-product-card-variant-horizontal-padding);
  border: var(--dekohop-product-card-variant-border-width) solid var(--dekohop-product-card-variant-border-color);
  border-radius: var(--dekohop-product-card-variant-radius);
  background: var(--dekohop-product-card-variant-background);
  box-shadow: var(--dekohop-product-card-variant-shadow);
  color: var(--dekohop-product-card-variant-color);
  font-size: var(--dekohop-product-card-variant-font-size);
  font-weight: var(--dekohop-product-card-variant-font-weight);
  line-height: 1;
  pointer-events: none;
}
[data-dekohop-product-card] .dekohop-product-card-variant-pill__swatches { display: inline-flex; align-items: center; }
[data-dekohop-product-card] .dekohop-product-card-variant-pill__swatches i {
  display: block;
  width: var(--dekohop-product-card-variant-swatch-size);
  height: var(--dekohop-product-card-variant-swatch-size);
  border: 1px solid rgba(255, 255, 255, 0.95);
  border-radius: 50%;
  background: var(--dekohop-product-card-variant-swatch-one);
}
[data-dekohop-product-card] .dekohop-product-card-variant-pill__swatches i + i { margin-left: var(--dekohop-product-card-variant-swatch-overlap); background: var(--dekohop-product-card-variant-swatch-two); }

[data-dekohop-product-card] .product-thumb:hover .dekohop-product-card-gallery__image.is-active { transform: scale(var(--dekohop-product-card-image-hover-scale)); }

[data-dekohop-product-card] .dekohop-category-product-body {
  display: flex;
  min-height: 0;
  flex: 1 1 auto;
  flex-direction: column;
  gap: var(--dekohop-product-card-content-gap);
  border-top: var(--dekohop-product-card-content-divider-width) solid var(--dekohop-product-card-content-divider-color);
}
[data-dekohop-product-card] .caption {
  position: relative;
  display: grid;
  flex: 0 0 auto;
  grid-template-rows: minmax(var(--dekohop-product-card-title-row-min-height), auto) minmax(var(--dekohop-product-card-price-row-min-height), auto);
  gap: var(--dekohop-product-card-content-gap);
  padding: var(--dekohop-product-card-content-padding);
  border-top: 0;
}

#product-category .dekohop-category-product-grid [data-dekohop-product-card] .caption {
  border-top: 0;
}

[data-dekohop-product-card] .caption h2 {
  display: flex;
  min-height: var(--dekohop-product-card-title-row-min-height);
  align-items: center;
  margin: 0;
  font-size: var(--dekohop-product-card-title-font-size);
  line-height: var(--dekohop-product-card-title-line-height);
  opacity: 1;
  transition: opacity var(--dekohop-product-card-actions-hover-time) ease;
}
#product-category .dekohop-category-product-grid [data-dekohop-product-card] .caption h2 {
  min-height: var(--dekohop-product-card-title-row-min-height);
  margin: 0;
  font-size: var(--dekohop-product-card-title-font-size);
}
[data-dekohop-product-card] .caption h2 a {
  display: -webkit-box;
  width: 100%;
  overflow: hidden;
  color: var(--dekohop-product-card-title-color);
  font-weight: var(--dekohop-product-card-title-font-weight);
  text-align: var(--dekohop-product-card-title-text-align);
  text-wrap: var(--dekohop-product-card-title-text-wrap);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--dekohop-product-card-title-lines);
}
[data-dekohop-product-card] .caption h2 a:hover { color: var(--dekohop-product-card-title-hover-color); }

[data-dekohop-product-card] .dekohop-category-product-description {
  display: var(--dekohop-product-card-description-display);
  overflow: hidden;
  margin: 0;
  color: var(--dekohop-product-card-description-color);
  font-size: var(--dekohop-product-card-description-font-size);
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--dekohop-product-card-description-lines);
}

[data-dekohop-product-card] .price {
  display: flex;
  min-height: var(--dekohop-product-card-price-row-min-height);
  align-items: center;
  justify-content: center;
  gap: var(--dekohop-product-card-price-inline-gap);
  margin: 0;
  color: var(--dekohop-product-card-price-color);
  font-size: var(--dekohop-product-card-price-font-size);
  font-weight: var(--dekohop-product-card-price-font-weight);
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}
[data-dekohop-product-card] .price-new { color: var(--dekohop-product-card-special-price-color); font-size: var(--dekohop-product-card-price-font-size); }
[data-dekohop-product-card] .price-old {
  color: var(--dekohop-product-card-old-price-color);
  font-size: var(--dekohop-product-card-old-price-font-size);
  font-weight: var(--dekohop-product-card-old-price-font-weight);
  text-decoration: var(--dekohop-product-card-old-price-decoration);
}
[data-dekohop-product-card] .price-tax { display: var(--dekohop-product-card-tax-display); }
[data-dekohop-product-card] .rating { display: var(--dekohop-product-card-rating-display); }
[data-dekohop-product-card] .dekohop-product-card-primary-stage {
  position: absolute;
  z-index: 3;
  top: var(--dekohop-product-card-cart-title-top);
  right: var(--dekohop-product-card-cart-title-side-space);
  left: var(--dekohop-product-card-cart-title-side-space);
  display: flex;
  min-height: var(--dekohop-product-card-primary-stage-height);
  height: var(--dekohop-product-card-primary-stage-height);
  align-items: center;
  justify-content: center;
  gap: var(--dekohop-product-card-primary-stage-gap);
  overflow: visible;
  pointer-events: none;
  transform: translateY(var(--dekohop-product-card-cart-title-vertical-offset));
}
[data-dekohop-product-card] .dekohop-product-card-rating {
  position: relative;
  z-index: 3;
  min-height: var(--dekohop-product-card-rating-star-size);
  align-items: center;
  justify-content: center;
  gap: var(--dekohop-product-card-rating-gap);
  padding: 0 var(--dekohop-product-card-rating-side-padding);
  color: var(--dekohop-product-card-rating-text-color);
  font-size: var(--dekohop-product-card-rating-font-size);
  line-height: 1;
  opacity: 1;
  text-decoration: none;
  transform: translateY(0) scale(1);
  visibility: visible;
  transition: opacity var(--dekohop-product-card-actions-hover-time) ease, transform var(--dekohop-product-card-actions-hover-time) ease, visibility 0s linear var(--dekohop-product-card-actions-hover-time);
}
[data-dekohop-product-card] .dekohop-product-card-rating:hover,
[data-dekohop-product-card] .dekohop-product-card-rating:focus { color: var(--dekohop-product-card-rating-text-color); text-decoration: none; }
[data-dekohop-product-card] .dekohop-product-card-rating__stars { display: inline-flex; flex: 0 0 auto; align-self: center; align-items: center; min-height: var(--dekohop-product-card-rating-star-size); gap: 0.1rem; }
[data-dekohop-product-card] .dekohop-product-card-rating__star { position: relative; display: inline-block; flex: 0 0 var(--dekohop-product-card-rating-star-size); width: var(--dekohop-product-card-rating-star-size); height: var(--dekohop-product-card-rating-star-size); line-height: 1; }
[data-dekohop-product-card] .dekohop-product-card-rating__star-base,
[data-dekohop-product-card] .dekohop-product-card-rating__star-fill { position: absolute; top: 0; left: 0; display: block; height: 100%; background-image: var(--dekohop-product-card-rating-star-image); background-position: left center; background-repeat: no-repeat; background-size: var(--dekohop-product-card-rating-star-size) var(--dekohop-product-card-rating-star-size); }
[data-dekohop-product-card] .dekohop-product-card-rating__star-base { width: 100%; opacity: var(--dekohop-product-card-rating-star-empty-opacity); filter: var(--dekohop-product-card-rating-star-empty-filter); }
[data-dekohop-product-card] .dekohop-product-card-rating__star-fill { overflow: hidden; width: var(--dekohop-star-fill); filter: var(--dekohop-product-card-rating-star-fill-filter) var(--dekohop-product-card-rating-star-shadow); }
[data-dekohop-unrated-stars="dim"] [data-dekohop-product-card] .dekohop-product-card-rating.is-unrated .dekohop-product-card-rating__star-fill { opacity: 0; }
[data-dekohop-product-card] .dekohop-product-card-rating__score { display: inline-flex; align-self: center; align-items: center; justify-content: center; min-height: var(--dekohop-product-card-rating-star-size); color: var(--dekohop-product-card-rating-score-color); font-weight: 700; line-height: 1; }
[data-dekohop-product-card] .dekohop-product-card-rating__media {
  display: var(--dekohop-product-card-review-media-display);
  align-self: center;
  flex: 0 0 var(--dekohop-product-card-review-media-size);
  width: var(--dekohop-product-card-review-media-size);
  height: var(--dekohop-product-card-review-media-size);
  margin-left: var(--dekohop-product-card-review-media-left-space);
  overflow: hidden;
  border: var(--dekohop-product-card-review-media-border-width) solid var(--dekohop-product-card-review-media-border-color);
  border-radius: var(--dekohop-product-card-review-media-radius);
  background-color: var(--dekohop-product-card-review-media-background);
  background-image: var(--dekohop-product-card-review-media-image);
  background-position: center;
  background-repeat: no-repeat;
  background-size: var(--dekohop-product-card-review-media-image-size);
  box-shadow: var(--dekohop-product-card-review-media-shadow);
  mix-blend-mode: var(--dekohop-product-card-review-media-blend-mode);
  opacity: var(--dekohop-product-card-review-media-opacity);
  transition: opacity var(--dekohop-product-card-actions-hover-time) ease, transform var(--dekohop-product-card-actions-hover-time) ease;
}
[data-dekohop-product-card] .dekohop-product-card-rating:hover .dekohop-product-card-rating__media,
[data-dekohop-product-card] .dekohop-product-card-rating:focus .dekohop-product-card-rating__media { opacity: 1; transform: scale(var(--dekohop-product-card-review-media-hover-scale)); }
[data-dekohop-product-card]:hover .dekohop-product-card-rating,
[data-dekohop-product-card]:focus-within .dekohop-product-card-rating { opacity: 1; transform: translateY(0) scale(1); visibility: visible; }
[data-dekohop-product-card].is-rating-animating .dekohop-product-card-rating__star {
  animation: dekohop-product-card-star-toward-viewer var(--dekohop-product-card-rating-star-rise-time) cubic-bezier(0.2, 0.85, 0.28, 1.15) both;
  animation-delay: calc(var(--dekohop-star-index) * var(--dekohop-product-card-rating-star-delay));
}
[data-dekohop-product-card].is-rating-animating .dekohop-product-card-rating__score { animation: dekohop-product-card-score-settle var(--dekohop-product-card-rating-exit-time) ease both; }

@keyframes dekohop-product-card-star-toward-viewer {
  0% { opacity: 1; transform: translateY(0) scale(1); }
  42% { opacity: 1; transform: translateY(-0.3rem) scale(var(--dekohop-product-card-rating-star-zoom)); filter: brightness(1.16); }
  72% { opacity: 1; transform: translateY(0.12rem) scale(1.08); }
  100% { opacity: 1; transform: translateY(0) scale(1); filter: brightness(1); }
}
@keyframes dekohop-product-card-score-settle { 0%, 35% { opacity: 1; transform: scale(1); } 58% { opacity: 1; transform: scale(1.12); } 100% { opacity: 1; transform: scale(1); } }

[data-dekohop-product-card] .dekohop-product-card-cart-action {
  display: inline-flex;
  z-index: 2;
  width: var(--dekohop-product-card-cart-hover-width);
  min-width: max-content;
  height: var(--dekohop-product-card-action-height);
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0 1rem;
  border-width: var(--dekohop-product-card-cart-border-width);
  border-style: var(--dekohop-product-card-cart-border-style);
  border-color: var(--dekohop-product-card-cart-border-color);
  border-radius: var(--dekohop-product-card-action-radius);
  background: var(--dekohop-product-card-cart-background);
  color: var(--dekohop-product-card-cart-color);
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  white-space: nowrap;
  transition: opacity var(--dekohop-product-card-actions-hover-time) ease, background var(--dekohop-product-card-actions-hover-time) ease, visibility 0s linear var(--dekohop-product-card-actions-hover-time);
}
[data-dekohop-product-card]:hover .caption h2 { opacity: 0; pointer-events: none; }
[data-dekohop-product-card]:hover .dekohop-product-card-cart-action,
[data-dekohop-product-card]:focus-within .dekohop-product-card-cart-action { opacity: 1; pointer-events: auto; visibility: visible; transition-delay: 0s; }
[data-dekohop-product-card] .dekohop-product-card-cart-action:hover { background: var(--dekohop-product-card-cart-hover-background); }
[data-dekohop-product-card] .dekohop-product-card-stock-action {
  display: inline-flex;
  z-index: 2;
  width: var(--dekohop-product-card-cart-hover-width);
  min-width: max-content;
  height: var(--dekohop-product-card-action-height);
  align-items: center;
  justify-content: center;
  padding: 0 1rem;
  border: var(--dekohop-product-card-cart-border-width) var(--dekohop-product-card-cart-border-style) var(--dekohop-product-card-stock-border-color);
  border-radius: var(--dekohop-product-card-action-radius);
  background: var(--dekohop-product-card-stock-background);
  color: var(--dekohop-product-card-stock-color);
  font-weight: var(--dekohop-product-card-stock-font-weight);
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  white-space: nowrap;
  transition: opacity var(--dekohop-product-card-actions-hover-time) ease, visibility 0s linear var(--dekohop-product-card-actions-hover-time);
}
[data-dekohop-product-card][data-dekohop-in-stock="0"]:hover .dekohop-product-card-stock-action,
[data-dekohop-product-card][data-dekohop-in-stock="0"]:focus-within .dekohop-product-card-stock-action { opacity: 1; visibility: visible; transition-delay: 0s; }

[data-dekohop-product-card] .dekohop-product-card-bottom-row {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  align-items: stretch;
  justify-content: flex-start;
  gap: var(--dekohop-product-card-bottom-row-gap);
  padding: var(--dekohop-product-card-bottom-row-padding);
}
[data-dekohop-product-card] .dekohop-product-card-review-row,
[data-dekohop-product-card] .dekohop-product-card-actions-row {
  box-sizing: border-box;
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: center;
  justify-content: center;
}
[data-dekohop-product-card] .dekohop-product-card-review-row {
  min-height: var(--dekohop-product-card-review-row-min-height);
  padding: var(--dekohop-product-card-review-row-padding);
}
[data-dekohop-product-card] .dekohop-product-card-actions-row {
  min-height: var(--dekohop-product-card-actions-row-min-height);
  padding: var(--dekohop-product-card-actions-row-padding);
}
[data-dekohop-product-card] .dekohop-product-card-review-row .dekohop-product-card-rating { min-width: 0; flex: 0 1 auto; }
[data-dekohop-product-card] .dekohop-product-card-actions-row .button-group { margin-inline: auto; }
[data-dekohop-product-card] .button-group { display: var(--dekohop-product-card-actions-display); flex: 0 0 auto; justify-content: center; gap: var(--dekohop-product-card-action-gap); padding: 0; border: 0; background: transparent; }
[data-dekohop-product-card] .button-group > button {
  display: inline-flex;
  flex: 0 0 var(--dekohop-product-card-icon-button-size) !important;
  width: var(--dekohop-product-card-icon-button-size) !important;
  min-width: var(--dekohop-product-card-icon-button-size) !important;
  max-width: var(--dekohop-product-card-icon-button-size) !important;
  height: var(--dekohop-product-card-icon-button-size) !important;
  min-height: var(--dekohop-product-card-icon-button-size) !important;
  max-height: var(--dekohop-product-card-icon-button-size) !important;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  border: 0;
  border-radius: var(--dekohop-product-card-action-radius);
  position: relative;
  isolation: isolate;
}
[data-dekohop-product-card] .product-thumb .button-group [data-dekohop-wishlist-button] {
  display: var(--dekohop-product-card-favorite-display);
  color: var(--dekohop-product-card-favorite-normal-color);
  background: var(--dekohop-product-card-favorite-normal-background);
  box-shadow: inset 0 0 0 1px var(--dekohop-product-card-favorite-normal-border), var(--dekohop-product-card-favorite-normal-shadow);
}
[data-dekohop-product-card] .product-thumb .button-group [data-dekohop-compare-button] { display: var(--dekohop-product-card-compare-display); background: var(--dekohop-product-card-icon-background); color: var(--dekohop-product-card-icon-color); }
[data-dekohop-product-card] .product-thumb .button-group [data-dekohop-wishlist-button]:hover {
  color: var(--dekohop-product-card-favorite-hover-color);
  background: var(--dekohop-product-card-favorite-normal-background);
}
[data-dekohop-product-card] .product-thumb .button-group [data-dekohop-compare-button]:hover { background: var(--dekohop-product-card-icon-hover-background); color: var(--dekohop-product-card-icon-color); }
[data-dekohop-product-card] .dekohop-favorite-heart {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--dekohop-product-card-favorite-heart-size);
  height: var(--dekohop-product-card-favorite-heart-size);
  color: inherit;
  line-height: 0;
  pointer-events: none;
  transition: color 180ms ease;
}
[data-dekohop-product-card] .dekohop-favorite-heart__wrap {
  position: relative;
  top: var(--dekohop-product-card-favorite-heart-top);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  transform-origin: center center;
}
[data-dekohop-product-card] .dekohop-favorite-heart__svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
[data-dekohop-product-card] .dekohop-favorite-heart__main { fill: currentColor; }
[data-dekohop-product-card] .dekohop-favorite-heart__shine {
  opacity: 0;
  transform: translateX(-58px) rotate(24deg);
  transform-origin: 32px 32px;
  animation: dekohop-product-card-favorite-shine var(--dekohop-product-card-favorite-shine-duration) ease-in-out infinite;
}
[data-dekohop-product-card] .product-thumb .button-group [data-dekohop-wishlist-button].is-favorite,
[data-dekohop-product-card] .product-thumb .button-group [data-dekohop-wishlist-button].is-favorite:hover {
  color: var(--dekohop-product-card-favorite-active-color);
  background: var(--dekohop-product-card-favorite-active-background);
  box-shadow: inset 0 0 0 1px var(--dekohop-product-card-favorite-active-border-color), var(--dekohop-product-card-favorite-normal-shadow);
}
[data-dekohop-product-card] .product-thumb .button-group [data-dekohop-wishlist-button].is-favorite:hover {
  color: var(--dekohop-product-card-favorite-active-hover-color);
}
[data-dekohop-product-card] [data-dekohop-wishlist-button].is-favorite .dekohop-favorite-heart__wrap {
  animation: dekohop-product-card-favorite-beat var(--dekohop-product-card-favorite-beat-duration) ease-in-out infinite;
  will-change: transform;
}

@keyframes dekohop-product-card-favorite-beat {
  0%, 100% { transform: scale(1); }
  8% { transform: scale(var(--dekohop-product-card-favorite-beat-scale)); }
  16%, 25% { transform: scale(1); }
  33% { transform: scale(var(--dekohop-product-card-favorite-beat-scale)); }
  41% { transform: scale(1); }
}
@keyframes dekohop-product-card-favorite-shine {
  0% { transform: translateX(-58px) rotate(24deg); opacity: 0; }
  18% { opacity: var(--dekohop-product-card-favorite-shine-opacity); }
  52% { transform: translateX(58px) rotate(24deg); opacity: var(--dekohop-product-card-favorite-shine-opacity); }
  72%, 100% { transform: translateX(58px) rotate(24deg); opacity: 0; }
}

[data-dekohop-product-card] .dekohop-product-badges {
  display: flex;
  z-index: var(--dekohop-product-badge-layer);
  flex-wrap: wrap;
  gap: var(--dekohop-product-badge-group-gap);
  opacity: 1;
  pointer-events: none;
  visibility: visible;
}
[data-dekohop-product-card] .dekohop-product-badges:empty { display: none; }
[data-dekohop-product-card] .dekohop-product-badges[data-direction="column"] { flex-direction: column; }
[data-dekohop-product-card] .dekohop-product-badges[data-direction="row"] { flex-direction: row; }
[data-dekohop-product-card] .dekohop-product-badges[data-wrap="wrap"] { flex-wrap: wrap; }
[data-dekohop-product-card] .dekohop-product-badges[data-wrap="nowrap"] { flex-wrap: nowrap; }
[data-dekohop-product-card] .dekohop-product-badges[data-alignment="start"] { align-items: flex-start; }
[data-dekohop-product-card] .dekohop-product-badges[data-alignment="center"] { align-items: center; }
[data-dekohop-product-card] .dekohop-product-badges[data-alignment="end"] { align-items: flex-end; }
[data-dekohop-product-card] .dekohop-product-badges[data-alignment="stretch"] { align-items: stretch; }
[data-dekohop-product-card] .dekohop-product-badges[data-equal-width="1"][data-direction="column"] { align-items: stretch; }
[data-dekohop-product-card] .dekohop-product-badges[data-equal-width="1"][data-direction="column"] .dekohop-product-badge { width: 100%; justify-content: center; }
[data-dekohop-product-card] .dekohop-product-badges[data-equal-width="1"][data-direction="row"] { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
[data-dekohop-product-card] .dekohop-product-badges[data-equal-width="1"][data-direction="row"] .dekohop-product-badge { width: 100%; justify-content: center; }

[data-dekohop-product-card] .image > .dekohop-product-badges,
[data-dekohop-product-card] .caption > .dekohop-product-badges { position: absolute; top: auto; right: auto; bottom: auto; left: auto; }
[data-dekohop-product-card] .image > .dekohop-product-badges { max-width: calc(100% - (2 * var(--dekohop-product-badge-edge-space))); }
[data-dekohop-product-card] .caption > .dekohop-product-badges { max-width: calc(100% - (2 * var(--dekohop-product-badge-content-edge-space))); }
[data-dekohop-product-card] .image > .dekohop-product-badges--image_top_left { top: var(--dekohop-product-badge-edge-space); right: auto; bottom: auto; left: var(--dekohop-product-badge-edge-space); }
[data-dekohop-product-card] .image > .dekohop-product-badges--image_top_right { top: var(--dekohop-product-badge-edge-space); right: var(--dekohop-product-badge-edge-space); bottom: auto; left: auto; justify-content: flex-end; }
[data-dekohop-product-card] .image > .dekohop-product-badges--image_bottom_left { top: auto; right: auto; bottom: var(--dekohop-product-badge-edge-space); left: var(--dekohop-product-badge-edge-space); }
[data-dekohop-product-card] .image > .dekohop-product-badges--image_bottom_right { top: auto; right: var(--dekohop-product-badge-edge-space); bottom: var(--dekohop-product-badge-edge-space); left: auto; justify-content: flex-end; }
[data-dekohop-product-card] .caption > .dekohop-product-badges--content_top_left { top: var(--dekohop-product-badge-content-edge-space); right: auto; bottom: auto; left: var(--dekohop-product-badge-content-edge-space); }
[data-dekohop-product-card] .caption > .dekohop-product-badges--content_top_right { top: var(--dekohop-product-badge-content-edge-space); right: var(--dekohop-product-badge-content-edge-space); bottom: auto; left: auto; justify-content: flex-end; }
[data-dekohop-product-card] .caption > .dekohop-product-badges--content_bottom_left { top: auto; right: auto; bottom: var(--dekohop-product-badge-content-edge-space); left: var(--dekohop-product-badge-content-edge-space); }
[data-dekohop-product-card] .caption > .dekohop-product-badges--content_bottom_right { top: auto; right: var(--dekohop-product-badge-content-edge-space); bottom: var(--dekohop-product-badge-content-edge-space); left: auto; justify-content: flex-end; }

[data-dekohop-product-card] .dekohop-product-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.34em;
  padding: var(--dekohop-badge-padding-y, var(--dekohop-product-badge-padding-y)) var(--dekohop-badge-padding-x, var(--dekohop-product-badge-padding-x));
  border-width: var(--dekohop-badge-border-width, var(--dekohop-product-badge-border-width));
  border-style: var(--dekohop-badge-border-style, var(--dekohop-product-badge-border-style));
  border-color: var(--dekohop-badge-border-color, var(--dekohop-product-badge-border-color));
  border-radius: var(--dekohop-badge-radius, var(--dekohop-product-badge-radius));
  background: var(--dekohop-badge-background, var(--dekohop-product-badge-background));
  box-shadow: var(--dekohop-product-badge-shadow);
  color: var(--dekohop-badge-color, var(--dekohop-product-badge-color));
  font-size: var(--dekohop-badge-font-size, var(--dekohop-product-badge-font-size));
  font-weight: var(--dekohop-badge-font-weight, var(--dekohop-product-badge-font-weight));
  line-height: 1.2;
  opacity: 1;
  transform: translate(var(--dekohop-badge-offset-x, var(--dekohop-product-badge-offset-x)), var(--dekohop-badge-offset-y, var(--dekohop-product-badge-offset-y)));
  visibility: visible;
  white-space: nowrap;
}

[data-dekohop-product-card] .dekohop-product-badge__icon {
  display: block;
  width: var(--dekohop-badge-icon-size, var(--dekohop-product-badge-icon-size));
  min-width: var(--dekohop-badge-icon-size, var(--dekohop-product-badge-icon-size));
  max-width: var(--dekohop-badge-icon-size, var(--dekohop-product-badge-icon-size));
  height: var(--dekohop-badge-icon-size, var(--dekohop-product-badge-icon-size));
  min-height: var(--dekohop-badge-icon-size, var(--dekohop-product-badge-icon-size));
  max-height: var(--dekohop-badge-icon-size, var(--dekohop-product-badge-icon-size));
  object-fit: contain;
}
[data-dekohop-product-card] .dekohop-product-badge--image-only { padding: 0; border: 0; background: transparent; box-shadow: none; }

[data-dekohop-product-card] .dekohop-product-badge--dynamic-discount {
  overflow: visible;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

[data-dekohop-product-card] .dekohop-product-badge__discount-mark {
  position: relative;
  display: grid;
  width: calc(var(--dekohop-badge-icon-size, var(--dekohop-product-badge-icon-size)) * var(--dekohop-discount-badge-width-ratio));
  min-width: calc(var(--dekohop-badge-icon-size, var(--dekohop-product-badge-icon-size)) * var(--dekohop-discount-badge-width-ratio));
  height: var(--dekohop-badge-icon-size, var(--dekohop-product-badge-icon-size));
  grid-template-columns: minmax(0, 1.16fr) minmax(0, 0.84fr);
  align-items: center;
  box-sizing: border-box;
  padding: 0.015em 0.02em 0.075em 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  color: var(--dekohop-badge-color, var(--dekohop-discount-badge-text));
  font-size: var(--dekohop-badge-icon-size, var(--dekohop-product-badge-icon-size));
  font-style: normal;
  line-height: 1;
  transform: rotate(-1.5deg) skewX(-2deg);
}

[data-dekohop-product-card] .dekohop-product-badge__discount-number {
  display: block;
  align-self: center;
  justify-self: end;
  margin: -0.01em -0.045em 0 0;
  color: var(--dekohop-badge-color, var(--dekohop-discount-badge-text));
  font-family: "Arial Black", "Inter", sans-serif;
  font-size: 0.72em;
  font-weight: var(--dekohop-badge-font-weight, 900);
  letter-spacing: -0.10em;
  line-height: 0.88;
  -webkit-text-stroke: var(--dekohop-badge-border-width, 4px) var(--dekohop-badge-border-color, var(--dekohop-discount-badge-red));
  paint-order: stroke fill;
  text-shadow: 0 0.075em 0 var(--dekohop-badge-background, var(--dekohop-discount-badge-red-dark)), 0 0.11em 0 var(--dekohop-badge-background, var(--dekohop-discount-badge-red-dark)), 0 0.14em 0 rgba(93, 4, 14, 0.24);
}

[data-dekohop-product-card] .dekohop-product-badge__discount-details {
  display: flex;
  min-width: 0;
  height: 82%;
  align-items: center;
  align-self: center;
  flex-direction: column;
  justify-content: center;
  transform: translate(-0.01em, -0.015em);
}

[data-dekohop-product-card] .dekohop-product-badge__discount-symbol {
  color: var(--dekohop-badge-color, var(--dekohop-discount-badge-text));
  font-family: "Arial Black", "Inter", sans-serif;
  font-size: var(--dekohop-badge-font-size, 24px);
  font-style: normal;
  font-weight: var(--dekohop-badge-font-weight, 900);
  line-height: 0.88;
  -webkit-text-stroke: var(--dekohop-badge-border-width, 4px) var(--dekohop-badge-border-color, var(--dekohop-discount-badge-red));
  paint-order: stroke fill;
  text-shadow: 0 0.075em 0 var(--dekohop-badge-background, var(--dekohop-discount-badge-red-dark)), 0 0.11em 0 var(--dekohop-badge-background, var(--dekohop-discount-badge-red-dark));
}

[data-dekohop-product-card] .dekohop-product-badge__discount-word {
  display: block;
  max-width: 100%;
  margin-top: 0.03em;
  color: var(--dekohop-badge-color, var(--dekohop-discount-badge-text));
  font-family: "Arial Black", "Inter", sans-serif;
  font-size: var(--dekohop-badge-discount-word-size, calc(var(--dekohop-badge-font-size, 24px) * 0.30));
  font-style: normal;
  font-weight: var(--dekohop-badge-font-weight, 900);
  letter-spacing: -0.055em;
  line-height: 1;
  text-align: center;
  transform: scaleX(0.82);
  -webkit-text-stroke: calc(var(--dekohop-badge-border-width, 4px) * 0.62) var(--dekohop-badge-border-color, var(--dekohop-discount-badge-red));
  paint-order: stroke fill;
  text-shadow: 0 0.09em 0 var(--dekohop-badge-background, var(--dekohop-discount-badge-red-dark)), 0 0.14em 0 var(--dekohop-badge-background, var(--dekohop-discount-badge-red-dark));
  white-space: nowrap;
}
/* DEKOHOP-COMMON-DESKTOP-RULES-END */

/* DEKOHOP-RESPONSIVE-RULES-START */
/* Mobil kurallar masaüstü sayfaları tamamlandıktan sonra bu bölümde, yalnız
 * açık mobil özelliğiyle sınırlandırılarak eklenecektir. Şimdilik bilinçli olarak boştur. */
@media (prefers-reduced-motion: reduce) {
  [data-dekohop-product-card] .dekohop-favorite-heart__shine,
  [data-dekohop-product-card] [data-dekohop-wishlist-button].is-favorite .dekohop-favorite-heart__wrap { animation: none; }
}
/* DEKOHOP-RESPONSIVE-RULES-END */
