/* ==========================================================================
   IKM — قالب‌های نسخه ۳.۱
   صفحه ۴۰۴ · نتایج جست‌وجو · وبلاگ · تسویه حساب
   ========================================================================== */


/* ==========================================================================
   ۴۰۴
   ========================================================================== */

.ikm-404 { text-align: center; padding: 50px 0 60px; }

.ikm-404__code {
  font-size: clamp(4rem, 14vw, 8rem);
  font-weight: 700;
  line-height: 1;
  color: var(--ikm-line-c);
  letter-spacing: 4px;
}
.ikm-404 h1 { font-size: 1.6rem; font-weight: 800; color: var(--ikm-tx); margin: 12px 0 10px; }
.ikm-404 > p {
  max-width: 52ch;
  margin: 0 auto 26px;
  color: var(--ikm-tx-mute);
  line-height: var(--ikm-line);
}
.ikm-404__search { max-width: 480px; margin: 0 auto 40px; }

.ikm-404__cats h2 { font-size: 1rem; font-weight: 700; color: var(--ikm-tx-mute); margin: 0 0 14px; }
.ikm-404__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-bottom: 40px;
}
.ikm-404__grid a {
  padding: 10px 18px;
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-btn);
  color: var(--ikm-tx);
  font-size: .85rem;
  text-decoration: none;
}
.ikm-404__grid a:hover { border-color: var(--ikm-accent); color: var(--ikm-accent); }

.ikm-404__help {
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-box);
  padding: 24px;
  max-width: 560px;
  margin: 0 auto;
}
.ikm-404__help p { color: var(--ikm-tx-mute); font-size: .9rem; margin: 0 0 16px; }
.ikm-404__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }


/* ==========================================================================
   نتایج جست‌وجو

   ⚠️ کلاس این صفحه عمداً `ikm-results` است نه `ikm-search`:
   فرم جست‌وجوی هدر از قبل `.ikm-search` را داشت، و قاعده
   `padding-bottom: 50px` روی آن هم می‌نشست — همان کادر خالی که
   زیر باکس جست‌وجو در همه صفحات ظاهر شده بود.
   ========================================================================== */

.ikm-results { padding-bottom: 50px; }

.ikm-results__head {
  padding: 6px 0 22px;
  margin-bottom: 26px;
  border-bottom: 1px solid var(--ikm-line-c);
}
.ikm-results__count {
  font-size: .92rem;
  color: var(--ikm-tx-mute);
  margin: 0 0 16px;
}
.ikm-results__count b { color: var(--ikm-tx); font-weight: 700; }
.ikm-results__count span { color: var(--ikm-accent); font-weight: 600; }
.ikm-results__form { max-width: 460px; }

.ikm-results__sec { margin-bottom: 40px; }
.ikm-results__sec > h2 {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--ikm-tx);
  margin: 0 0 16px;
}
.ikm-results__sec > h2 span {
  font-family: var(--ikm-mono);
  font-size: .72rem;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 999px;
  background: var(--ikm-bg-3);
  color: var(--ikm-tx-mute);
}

.ikm-results__pages { display: flex; flex-direction: column; gap: 8px; }
.ikm-results__pages a {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 16px;
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-card);
  text-decoration: none;
}
.ikm-results__pages a:hover { border-color: var(--ikm-accent); }
.ikm-results__pages b { color: var(--ikm-tx); font-size: .92rem; }
.ikm-results__pages span { color: var(--ikm-tx-mute); font-size: .82rem; line-height: 1.7; }


/* ==========================================================================
   وبلاگ
   ========================================================================== */

.ikm-blog { padding-bottom: 50px; }

.ikm-blog__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 18px;
}

.ikm-card {
  display: flex;
  flex-direction: column;
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-box);
  overflow: hidden;
  transition: .15s;
}
.ikm-card:hover { border-color: var(--ikm-accent); box-shadow: var(--ikm-shadow); }

.ikm-card__thumb { display: block; aspect-ratio: 16 / 9; background: var(--ikm-bg-3); }
.ikm-card__thumb img { width: 100%; height: 100%; object-fit: cover; }

.ikm-card__body { display: flex; flex-direction: column; gap: 8px; padding: 18px; flex: 1; }
.ikm-card__date { font-size: .72rem; color: var(--ikm-tx-faint); }
.ikm-card__title { font-size: 1rem; font-weight: 700; line-height: 1.6; margin: 0; }
.ikm-card__title a { color: var(--ikm-tx); text-decoration: none; }
.ikm-card__title a:hover { color: var(--ikm-accent); }
.ikm-card__excerpt { font-size: .85rem; color: var(--ikm-tx-mute); line-height: 1.8; margin: 0; }
.ikm-card__more { margin-top: auto; padding-top: 10px; font-size: .82rem; color: var(--ikm-accent); text-decoration: none; }

/* ---------- تک‌نوشته ---------- */

.ikm-single-post { padding-bottom: 50px; }

.ikm-post {
  /* حدود ۷۰ کاراکتر در خط — بهترین خوانایی برای متن فنی بلند */
  max-width: 760px;
  margin: 0 auto 44px;
}
.ikm-post__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: .78rem;
  color: var(--ikm-tx-faint);
  margin-bottom: 18px;
}
.ikm-post__meta a { color: var(--ikm-accent); text-decoration: none; }

.ikm-post__cover {
  margin: 0 0 26px;
  border-radius: var(--ikm-r-box);
  overflow: hidden;
}
.ikm-post__cover img { width: 100%; height: auto; display: block; }

.ikm-post__body { margin-bottom: 30px; }
.ikm-post__body h2 { font-size: 1.25rem; font-weight: 800; margin: 32px 0 12px; }
.ikm-post__body h3 { font-size: 1.05rem; font-weight: 700; margin: 24px 0 10px; }
.ikm-post__body p { line-height: var(--ikm-line); margin: 0 0 16px; }
.ikm-post__body ul,
.ikm-post__body ol { padding-inline-start: 22px; margin: 0 0 16px; }
.ikm-post__body li { margin-bottom: 8px; line-height: var(--ikm-line); }
.ikm-post__body img { max-width: 100%; height: auto; border-radius: var(--ikm-r-card); }
.ikm-post__body blockquote {
  margin: 20px 0;
  padding: 14px 18px;
  background: var(--ikm-bg-2);
  border-inline-start: 3px solid var(--ikm-accent);
  border-radius: var(--ikm-r-card);
  color: var(--ikm-tx-mute);
}


/* ==========================================================================
   تسویه حساب
   ========================================================================== */

.ikm-checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
  gap: 24px;
  align-items: start;
  padding-bottom: 40px;
}
.ikm-checkout__main,
.ikm-checkout__side { min-width: 0; }

.ikm-box {
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-box);
  padding: 22px;
  margin-bottom: 18px;
}
.ikm-box > h2,
.ikm-box h3 {
  font-size: 1.02rem;
  font-weight: 800;
  color: var(--ikm-tx);
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ikm-line-c);
}

/* فیلدهای فرم ووکامرس */
.ikm-checkout .form-row {
  display: flex;
  flex-direction: column;
  margin-bottom: 14px;
  padding: 0;
}
.ikm-checkout .form-row label {
  font-size: .82rem;
  font-weight: 600;
  color: var(--ikm-tx-mute);
  margin-bottom: 6px;
}
.ikm-checkout .required { color: var(--ikm-danger); text-decoration: none; }

.ikm-checkout input[type="text"],
.ikm-checkout input[type="tel"],
.ikm-checkout input[type="email"],
.ikm-checkout input[type="password"],
.ikm-checkout textarea,
.ikm-checkout select,
.ikm-checkout .select2-container .select2-selection--single {
  width: 100%;
  min-height: 46px;
  padding: 12px 14px;
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-btn);
  background: var(--ikm-bg);
  color: var(--ikm-tx);
  font-family: var(--ikm-font);
  font-size: .9rem;
}
.ikm-checkout textarea { min-height: 100px; resize: vertical; line-height: var(--ikm-line); }
.ikm-checkout input:focus,
.ikm-checkout textarea:focus,
.ikm-checkout select:focus { outline: none; border-color: var(--ikm-accent); }

/* دو فیلد کنار هم روی دسکتاپ */
@media (min-width: 640px) {
  .ikm-checkout .form-row-first,
  .ikm-checkout .form-row-last { display: inline-flex; width: calc(50% - 6px); }
  .ikm-checkout .form-row-first { margin-inline-end: 12px; }
}

.ikm-checkout .woocommerce-form__label-for-checkbox {
  flex-direction: row;
  align-items: center;
  gap: 8px;
  font-size: .86rem;
  color: var(--ikm-tx);
}
.ikm-checkout input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--ikm-accent); }

/* جدول مرور سفارش */
.ikm-checkout__review table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 4px;
}
.ikm-checkout__review th,
.ikm-checkout__review td {
  padding: 11px 0;
  font-size: .86rem;
  text-align: right;
  border-bottom: 1px dashed var(--ikm-line-c);
  color: var(--ikm-tx-mute);
}
.ikm-checkout__review th { font-weight: 600; }
.ikm-checkout__review td { font-family: var(--ikm-mono); color: var(--ikm-tx); }
.ikm-checkout__review .order-total th,
.ikm-checkout__review .order-total td {
  font-size: 1rem;
  font-weight: 700;
  color: var(--ikm-tx);
  border-bottom: none;
  padding-top: 14px;
}
.ikm-checkout__review .order-total td { color: var(--ikm-accent); }
.ikm-checkout__review thead th { background: transparent; color: var(--ikm-tx); font-weight: 700; }

.ikm-checkout .wc_payment_methods { list-style: none; margin: 16px 0 0; padding: 0; }
.ikm-checkout .wc_payment_method {
  padding: 12px 14px;
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-card);
  margin-bottom: 8px;
}
.ikm-checkout .wc_payment_method label { display: inline; font-size: .9rem; color: var(--ikm-tx); }
.ikm-checkout .payment_box { font-size: .82rem; color: var(--ikm-tx-mute); margin-top: 8px; }

.ikm-checkout #place_order {
  width: 100%;
  min-height: 50px;
  margin-top: 16px;
  padding: 15px;
  border: none;
  border-radius: var(--ikm-r-btn);
  background: var(--ikm-accent);
  color: var(--ikm-accent-ink);
  font-family: var(--ikm-font);
  font-weight: 700;
  font-size: .95rem;
  cursor: pointer;
}
.ikm-checkout #place_order:hover { filter: brightness(1.08); }

.ikm-checkout__help { font-size: .8rem; color: var(--ikm-tx-faint); text-align: center; }
.ikm-checkout__help a { color: var(--ikm-accent); text-decoration: none; }

.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-NoticeGroup {
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-inline-start: 3px solid var(--ikm-accent);
  border-radius: var(--ikm-r-card);
  padding: 14px 16px;
  margin-bottom: 18px;
  font-size: .88rem;
  list-style: none;
}

@media (max-width: 900px) {
  .ikm-checkout { grid-template-columns: 1fr; }
}


/* ==========================================================================
   صفحه «سفارش دریافت شد»

   آخرین صفحه‌ای که مشتری می‌بیند. برای فروش قطعه سنگین مهم‌تر از
   فروشگاه‌های معمولی است: مشتری باید بداند چه زمانی تماس می‌گیرند
   و شماره سفارشش چیست.
   ========================================================================== */

.woocommerce-order { padding-bottom: 40px; }

.woocommerce-order .woocommerce-thankyou-order-received {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--ikm-ok);
  padding: 18px 20px;
  margin: 0 0 22px;
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-inline-start: 3px solid var(--ikm-ok);
  border-radius: var(--ikm-r-box);
}

.woocommerce-order ul.woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 1px;
  list-style: none;
  margin: 0 0 26px;
  padding: 0;
  background: var(--ikm-line-c);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-box);
  overflow: hidden;
}
.woocommerce-order ul.woocommerce-order-overview li {
  background: var(--ikm-bg-2);
  padding: 16px 18px;
  font-size: .78rem;
  color: var(--ikm-tx-faint);
  border: none;
}
.woocommerce-order ul.woocommerce-order-overview li strong {
  display: block;
  margin-top: 5px;
  font-family: var(--ikm-mono);
  font-size: .92rem;
  color: var(--ikm-tx);
}

.woocommerce-order h2 {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--ikm-tx);
  margin: 30px 0 14px;
}

.woocommerce-order table.woocommerce-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-box);
  overflow: hidden;
}
.woocommerce-order table.woocommerce-table th,
.woocommerce-order table.woocommerce-table td {
  padding: 13px 16px;
  font-size: .87rem;
  text-align: right;
  border-bottom: 1px solid var(--ikm-line-c);
  color: var(--ikm-tx-mute);
}
.woocommerce-order table.woocommerce-table thead th {
  background: var(--ikm-bg-3);
  color: var(--ikm-tx);
  font-weight: 700;
}
.woocommerce-order table.woocommerce-table td.woocommerce-table__product-name a {
  color: var(--ikm-tx);
  text-decoration: none;
  font-weight: 600;
}
.woocommerce-order table.woocommerce-table tfoot th { color: var(--ikm-tx); font-weight: 600; }
.woocommerce-order table.woocommerce-table tfoot tr:last-child th,
.woocommerce-order table.woocommerce-table tfoot tr:last-child td {
  font-size: 1rem;
  font-weight: 700;
  color: var(--ikm-accent);
  border-bottom: none;
}

.woocommerce-order .woocommerce-columns--addresses {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  margin-top: 26px;
}
.woocommerce-order .woocommerce-column {
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-box);
  padding: 18px 20px;
}
.woocommerce-order .woocommerce-column h2 { margin-top: 0; font-size: .95rem; }
.woocommerce-order address {
  font-style: normal;
  font-size: .87rem;
  line-height: 1.9;
  color: var(--ikm-tx-mute);
}

/* بلوک «بعد از این چه می‌شود» — از inc/checkout.php می‌آید */
.ikm-next {
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-box);
  padding: 22px;
  margin-bottom: 26px;
}
.ikm-next h2 { margin: 0 0 12px; font-size: 1rem; }
.ikm-next ol { margin: 0; padding-inline-start: 20px; }
.ikm-next li { font-size: .88rem; color: var(--ikm-tx-mute); line-height: 1.9; margin-bottom: 6px; }
.ikm-next__call {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px dashed var(--ikm-line-c);
  font-size: .85rem;
  color: var(--ikm-tx-mute);
}


/* ==========================================================================
   پنل کاربری — نسخه ۳.۲
   ========================================================================== */

.ikm-acc {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  padding-bottom: 44px;
}

/* ---------- منوی کناری ---------- */

.ikm-acc__nav {
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-box);
  overflow: hidden;
}
.ikm-acc__who {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 16px;
  border-bottom: 1px solid var(--ikm-line-c);
  background: var(--ikm-bg-3);
}
.ikm-acc__avatar {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--ikm-accent);
  color: var(--ikm-accent-ink);
  font-weight: 800;
  font-size: 1.05rem;
}
.ikm-acc__who b { display: block; font-size: .88rem; color: var(--ikm-tx); }
.ikm-acc__who small { font-size: .72rem; color: var(--ikm-tx-faint); word-break: break-all; }

.ikm-acc__nav ul { list-style: none; margin: 0; padding: 6px; }
.ikm-acc__nav li a {
  display: block;
  padding: 11px 13px;
  border-radius: var(--ikm-r-btn);
  color: var(--ikm-tx-mute);
  font-size: .87rem;
  text-decoration: none;
}
.ikm-acc__nav li a:hover { background: var(--ikm-bg); color: var(--ikm-tx); }
.ikm-acc__nav li.is-active a {
  background: var(--ikm-accent);
  color: var(--ikm-accent-ink);
  font-weight: 700;
}

/* ---------- برچسب وضعیت ---------- */

.ikm-status {
  display: inline-flex;
  align-items: center;
  padding: 5px 12px;
  border-radius: 999px;
  font-size: .76rem;
  font-weight: 700;
  white-space: nowrap;
  background: var(--ikm-bg-3);
  color: var(--ikm-tx-mute);
}
.ikm-status--processing { background: rgba(20, 10, 154, .12); color: var(--ikm-accent); }
.ikm-status--completed  { background: rgba(61, 138, 87, .14); color: var(--ikm-ok); }
.ikm-status--on-hold,
.ikm-status--pending    { background: rgba(47, 100, 128, .14); color: var(--ikm-steel); }
.ikm-status--cancelled,
.ikm-status--failed,
.ikm-status--refunded   { background: rgba(192, 57, 43, .12); color: var(--ikm-danger); }

/* ---------- فهرست سفارش‌ها ---------- */

.ikm-orders { display: flex; flex-direction: column; gap: 12px; }

.ikm-order {
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-box);
  padding: 18px;
}
.ikm-order__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding-bottom: 12px;
  border-bottom: 1px dashed var(--ikm-line-c);
}
.ikm-order__num { font-size: .95rem; font-weight: 700; color: var(--ikm-tx); }
.ikm-order__top time { display: block; font-size: .76rem; color: var(--ikm-tx-faint); margin-top: 2px; }

.ikm-order__items {
  padding: 12px 0;
  font-size: .85rem;
  color: var(--ikm-tx-mute);
  line-height: 1.8;
}

.ikm-order__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding-top: 12px;
  border-top: 1px dashed var(--ikm-line-c);
}
.ikm-order__total { font-size: 1rem; font-weight: 700; color: var(--ikm-tx); }
.ikm-order__actions { display: flex; gap: 8px; flex-wrap: wrap; }

.ikm-orders__nav { display: flex; gap: 10px; margin-top: 18px; }

/* ---------- جزئیات سفارش ---------- */

.ikm-vieworder__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}

/* نوار مراحل */
.ikm-steps {
  display: flex;
  list-style: none;
  margin: 0 0 22px;
  padding: 20px 16px;
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-box);
}
.ikm-steps li {
  flex: 1;
  position: relative;
  text-align: center;
  font-size: .78rem;
  color: var(--ikm-tx-faint);
}
/* خط رابط بین مراحل — در راست‌به‌چپ به سمت راست کشیده می‌شود */
.ikm-steps li::before {
  content: "";
  position: absolute;
  top: 9px;
  right: 50%;
  width: 100%;
  height: 2px;
  background: var(--ikm-line-c);
}
.ikm-steps li:first-child::before { display: none; }
.ikm-steps li.is-done::before,
.ikm-steps li.is-now::before { background: var(--ikm-accent); }

.ikm-steps__dot {
  position: relative;
  z-index: 1;
  display: block;
  width: 20px;
  height: 20px;
  margin: 0 auto 8px;
  border-radius: 50%;
  background: var(--ikm-bg-2);
  border: 2px solid var(--ikm-line-c);
}
.ikm-steps li.is-done .ikm-steps__dot { background: var(--ikm-accent); border-color: var(--ikm-accent); }
.ikm-steps li.is-now .ikm-steps__dot {
  background: var(--ikm-accent);
  border-color: var(--ikm-accent);
  box-shadow: 0 0 0 4px rgba(20, 10, 154, .18);
}
.ikm-steps li.is-done,
.ikm-steps li.is-now { color: var(--ikm-tx); font-weight: 600; }

.ikm-vieworder__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 22px; }

.ikm-vieworder__row {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px dashed var(--ikm-line-c);
}
.ikm-vieworder__row:last-child { border-bottom: none; }
.ikm-vieworder__thumb {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4px;
  background: var(--ikm-bg);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-card);
}
.ikm-vieworder__thumb img { width: 100%; height: 100%; object-fit: contain; }
.ikm-vieworder__info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ikm-vieworder__info b { font-size: .88rem; color: var(--ikm-tx); }
.ikm-vieworder__info small { font-size: .72rem; color: var(--ikm-tx-faint); }
.ikm-vieworder__qty { font-size: .82rem; color: var(--ikm-tx-mute); }
.ikm-vieworder__price { font-size: .88rem; font-weight: 700; color: var(--ikm-tx); }

.ikm-vieworder__totals { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--ikm-line-c); }
.ikm-vieworder__totals > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 0;
  font-size: .86rem;
  color: var(--ikm-tx-mute);
}
.ikm-vieworder__totals .is-final { font-size: 1rem; font-weight: 700; color: var(--ikm-tx); }
.ikm-vieworder__totals .is-final b { color: var(--ikm-accent); }

@media (max-width: 900px) {
  .ikm-acc { grid-template-columns: 1fr; }
  .ikm-acc__nav ul { display: grid; grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .ikm-steps { padding: 16px 8px; }
  .ikm-steps li { font-size: .68rem; }
  .ikm-vieworder__row { grid-template-columns: 48px minmax(0, 1fr) auto; }
  .ikm-vieworder__thumb { width: 48px; height: 48px; }
  .ikm-vieworder__qty { grid-column: 2; }
  .ikm-order__actions .ikm-btn { flex: 1; text-align: center; }
}


/* ==========================================================================
   اصلاحات نسخه ۳.۲.۱
   ========================================================================== */

/* ---------- سبد خالی ---------- */

.ikm-empty--cart { max-width: 620px; margin-inline: auto; }
.ikm-empty__icon {
  display: block;
  width: 54px;
  height: 54px;
  margin: 0 auto 14px;
  color: var(--ikm-tx-faint);
}
.ikm-empty__icon svg { width: 100%; height: 100%; }

/* ---------- کارت‌های اطلاعات سفارش ---------- */

/* ایمیل بلند از کادر بیرون می‌زد */
.woocommerce-order ul.woocommerce-order-overview li strong {
  font-size: .84rem;
  line-height: 1.7;
  word-break: break-all;
  overflow-wrap: anywhere;
}
.woocommerce-order ul.woocommerce-order-overview li.woocommerce-order-overview__email strong {
  font-family: var(--ikm-mono);
  font-size: .76rem;
}

@media (max-width: 640px) {
  .woocommerce-order ul.woocommerce-order-overview { grid-template-columns: 1fr 1fr; }
}


/* ==========================================================================
   نسخه ۳.۲.۲
   ========================================================================== */

/* ---------- کارت‌های خلاصه سفارش ----------

   ووکامرس روی این li ها `float` و `width: 25%` می‌گذارد. با گرید،
   float نادیده گرفته می‌شود ولی width می‌ماند و ردیف دوم با یک
   ناحیه خاکستری خالی جا می‌ماند. هر دو خنثی می‌شوند.                     */

.woocommerce-order ul.woocommerce-order-overview {
  background: transparent;
  border: none;
  gap: 10px;
}
.woocommerce-order ul.woocommerce-order-overview li {
  width: auto;
  float: none;
  margin: 0;
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-card);
}


/* ---------- جزئیات سفارش (قالب خودمان) ---------- */

.ikm-odetails { margin-top: 30px; }
.ikm-odetails > h2 { font-size: 1.05rem; font-weight: 800; color: var(--ikm-tx); margin: 0 0 14px; }

.ikm-odetails__box {
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-box);
  padding: 6px 18px 18px;
}

.ikm-odetails__row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px dashed var(--ikm-line-c);
}
.ikm-odetails__name { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.ikm-odetails__name b { font-size: .9rem; color: var(--ikm-tx); font-weight: 600; }
.ikm-odetails__name small { font-size: .72rem; color: var(--ikm-tx-faint); }
.ikm-odetails__qty { font-size: .84rem; color: var(--ikm-tx-mute); white-space: nowrap; }
.ikm-odetails__price { font-size: .9rem; font-weight: 700; color: var(--ikm-tx); white-space: nowrap; }

.ikm-odetails__totals { padding-top: 14px; }
.ikm-odetails__totals > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 9px 0;
  font-size: .87rem;
  color: var(--ikm-tx-mute);
  border-bottom: 1px dashed var(--ikm-line-c);
}
.ikm-odetails__totals > div:last-child { border-bottom: none; }
.ikm-odetails__totals b { color: var(--ikm-tx); font-weight: 700; white-space: nowrap; }
.ikm-odetails__totals .is-final { padding-top: 13px; font-size: 1rem; }
.ikm-odetails__totals .is-final span { font-weight: 700; color: var(--ikm-tx); }
.ikm-odetails__totals .is-final b { font-size: 1.1rem; color: var(--ikm-accent); }

.ikm-odetails__note {
  margin-top: 14px;
  padding: 13px 16px;
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-inline-start: 3px solid var(--ikm-accent);
  border-radius: var(--ikm-r-card);
  font-size: .86rem;
  color: var(--ikm-tx-mute);
}


/* ==========================================================================
   صفحه «سفارش دریافت شد» — بازنویسی نسخه ۳.۴

   ساختار کارت‌ها حالا از قالب خودمان می‌آید
   (woocommerce/checkout/thankyou.php)، نه از هسته ووکامرس.
   پس دیگر `float` و `width: 25%` ای در کار نیست که خنثی شود.
   ========================================================================== */

/*
 * ⚠️ کادر خاکستری خالی — اصلاح نسخه ۳.۴.۲
 *
 * قبلاً خطوط بین کارت‌ها با فاصله ۱ پیکسلی و رنگ پس‌زمینه ظرف
 * کشیده می‌شد. مشکل این روش این است که اگر تعداد کارت‌ها مضرب
 * تعداد ستون‌ها نباشد، جای خالی ردیف آخر همان رنگ خاکستری لخت
 * می‌ماند — دقیقاً چیزی که در صفحه سفارش دیده شد.
 *
 * حالا هر کارت قاب خودش را دارد و بین‌شان فاصله واقعی است. جای
 * خالی ردیف آخر رنگ خود صفحه است، پس اصلاً دیده نمی‌شود.
 */
.ikm-thanks__cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 12px;
  list-style: none;
  margin: 0 0 28px;
  padding: 0;
}

.ikm-thanks__cards li {
  display: flex;
  flex-direction: column;
  gap: 7px;
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-card);
  padding: 16px 18px;
  margin: 0;
  min-width: 0;
}

.ikm-thanks__cards li > span {
  font-size: .74rem;
  font-weight: 600;
  color: var(--ikm-tx-faint);
}

.ikm-thanks__cards li > b {
  font-size: .92rem;
  font-weight: 700;
  color: var(--ikm-tx);
  line-height: 1.6;
  overflow-wrap: normal;
  word-break: normal;
}

/* ---------- کارت ایمیل ----------

   ⚠️ اصلاح نسخه ۳.۴.۳ — ایمیل وسط کلمه می‌شکست:
   «arashamirpour86@gmail.c / om». علتش `word-break: break-all` بود
   که بی‌رحمانه هر جا لازم شد می‌شکند.

   حالا کارت ایمیل دو ستون عرض می‌گیرد تا اصلاً نیازی به شکستن
   نباشد، و اگر باز هم بلند بود فقط جاهای منطقی می‌شکند.            */

.ikm-thanks__cards li:has(.ikm-thanks__mail) { grid-column: span 2; }

.ikm-thanks__mail {
  font-size: .8rem !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

/* مرورگرهای بدون :has — ایمیل کوچک‌تر می‌شود تا جا شود */
@supports not selector(:has(*)) {
  .ikm-thanks__mail { font-size: .72rem !important; }
}

@media (max-width: 560px) {
  .ikm-thanks__cards li:has(.ikm-thanks__mail) { grid-column: span 2; }
}

@media (max-width: 560px) {
  .ikm-thanks__cards { grid-template-columns: 1fr 1fr; }
}


/* ---------- بلوک آدرس‌ها ----------

   ایراد: متن هر دو کادر به یک سمت چسبیده بود و فاصله داخلی نداشت.
   علت این بود که ووکامرس روی <address> جهت متن نمی‌گذارد و آدرس
   فارسی داخل قالب راست‌به‌چپ، ترازش را از عنصر بالادست می‌گرفت.   */

.woocommerce-order .woocommerce-columns--addresses {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 18px;
  margin-top: 28px;
}

.woocommerce-order .woocommerce-column {
  background: var(--ikm-bg-2);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-box);
  padding: 20px 22px;
  min-width: 0;
}

.woocommerce-order .woocommerce-column h2 {
  margin: 0 0 12px;
  padding-bottom: 10px;
  font-size: .95rem;
  font-weight: 700;
  color: var(--ikm-tx);
  text-align: start;
  border-bottom: 1px solid var(--ikm-line-c);
}

.woocommerce-order .woocommerce-column address {
  display: block;
  font-style: normal;
  font-size: .88rem;
  line-height: 2;
  color: var(--ikm-tx-mute);
  text-align: start;
  direction: rtl;
}

/* ---------- تلفن و ایمیل داخل آدرس ----------

   ⚠️ اصلاح نسخه ۳.۴.۳ — این‌ها به لبه چپ کادر چسبیده بودند در حالی
   که بقیه آدرس راست‌چین بود، و کادر به‌هم‌ریخته به نظر می‌رسید.

   علت: `direction: ltr` گذاشته بودم تا رقم‌های شماره تلفن به هم
   نریزند، ولی `text-align: start` در یک عنصر چپ‌به‌راست یعنی «چپ».

   حالا ترتیب کاراکترها چپ‌به‌راست می‌ماند (شماره درست خوانده شود)
   ولی خودِ خط راست‌چین است، هم‌تراز بقیه آدرس.                        */

.woocommerce-order .woocommerce-column address .woocommerce-customer-details--phone,
.woocommerce-order .woocommerce-column address .woocommerce-customer-details--email {
  display: block;
  margin: 8px 0 0;
  font-family: var(--ikm-mono);
  font-size: .8rem;
  color: var(--ikm-tx);
  direction: ltr;
  text-align: right;
  unicode-bidi: isolate;
  overflow-wrap: anywhere;
}

/* فاصله نفس‌گیر بین آخرین خط آدرس و شماره تماس */
.woocommerce-order .woocommerce-column address .woocommerce-customer-details--phone {
  padding-top: 10px;
  border-top: 1px dashed var(--ikm-line-c);
}


/* ---------- عکس قطعه در جزئیات سفارش (نسخه ۳.۴) ---------- */

.ikm-odetails__row {
  align-items: flex-start;
  gap: 14px;
}

.ikm-odetails__thumb {
  flex: 0 0 auto;
  width: 58px;
  height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px;
  background: var(--ikm-bg);
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-card);
  overflow: hidden;
}
.ikm-odetails__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.ikm-odetails__name b a {
  color: var(--ikm-tx);
  text-decoration: none;
}
.ikm-odetails__name b a:hover { color: var(--ikm-accent); }

.ikm-odetails__name small {
  white-space: nowrap;
  word-break: keep-all;
}

.ikm-odetails__qty,
.ikm-odetails__price {
  align-self: center;
  white-space: nowrap;
}

@media (max-width: 560px) {
  .ikm-odetails__thumb { width: 46px; height: 46px; }
}


/* ==========================================================================
   تصویر جایگزین مقاله‌ها — نسخه ۳.۴.۳
   ========================================================================== */

.ikm-post-art {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: linear-gradient(135deg, var(--ikm-bg-3), var(--ikm-bg-2));
  border-bottom: 1px solid var(--ikm-line-c);
}
.ikm-post-art svg {
  width: 74%;
  height: auto;
  max-height: 84%;
  opacity: .5;
}

/* مرورگرهای قدیمی بدون aspect-ratio */
@supports not (aspect-ratio: 1) {
  .ikm-post-art { height: 220px; }
}


/* ==========================================================================
   مقاله — نسخه ۳.۴.۶

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

.ikm-post__cover {
  margin: 0 0 26px;
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-box);
  overflow: hidden;
}
.ikm-post__cover img { width: 100%; height: auto; display: block; }
.ikm-post__cover .ikm-post-art { border-bottom: none; }

/* گرافیک وسط متن — از شورت‌کد [ikm_art] */
.ikm-post-art--inline {
  margin: 30px 0;
  border: 1px solid var(--ikm-line-c);
  border-radius: var(--ikm-r-box);
  aspect-ratio: 21 / 9;
  position: relative;
}
.ikm-post-art--inline figcaption {
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  padding: 8px 14px;
  font-size: .76rem;
  color: var(--ikm-tx-faint);
  text-align: center;
  background: linear-gradient(to top, var(--ikm-bg-2), transparent);
}

/* کارت مقاله در آرشیو — همه کارت‌ها هم‌قد بمانند */
.ikm-card__thumb .ikm-post-art { aspect-ratio: 16 / 9; }
.ikm-card__thumb img { width: 100%; height: auto; display: block; }

@media (max-width: 640px) {
  .ikm-post-art--inline { aspect-ratio: 16 / 9; margin: 22px 0; }
}

/* ==========================================================================
   نسخه ۳.۴.۲۹ — فاصله داخلی کادرهای آدرس در صفحه «سفارش دریافت شد»

   دو مشکل با هم:
   ۱) فاصله ۲۲ پیکسلی از کادر خلاصه سفارش بالای همان صفحه کمتر بود،
      پس متن آدرس نسبت به بقیه صفحه چسبیده به لبه دیده می‌شد.
   ۲) احتمال داشت همان ۲۲ پیکسل اصلاً اعمال نشود: ووکامرس روی این
      ستون‌ها کلاس‌های `col-1` و `col-2` هم می‌گذارد و قالب مادر برای
      آن‌ها فاصله صفر تعریف می‌کند.

   کلاس دو بار نوشته شده تا در هر دو حالت برنده باشیم — همان روشی که
   در ۳.۴.۲۸ برای متن کادر سبد خالی جواب داد.
   ========================================================================== */

.woocommerce-order .woocommerce-column.woocommerce-column {
  padding: 22px 28px;
}
