/* ==========================================================================
   IKM — استایل‌های پایه
   فقط پایه: بدنه، تایپوگرافی، پس‌زمینه، دکمه‌ها، لینک‌ها.
   استایل کامپوننت‌ها (هدر، کارت محصول، مگا منو و…) در فازهای بعد
   در فایل‌های جداگانه نوشته می‌شود.
   ========================================================================== */

/* ---------- بدنه و پس‌زمینه بلوپرینت ---------- */

body,
body.woodmart-theme {
  background-color: var(--ikm-bg);
  color: var(--ikm-tx);
  font-family: var(--ikm-font);
  line-height: var(--ikm-line);
  background-image:
    linear-gradient(var(--ikm-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--ikm-grid-line) 1px, transparent 1px);
  background-size: var(--ikm-grid-size) var(--ikm-grid-size);
  background-attachment: fixed;
  transition: background-color .25s ease, color .25s ease;
}

/* روی موبایل پس‌زمینه ثابت باعث افت کارایی می‌شود */
@media (max-width: 1024px) {
  body,
  body.woodmart-theme { background-attachment: scroll; }
}

/* کاربرانی که کاهش انیمیشن را فعال کرده‌اند */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}


/* ---------- تایپوگرافی ---------- */

body,
input, textarea, select, button,
.woodmart-theme h1, .woodmart-theme h2, .woodmart-theme h3,
.woodmart-theme h4, .woodmart-theme h5, .woodmart-theme h6 {
  font-family: var(--ikm-font);
}

h1, h2, h3, h4, h5, h6 {
  color: var(--ikm-tx);
  line-height: 1.4;
  letter-spacing: -.3px;
}

h1 { font-size: 1.85rem; font-weight: 800; }
h2 { font-size: 1.55rem; font-weight: 800; }
h3 { font-size: 1.05rem; font-weight: 700; }
h4 { font-size: .95rem;  font-weight: 700; }

p { color: var(--ikm-tx-mute); }

/* اعداد فنی، قیمت و کد خطا با فونت مونو */
.ikm-mono,
.woocommerce-Price-amount,
.sku,
.ikm-code {
  font-family: var(--ikm-mono);
  font-weight: 500;
}


/* ---------- لینک‌ها ---------- */

a { color: inherit; transition: color .15s ease; }
a:hover { color: var(--ikm-accent); }

::selection {
  background: var(--ikm-accent);
  color: var(--ikm-accent-ink);
}

:focus-visible {
  outline: 2px solid var(--ikm-accent);
  outline-offset: 2px;
}


/* ---------- دکمه‌ها ---------- */

.ikm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 13px 24px;
  border: 1px solid transparent;
  border-radius: var(--ikm-r-btn);
  font-family: var(--ikm-font);
  font-weight: 700;
  font-size: .9rem;
  cursor: pointer;
  transition: .15s ease;
}

.ikm-btn--primary {
  background: var(--ikm-accent);
  color: var(--ikm-accent-ink);
}
.ikm-btn--primary:hover {
  filter: brightness(1.08);
  color: var(--ikm-accent-ink);
}

.ikm-btn--outline {
  background: var(--ikm-bg-2);
  border-color: var(--ikm-line-c);
  color: var(--ikm-tx);
}
.ikm-btn--outline:hover {
  border-color: var(--ikm-accent);
  color: var(--ikm-accent);
}

.ikm-btn--sm { padding: 8px 14px; font-size: .78rem; }

/* دکمه‌های ووکامرس هم‌رنگ برند */
.woodmart-theme .button,
.woodmart-theme button.button,
.woodmart-theme input[type="submit"],
.woodmart-theme .single_add_to_cart_button {
  background-color: var(--ikm-accent);
  color: var(--ikm-accent-ink);
  border-radius: var(--ikm-r-btn);
  font-family: var(--ikm-font);
  font-weight: 700;
}
.woodmart-theme .button:hover,
.woodmart-theme button.button:hover,
.woodmart-theme input[type="submit"]:hover,
.woodmart-theme .single_add_to_cart_button:hover {
  background-color: var(--ikm-accent);
  color: var(--ikm-accent-ink);
  filter: brightness(1.08);
}


/* ---------- کارت‌ها و سطوح ---------- */

.ikm-card {
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-card);
}

.ikm-wrap {
  max-width: var(--ikm-wrap);
  margin-inline: auto;
  padding-inline: var(--ikm-pad);
}


/* ---------- کلید تعویض تم روشن/تیره ---------- */

.ikm-theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: transparent;
  border: 1px solid var(--ikm-line-c);
  border-radius: 3px;
  color: var(--ikm-tx-mute);
  font-family: var(--ikm-font);
  font-size: .72rem;
  cursor: pointer;
  transition: .15s ease;
}
.ikm-theme-toggle:hover {
  border-color: var(--ikm-accent);
  color: var(--ikm-accent);
}
.ikm-theme-toggle svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
}


/* ۳.۴.۶۰ — شماره فنی داخل عنوان (ikm_bidi_codes) نباید سر خط تیره
   بشکند. در تیتر محصول جفت «708-2H-04750 / 708-2H-04760»، «708-» آخر
   خط اول می‌ماند و «2H-04750» به خط بعد می‌رفت و شماره خوانده نمی‌شد.
   ⚠️ ۳.۴.۶۱ — کلاس «ikm-pn» است، نه «ikm-code». «ikm-code» از قبل
   فونت مونو داشت (بالای همین فایل) و شماره‌های داخل تیتر و متن را
   ناخواسته مونو کرده بود. فونت همان فونت متن اطراف می‌ماند. */
.ikm-pn { white-space: nowrap; }


/* ==========================================================================
   دکمه‌های شناور تماس و واتس‌اپ — ۳.۴.۶۶ (inc/float-contact.php)

   سمت راست صفحه، و دکمه «برگشت به بالا»ی وودمارت سمت چپ (درخواست
   آرش). عمداً right/left فیزیکی، نه inset-inline، تا جهت صفحه جابه‌جا
   نکندشان.
   ========================================================================== */
.ikm-float {
  position: fixed;
  right: 20px;
  bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  z-index: 9990; /* زیر کشوی سبد (۹۹۹۸–۹۹۹۹) تا روی آن نیفتد */
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ikm-float__btn {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  box-shadow: 0 6px 18px rgba(10, 20, 30, .28);
  transition: transform .15s ease, box-shadow .15s ease;
}
.ikm-float__btn:hover,
.ikm-float__btn:focus-visible {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(10, 20, 30, .34);
}
.ikm-float__btn--wa   { background: #1FAF55; }   /* سبز واتس‌اپ — قابل‌تشخیص‌تر از رنگ سایت */
.ikm-float__btn--call { background: var(--ikm-accent); color: var(--ikm-accent-ink); }
.ikm-float__btn--call:hover { color: var(--ikm-accent-ink); }

@media (max-width: 1024px) {
  .ikm-float { right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); gap: 10px; }
  .ikm-float__btn { width: 50px; height: 50px; }
}
@media print { .ikm-float { display: none; } }

/* دکمه «برگشت به بالا»ی وودمارت ← گوشه پایین چپ.
   وودمارت آن را با inset-inline-end می‌گذارد؛ اول آن خنثی می‌شود و بعد
   left فیزیکی، در همان بلوک، تا همیشه چپ بماند. */
body .scrollToTop {
  inset-inline-start: auto;
  inset-inline-end: auto;
  right: auto;
  left: 20px;
}
@media (max-width: 1024px) {
  body .scrollToTop { left: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .ikm-float__btn { transition: none; }
}
