:root {
    --td-black: #1C1C1C;
    --td-cream: #F5F1E9;
    --td-brown: #A68A74;
    --td-rose: #B76E79; /* Accent */
    --td-muted: #6b6b6b;
    --td-border: #e9e7e2;

    --td-scale-x: none;
    --td-scale-y: none;
}

.td-product-grid {
    display: grid;
    grid-template-columns:repeat(4, 1fr);
    gap: 24px;
}

@media (max-width: 1200px) {
    .td-product-grid {
        grid-template-columns:repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .td-product-grid {
        grid-template-columns:repeat(2, 1fr);
        gap: 16px;
    }
}

@media (max-width: 480px) {
    .td-product-grid {
        grid-template-columns:1fr;
    }
}

.td-product-card {
    background: #fff;
    border: 1px solid var(--td-border);
    /* بدون گردی گوشه */
    border-radius: 0;
    overflow: hidden;
    position: relative;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.td-product-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .08);
    border-color: #ddd;
}

.td-product-card__image-wrap {
    display: block;
    position: relative;
    aspect-ratio: 1/1.25;
    background: var(--td-cream);
}

/* نمایش کاملِ عکس بدون برش */
.td-product-card__image {
    width: 100%;
    height: 100%;
    object-fit: contain; /* بدون بُرش؛ تمام عکس دیده می‌شود */
    object-position: center; /* وسط‌چین */
    image-orientation: from-image; /* احترام به EXIF برای چرخش برخی عکس‌ها */
    display: block;
    user-select: none;
    -webkit-user-drag: none;
}

/* (اختیاری) پس‌زمینهٔ پشت عکس وقتی letterbox می‌شود */
.td-product-card__image-wrap {
    background: #fff; /* یا همون var(--td-cream) اگر دوست داری */
}

/* استرچ هوشمند: فقط کمی کش در محور لازم برای پُر کردن قاب */
.td-product-card__image-wrap.td-img-stretch {
    overflow: hidden; /* احتیاطی */
}

.td-product-card__image-wrap.td-img-stretch > img {
    object-fit: contain; /* تصویر کامل بماند */
    transform-origin: center;
    transform: scaleX(var(--td-scale-x, 1)) scaleY(var(--td-scale-y, 1));
    will-change: transform;
}

/* اکشن‌های شناور بالا */
.td-product-card__actions {
    position: absolute;
    top: 10px;
    left: 10px;
    display: flex;
    gap: 8px;
    z-index: 2;
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity .2s ease, transform .2s ease;
}

.td-product-card:hover .td-product-card__actions {
    opacity: 1;
    transform: translateY(0);
}

.td-btn {
    font-family: Poppins, Vazirmatn, sans-serif;
    border: none;
    cursor: pointer;
}

.td-btn--icon {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .9);
    color: var(--td-black);
    border: 1px solid #e6e6e6;
    transition: background .2s ease, color .2s ease, transform .1s ease;
}

.td-btn--icon:hover {
    background: #fff;
    color: var(--td-rose);
}

.td-btn--icon:active {
    transform: scale(.96);
}

/* وقتی علاقه‌مندی فعّال است، رنگ آیکن همیشه قرمز بماند */
.td-fav-btn[aria-pressed="true"] i,
.td-fav-btn.is-active i {
    color: #c31d2a; /* قرمز ثابت برای قلب پُر */
}

/* هاور هم نباید رنگ را عوض کند */
.td-fav-btn[aria-pressed="true"]:hover i,
.td-fav-btn.is-active:hover i {
    color: #c31d2a;
}

/* بدنه کارت */
.td-product-card__body {
    padding: 12px 12px 56px 12px;
}

.td-product-card__title {
    font-size: .95rem;
    font-weight: 600;
    color: var(--td-black);
    margin: 6px 0 8px;
    line-height: 1.6;
    display: flex;
    align-items: center;
    gap: 8px;
    justify-content: space-between;
}

.td-product-card__title a {
    color: inherit;
    text-decoration: none;
}

.td-product-card__title a:hover {
    color: var(--td-rose);
}

/* ناموجود */
.td-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 8px;
    border: 1px solid #ffd1d1;
    background: #fff5f5;
    color: #b70000;
    font-size: .78rem;
    font-weight: 600;
}

.td-badge--danger i {
    font-size: 1rem;
}

.td-badge--shake {
    animation: td-wiggle 1.4s ease-in-out infinite;
}

@keyframes td-wiggle {
    0%, 100% {
        transform: rotate(0deg)
    }
    15% {
        transform: rotate(6deg)
    }
    30% {
        transform: rotate(-5deg)
    }
    45% {
        transform: rotate(4deg)
    }
    60% {
        transform: rotate(-3deg)
    }
    75% {
        transform: rotate(2deg)
    }
}

.td-product-card__pricing {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-height: calc((1.6em * 2) + 4px); /* 4px همان gap تعریف‌شده است */
}

/* ردیف قیمت قدیم + برچسب */
.td-price-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.td-price {
    font-weight: 700;
    line-height: 1.6;
}

.td-price--regular {
    color: var(--td-black);
    opacity: .8;
}

.td-price--old {
    color: var(--td-muted);
    text-decoration: line-through;
}

/* برچسب قرمزِ «کاغذ پاره» */
.td-off-flag {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 52px;
    height: 28px;
    padding: 0 10px;
    background: #E53935; /* قرمز */
    color: #fff;
    font-weight: 800;
    font-size: 12px;
    direction: ltr; /* نمایش %25 درست باشد */
    transform: rotate(-6deg);
    /* لبه‌های نامنظم */
    clip-path: polygon(
            6% 0%, 18% 8%, 28% 0%, 40% 9%, 52% 0%, 64% 10%, 76% 0%, 88% 9%, 100% 0%,
            95% 50%,
            100% 100%, 88% 92%, 76% 100%, 64% 90%, 52% 100%, 40% 91%, 28% 100%, 18% 92%, 6% 100%,
            0% 50%
    );
    box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
}

/* متن داخل برچسب */
.td-off-flag__text {
    line-height: 1;
    letter-spacing: .5px;
}

/* برای RTL فاصله‌گذاری هماهنگ باشد */
[dir="rtl"] .td-price-row {
    gap: 12px;
}

.td-price--new {
    color: #c31d2a;
}

/* قرمز برای قیمت با تخفیف */

/* دکمه افزودن به سبد */
.td-btn--addcart {
    position: absolute;
    right: 12px;
    left: 12px;
    bottom: 12px;
    height: 42px;
    background: var(--td-black);
    color: #fff;
    font-weight: 700;
    letter-spacing: .2px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: transform .2s ease, background .2s ease, opacity .2s ease;
    opacity: 0;
    transform: translateY(8px);
}

.td-product-card:hover .td-btn--addcart {
    opacity: 1;
    transform: translateY(0);
}

.td-btn--addcart:hover {
    background: var(--td-rose);
}

/* لینک دکمه سبد خرید: حذف زیرخط در همه حالت‌ها */
.td-btn--addcart,
.td-btn--addcart:link,
.td-btn--addcart:visited,
.td-btn--addcart:hover,
.td-btn--addcart:focus,
.td-btn--addcart:active {
    text-decoration: none; /* حذف underline */
    color: #fff; /* رنگ سفید در همه حالت‌ها */
}

/* هاور: فقط تغییر پس‌زمینه طبق تم، نه رنگ متن */
.td-btn--addcart:hover {
    background: var(--td-rose);
    color: #fff;
}


.td-btn--addcart.is-disabled {
    background: #c9c9c9;
    color: #fff;
    cursor: not-allowed;
    opacity: 1;
    transform: none;
}

.td-addcart__icon {
    margin-inline-start: 4px;
    transform: translateX(-8px);
    opacity: 0;
    transition: transform .2s ease, opacity .2s ease;
}

.td-btn--addcart:hover .td-addcart__icon {
    transform: translateX(0);
    opacity: 1;
}

/* ===== Toast skin & animation ===== */
.swal2-popup.td-toast.td-toast--add {
    background: #e8f7ee !important;
    color: #1C1C1C !important;
}

.swal2-popup.td-toast.td-toast--remove {
    background: #fde8ea !important;
    color: #1C1C1C !important;
}

/* آیکن بدون دایره و هم‌راستا با متن */
.td-toast__icon {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    width: auto !important;
    height: auto !important;
    margin: 0 0 0 12px !important;
    padding: 0 !important;
}

/* دکمه بستن توست */
.td-toast__close {
    position: absolute !important;
    top: 4px !important;
    left: 4px !important; /* برای RTL گوشهٔ چپ بهتره */
    color: currentColor !important;
    opacity: .6 !important;
    font-size: 18px !important;
    line-height: 1 !important;
    text-shadow: none !important;
}

.td-toast__close:hover {
    opacity: 1 !important;
}

/* ورود/خروج از راست */
@keyframes td-slide-in-right {
    from {
        transform: translateX(120%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes td-slide-out-right {
    from {
        transform: translateX(0);
        opacity: 1;
    }
    to {
        transform: translateX(120%);
        opacity: 0;
    }
}

.td-anim-in {
    animation: td-slide-in-right .45s ease-out both;
}

.td-anim-out {
    animation: td-slide-out-right .35s ease-in both;
}

/* فاصله از گوشه پایین-راست */
.swal2-container.swal2-bottom-end > .swal2-popup.td-toast {
    margin-right: 16px !important;
    margin-bottom: 16px !important;
}

/* Quick view */
body.td-qv-open{overflow:hidden}.td-quickview-btn.is-loading i{animation:td-qv-pulse .8s ease infinite}.td-qv-modal{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:24px;opacity:0;visibility:hidden;transition:.2s ease}.td-qv-modal.is-open{opacity:1;visibility:visible}.td-qv-modal__backdrop{position:absolute;inset:0;border:0;background:rgba(25,22,21,.58);backdrop-filter:blur(5px);cursor:zoom-out}.td-qv-modal__panel{position:relative;width:min(940px,100%);max-height:min(720px,calc(100vh - 48px));overflow:auto;border:1px solid rgba(255,255,255,.55);border-radius:24px;background:#fff;box-shadow:0 28px 80px rgba(20,16,14,.26);transform:translateY(16px) scale(.985);transition:.22s ease}.td-qv-modal.is-open .td-qv-modal__panel{transform:none}.td-qv-modal__x{position:absolute;top:14px;left:14px;z-index:2;width:40px;height:40px;border:1px solid #e9e1dc;border-radius:50%;background:rgba(255,255,255,.92);color:#2a2725;display:grid;place-items:center;cursor:pointer}.td-qv{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(360px,1.1fr);min-height:510px}.td-qv__media{position:relative;min-height:510px;background:#f4f0ec}.td-qv__media img{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.td-qv__discount{position:absolute;right:18px;top:18px;padding:7px 11px;border-radius:999px;background:#b76e79;color:#fff;font-size:.76rem;font-weight:800}.td-qv__content{padding:46px 40px 34px;display:flex;flex-direction:column}.td-qv__eyebrow{color:#b76e79;font-size:.74rem;font-weight:800}.td-qv__content h2{font-size:clamp(1.45rem,3vw,2rem);margin:7px 0 8px}.td-qv__category{display:inline-flex;align-items:center;gap:6px;width:max-content;color:#776e69;text-decoration:none;font-size:.82rem}.td-qv__price{display:flex;align-items:center;gap:12px;margin:24px 0 14px;padding:15px 17px;border-radius:15px;background:#faf7f3}.td-qv__price del{color:#9a918c}.td-qv__price strong{color:#a95867;font-size:1.08rem}.td-qv__description{color:#706966;font-size:.85rem;line-height:2;margin:0 0 16px}.td-qv__facts{display:grid;gap:0;margin:0}.td-qv__facts>div{display:grid;grid-template-columns:75px 1fr;gap:12px;padding:9px 0;border-bottom:1px solid #eee8e4}.td-qv__facts dt{color:#8b827d;font-size:.76rem}.td-qv__facts dd{margin:0;font-size:.82rem}.td-qv__facts .is-available{color:#228352}.td-qv__facts .is-unavailable{color:#bd4351}.td-qv__actions{display:flex;gap:9px;margin-top:auto;padding-top:24px}.td-qv__primary,.td-qv__close{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border-radius:12px;padding:9px 16px;font-family:inherit;font-size:.82rem;font-weight:800;text-decoration:none}.td-qv__primary{flex:1;border:1px solid #b76e79;background:#b76e79;color:#fff}.td-qv__primary:hover{background:#a55e6a;color:#fff}.td-qv__close{border:1px solid #e7dfda;background:#fff;color:#5f5753;cursor:pointer}@keyframes td-qv-pulse{50%{opacity:.35;transform:scale(.85)}}
@media(max-width:700px){.td-qv-modal{padding:12px}.td-qv-modal__panel{max-height:calc(100vh - 24px);border-radius:19px}.td-qv{grid-template-columns:1fr}.td-qv__media{min-height:270px}.td-qv__content{padding:26px 20px 22px}.td-qv__facts>div{grid-template-columns:64px 1fr}.td-qv__actions{flex-direction:column}.td-qv-modal__x{top:10px;left:10px}}
