/*
 * =================================================================
 * HSA UI-Kit (Full, Non-conflicting) - Unified & Mobile-ready
 * Scope: Utilities + Modal + Mobile Top Toolbar + Archive (grid/cards/facets)
 * =================================================================
 */
@import url('tokens.css');

/* ===================== 1) Utilities & Base ===================== */
.hsa-sr-only,
.hsa-visually-hidden{
    position:absolute!important;width:1px!important;height:1px!important;
    padding:0!important;margin:-1px!important;overflow:hidden!important;
    clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;
}
.hsa-hidden{display:none!important}
.hsa-inline{display:inline!important}
.hsa-inline-block{display:inline-block!important}
.hsa-block{display:block!important}

.hsa-text-muted{color:var(--hsa-color-text-light,#777)}
.hsa-text-secondary{color:var(--hsa-color-text-secondary,#444)}
.hsa-text-primary{color:var(--hsa-color-text-primary,#111)}

.hsa-rounded-sm{border-radius:var(--hsa-radius-sm,6px)}
.hsa-rounded{border-radius:var(--hsa-radius-md,10px)}
.hsa-rounded-lg{border-radius:var(--hsa-radius-lg,12px)}

.hsa-shadow{box-shadow:var(--hsa-shadow,0 2px 8px rgba(0,0,0,.08))}
.hsa-shadow-lg{box-shadow:var(--hsa-shadow-lg,0 6px 18px rgba(0,0,0,.12))}

.hsa-border{border:var(--hsa-border,1px solid #e5e5e5)}
.hsa-border-muted{border:1px solid var(--hsa-color-border,#e5e5e5)}

.hsa-focus-ring:focus-visible{outline:3px solid var(--hsa-color-border-focus,#1a73e8);outline-offset:2px;border-radius:6px}
.hsa-no-scroll{overflow:hidden!important}

/* Buttons / inputs */
.hsa-btn{
    border:1px solid var(--hsa-color-border,#e5e5e5);
    background:#fff;color:var(--hsa-color-text-primary,#111);
    padding:6px 10px;border-radius:6px;cursor:pointer;line-height:1.4;
    transition:background-color .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease;
    font:inherit;
    font-size: 16px;
}
.hsa-btn:hover{background:var(--hsa-color-primary,#111);color:#fff;border-color:var(--hsa-color-primary,#111)}
.hsa-btn--primary{background:var(--hsa-color-primary,#111);color:#fff;border-color:var(--hsa-color-primary,#111)}
.hsa-btn--ghost{background:transparent}
.hsa-select{padding:6px 8px;border:1px solid var(--hsa-color-border,#e5e5e5);border-radius:6px;background:#fff;font:inherit}

/* Links */
a.hsa-link{color:var(--hsa-color-primary,#111);text-decoration:none;transition:.15s}
a.hsa-link:hover{color:var(--hsa-color-primary-hover,#111);opacity:.85}

/* ===================== 2) Modal (generic) ===================== */
/* پشتیبانی همزمان از ساختار قدیمی (__content) و جدید (__dialog) */
.hsa-modal{display:none;position:fixed;inset:0;z-index:1100}
.hsa-modal.is-open{display:flex}
.hsa-modal__overlay{position:absolute;inset:0;background:rgba(0,0,0,.5);animation:hsa-fade-in .25s ease}

/* container قدیم و جدید */
.hsa-modal__content,
.hsa-modal__dialog{
    position:relative;margin:auto auto 0;width:100%;max-height:90vh;background:#fff;
    border-top-left-radius:var(--hsa-radius-lg,12px);border-top-right-radius:var(--hsa-radius-lg,12px);
    display:flex;flex-direction:column;animation:hsa-slide-up .25s ease;
}
.hsa-modal__header,.hsa-modal__footer{padding:var(--hsa-space-md,16px)}
.hsa-modal__header{display:flex;align-items:center;justify-content:space-between;border-bottom:var(--hsa-border,1px solid #e5e5e5)}
.hsa-modal__title{margin:0;font-size:1rem;font-weight:700;display:flex;align-items:center;gap:8px}
.hsa-modal__close{background:0;border:0;cursor:pointer;font-size:22px;line-height:1;width:34px;height:34px;border-radius:8px;border:1px solid var(--hsa-color-border,#e5e5e5)}
.hsa-modal__body{overflow-y:auto;padding:var(--hsa-space-md,16px)}
.hsa-modal__footer{border-top:var(--hsa-border,1px solid #e5e5e5);display:flex;gap:8px;justify-content:flex-end}
.hsa-modal [tabindex="-1"]{outline:none}

/* مدال تمام‌صفحه فیلترها */
.hsa-modal--full .hsa-modal__content,
.hsa-modal--full .hsa-modal__dialog{
    inset:0;margin:0;max-height:100vh;border-radius:0;
}

@keyframes hsa-fade-in{from{opacity:0}to{opacity:1}}
@keyframes hsa-slide-up{from{transform:translateY(100%)}to{transform:translateY(0)}}

/* ================= 3) Deprecated: Mobile bottom toolbar ================= */
/* برای جلوگیری از نوارِ دوگانه، نسخهٔ قدیمی bottom را در موبایل غیرفعال می‌کنیم */
.hsa-mobile-toolbar{display:none!important}

/* ================= 4) Mobile TOP sticky toolbar ================= */
#hsa-mobile-bar{
    position: sticky;
    top: 0;
    z-index: 1005;
    background: #fff;
    border-bottom: 1px solid #eef0f3;
    padding: 8px;
    display: none;
    gap: 8px;
    align-items: center;
}
@media (max-width: 768px){
    #hsa-mobile-bar{ display: grid; grid-template-columns: auto auto auto 1fr; column-gap: 8px; }
    /* کنترل‌های دسکتاپ مخفی شوند */
    #hsa-archive .hsa-toolbar__right{ display: none !important; }
}
#hsa-mobile-bar .hsa-mb-btn{
    display: inline-flex; align-items: center; justify-content: center;
    height: 36px; padding: 0 12px; border: 1px solid #e5e7eb; background:#fff; border-radius: 8px;
    font-size: 13px; white-space: nowrap;
}
#hsa-mobile-bar .hsa-mb-perpage select{
    width: 100%; height: 36px; border:1px solid #e5e7eb; border-radius:8px; background:#fff; padding:0 8px; font-size:13px;
}

/* ================= 5) Archive — Container / Toolbar ================= */
:root{
    --hsa-max-w:1600px;
    --hsa-gap:16px; --hsa-gap-sm:12px;
    --hsa-radius:10px; --hsa-radius-sm:6px;
    --hsa-border:#ccc; --hsa-border-soft:#e5e5e5;
    --hsa-bg:#fff; --hsa-bg-soft:#f7f7f7;
    --hsa-text:#111; --hsa-text-dim:#555;
    --hsa-primary:#111; --hsa-accent:#ef394e;
    --hsa-chip-bg:#f0f0f0; --hsa-chip-border:#e0e0e0;

    /* حداقل عرض کارت واکنش‌گرا */
    --hsa-card-min: 220px;
}
#hsa-archive.hsa-container{font-family:inherit;max-width:var(--hsa-max-w);margin:0 auto;padding:0px;box-sizing:border-box}

/* Toolbar */
#hsa-archive header.hsa-toolbar{
    display:flex!important;align-items:center;justify-content:space-between;gap:12px;
    padding:0;border:0;background:transparent;
}
#hsa-archive .hsa-toolbar__left{display:flex;align-items:center;gap:8px;min-width:0}
#hsa-archive .hsa-toolbar__right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#hsa-archive .hsa-title{margin:0;font-size:1.2rem;white-space:nowrap}
#hsa-archive .hsa-result-count{font-size:.9rem;opacity:.8;display:inline-flex;gap:.35rem;margin-inline-start:12px}

/* Sort bar (دسکتاپ) */
#hsa-archive .hsa-sort-bar{
    display:flex!important;align-items:center;gap:12px;background:var(--hsa-bg-soft);border-radius:6px;padding:6px 10px;font-size: 14px;
}
#hsa-archive .hsa-sort-bar__label{color:var(--hsa-text-dim);font-weight:600}
#hsa-archive .hsa-sort-bar__nav ul{
    display:flex!important;flex-wrap:wrap;align-items:center;gap:16px;
    list-style:none!important;margin:0!important;padding:0!important;
}
#hsa-archive .hsa-sort-bar__nav li{list-style:none!important;margin:0!important;padding:0!important}
#hsa-archive .hsa-sort-bar__nav a{
    display:inline-block;padding:4px 0;text-decoration:none;color:var(--hsa-text-dim);
    border-bottom:2px solid transparent;line-height:1.3;
}
#hsa-archive .hsa-sort-bar__nav a:hover{color:var(--hsa-text)}
#hsa-archive .hsa-sort-bar__nav a.is-active{color:var(--hsa-text);font-weight:600;border-color:var(--hsa-text)}
#hsa-archive .hsa-toolbar ul,#hsa-archive .hsa-toolbar ol{list-style:none;margin:0;padding:0}
.hsa-per-page{display:inline-flex;align-items:center;gap:6px}
#hsa-per-page{padding:6px 8px;border:1px solid #ddd;border-radius:6px;background:#fff}

/* ================= 6) Layout / Sidebar ================= */
.hsa-layout{display:grid;grid-template-columns:260px 1fr;gap:16px}
.hsa--sidebar-collapsed .hsa-layout{grid-template-columns:1fr}
.hsa--sidebar-collapsed #hsa-sidebar{display:none!important}
#hsa-sidebar .hsa-box{background:#fff;border:1px solid var(--hsa-border-soft);padding:12px;border-radius:6px}
@media (min-width:993px){#hsa-sidebar .hsa-box{position:sticky;top:80px}}

/* ================= 7) GRID (FacetWP listing) ================= */
/* نسخه قدیمی: 5/6 ستون — با !important به نسخهٔ auto-fill override می‌شود */
.facetwp-template.hsa-products,
.hsa-products.facetwp-template{
    display:grid!important;
    grid-template-columns: repeat(auto-fill, minmax(var(--hsa-card-min), 1fr)) !important;
    gap:1px;
    background:#f0f0f1;
    outline:1px solid #f0f0f1;
    border:0!important;
    list-style:none;margin:0;padding:0;
}

/* حداقل عرض کارت بر اساس عرض صفحه/سایدبار */
.hsa--sidebar-collapsed #hsa-grid{ --hsa-card-min: 240px; }
@media (max-width: 1280px){ #hsa-grid{ --hsa-card-min: 220px; } }
@media (max-width: 992px){  #hsa-grid{ --hsa-card-min: 180px; } }
@media (max-width: 680px){  #hsa-grid{ --hsa-card-min: 160px; } }
@media (max-width: 480px){  #hsa-grid{ --hsa-card-min: 150px; } }

/* گارد در برابر استایل‌های ووکامرس/قالب */
ul.products.facetwp-template{display:grid!important}
.facetwp-template.hsa-products li.product,
.hsa-products.facetwp-template li.product{
    margin:0!important;float:none!important;width:auto!important;min-width:0;display:block;
    background:var(--hsa-bg,#fff);
}

/* ================= 8) Skeleton overlay (aligned) ================= */
#hsa-grid{position:relative;display:block!important}
.hsa-skeletons[hidden]{display:none!important}
.hsa-skeletons{
    position:absolute;inset:0;display:grid;pointer-events:none;
    grid-template-columns: repeat(auto-fill, minmax(var(--hsa-card-min), 1fr)) !important;
    gap:1px;
    background:transparent;
}
.hsa--loading .facetwp-template.hsa-products{opacity:.07;transition:opacity .12s ease}

/* کارت‌های اسکلت (در صورت استفاده از نسخه قدیمی) */
.hsa-card--skeleton{border:1px solid var(--hsa-border-soft);border-radius:var(--hsa-radius);overflow:hidden;background:#fff;display:flex;flex-direction:column}
.hsa-card--skeleton .hsa-card__thumb{position:relative}
.hsa-card--skeleton .hsa-thumb__ratio{display:block;padding-bottom:100%}
.hsa-skel{position:relative;overflow:hidden;background:#f2f2f2}
.hsa-skel::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.5) 50%,rgba(255,255,255,0) 100%);animation:hsa-shimmer 1.1s infinite}
.hsa-skel--thumb{position:absolute;inset:0;border-bottom:1px solid var(--hsa-border)}
.hsa-card--skeleton .hsa-card__body{padding:10px;display:flex;flex-direction:column;gap:8px}
.hsa-skel--line{height:12px;border-radius:6px}
.hsa-skel--title{height:16px;margin-bottom:4px}
.hsa-skel--short{width:60%}
.hsa-skel--btn{height:32px;border-radius:8px;margin-top:6px}
@keyframes hsa-shimmer{100%{transform:translateX(100%)}}

/* ================= 9) Facets basic ================= */
.facetwp-checkbox { font-size: 14px !important; }
.facetwp-facet.facetwp-type-checkboxes { max-height: 190px !important; overflow: auto !important; }
.hsa-facet-wrap{margin-bottom:14px}
.hsa-facet-wrap h4{margin:0 0 8px;font-size:.95rem}
.hsa-facet-actions{display:flex;gap:8px;align-items:center;margin-top:10px}
.facetwp-facet{margin-bottom:10px}

/* ================= 10) Product Card (desktop defaults) ================= */
.hsa-card{border:1px solid var(--hsa-border-soft);border-radius:var(--hsa-radius);overflow:hidden;background:var(--hsa-bg);display:flex;flex-direction:column;position:relative;transition:box-shadow .15s ease,transform .15s ease;}
.hsa-card:active{transform:translateY(0)}

.product-card{
    background:#fff;border-radius:0;box-shadow:none;min-height:380px;padding:15px;
    display:flex;flex-direction:column;align-items:center;position:relative;z-index:1;overflow:hidden;
    border:0!important;
}
.product-card:hover{box-shadow:0 0 12px rgba(0,0,0,.2);z-index:2}
.product-card::before,.product-card::after{content:none!important}

/* badge */
.product-card .badge{position:absolute;top:15px;right:15px;background:var(--hsa-accent);color:#fff;padding:4px 8px;border-radius:5px;font-size:12px;font-weight:700;z-index:10}

/* image gallery (desktop) */
.product-image-gallery{position:relative;width:100%;height:180px;display:flex;justify-content:center;align-items:center;margin-bottom:10px;overflow:hidden;text-decoration:none}
.product-image{max-width:100%;max-height:100%;object-fit:contain;transition:opacity .2s ease}
.gallery-arrow{
    position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.5);color:#fff;
    font-size:18px;border-radius:50%;cursor:pointer;z-index:15;opacity:0;user-select:none;width:30px;height:30px;display:flex;align-items:center;justify-content:center
}
.product-image-gallery:hover .gallery-arrow{opacity:1}
.gallery-arrow.left{right:5px}
.gallery-arrow.right{left:5px}
@media (max-width:992px){.gallery-arrow{opacity:1}}

/* details & tags */
.product-details{width:100%;text-align:right;padding:0 5px}
.product-title{font-size:14px;color:#333;margin:0 0 10px 0;height:40px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4}
.product-title a{text-decoration:none;color:inherit}

.product-tags-container{
    display:flex;flex-wrap:nowrap;gap:8px;margin-bottom:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:5px;cursor:grab;scroll-behavior:smooth
}
.product-tags-container::-webkit-scrollbar{display:none}
.product-tags-container{scrollbar-width:none}
.product-tags-container.active-dragging{cursor:grabbing}
.product-tag-button{
    display:inline-block;white-space:nowrap;padding:4px 8px;background:#f0f0f1;color:#555;border-radius:20px;font-size:12px;text-decoration:none;border:none;cursor:pointer;transition:background-color .2s ease,color .2s ease;flex-shrink:0
}
.product-tag-button:hover{background:#e0e0e0;color:#333}

/* ردیف امتیاز */
.rating-delivery{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    font-size:12px;
    color:#666;
    margin-bottom:10px;
    line-height:1;
}

/* عدد + آیکن ستاره */
.rating{
    display:inline-flex; align-items:center; gap:4px; color:#454545; font-weight:700; line-height:1;
}
.rating .hsa-star{
    width:14px; height:14px; flex:0 0 14px; display:block; vertical-align:middle;
}

.price-section{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px;margin-bottom:2px}
.discount-badge{background:#ef394e;color:#fff;padding:2px 6px;border-radius:5px;font-size:11px;font-weight:700;text-align:center}
.price-details-group{display:flex;flex-direction:column;align-items:flex-end;margin-inline-start:auto}
.current-price{font-size:18px;font-weight:700;color:#333;margin-bottom:4px}
.old-price{font-size:13px;color:#999;text-decoration:line-through}

/* compare action */
.hsa-card__compare-action{
    position:absolute;top:10px;inset-inline-end:10px;
    border:1px solid var(--hsa-border-soft);background:#fff;padding:6px 10px;border-radius:6px;cursor:pointer;white-space:nowrap;
    opacity:0;visibility:hidden;transform:translateY(-6px);
    transition:opacity .15s ease,transform .15s ease,visibility 0s .15s;
}
#hsa-archive.is-comparing .hsa-card__compare-action,
.hsa-container.is-comparing .hsa-card__compare-action{
    opacity: 1; visibility: visible; transform: translateY(0);
    transition: opacity .15s ease,transform .15s ease,visibility 0s;
    font-family: inherit; font-size: 14px; padding: 4px 8px; font-weight: 400; color: #252525;
}
.hsa-card__compare-action.is-active,.hsa-card__compare-action:hover{
    background:#005e96; color:#fff!important; border-color:#005e96;
}

/* Compare tray */
#hsa-compare-widget{display:flex;align-items:center;gap:8px}
#hsa-compare-tray{display:flex;gap:6px;align-items:center}
#hsa-compare-tray .hsa-compare-item{width:38px;height:38px;border:1px solid var(--hsa-border-soft);border-radius:6px;position:relative;overflow:hidden;background:#fff}
#hsa-compare-tray .hsa-compare-item img{width:100%;height:100%;object-fit:cover}
#hsa-compare-tray .hsa-compare-item button{position:absolute;top:0;left:0;width:15px;height:15px;border-radius:50%;border:0;background:#111;color:#fff;font-size:10px;cursor:pointer}
.hsa-compare-cancel{font-size:20px;padding:0 10px;margin-right:10px;padding-left:0}
#hsa-compare-toggle{padding:5px 10px;background:#005e96;border:1px solid #005e96;border-radius:5px}

/* Active filters (chips) */
.hsa-active-filters{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.hsa-chip{background:var(--hsa-chip-bg);border:1px solid var(--hsa-chip-border);border-radius:16px;padding:4px 10px;font-size:.85rem;display:inline-flex;align-items:center;gap:6px}
.hsa-chip button{background:none;border:0;cursor:pointer}

/* Pagination (FacetWP) */
.facetwp-pager-wrap{margin-top:16px;display:flex;justify-content:center}
.facetwp-pager{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
.facetwp-page,.facetwp-pager .dots{display:inline-block;padding:6px 10px;border:1px solid var(--hsa-border-soft);border-radius:6px;background:#fff;text-decoration:none;color:#111;line-height:1.2}
.facetwp-page.active,.facetwp-page:hover{background:#111;color:#fff;border-color:#111}

/* Empty state */
.hsa-empty-state{text-align:center;padding:24px 0;border:1px solid var(--hsa-border);border-radius:var(--hsa-radius-sm);background:#fff}
.hsa-empty-state p{margin:0 0 10px}
.hsa-empty-actions{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:center}

/* Breadcrumbs */
.hsa-breadcrumbs{margin:8px 0 12px;font-size:.9rem}
.hsa-breadcrumbs a{text-decoration:none;color:inherit}

/* ================= 11) Responsive tweaks ================= */
@media (max-width:992px){
    .hsa-layout{grid-template-columns:1fr}
}

@media (max-width:768px){
    /* نوار مرتب‌سازی دسکتاپ حذف؛ اسکرول افقی چیپس‌ها/مرتب‌سازی اگر لازم شد */
    #hsa-archive .hsa-sort-bar__label{ display:none; }
    #hsa-archive .hsa-sort-bar__nav ul{
        display:flex; gap:8px; overflow-x:auto; white-space:nowrap; padding-bottom:4px;
        -webkit-overflow-scrolling:touch;
    }
    #hsa-archive .hsa-sort-bar__nav ul::-webkit-scrollbar{ display:none; }

    #hsa-active-filters{
        display:flex; gap:8px; overflow-x:auto; padding:6px 0;
        -webkit-overflow-scrolling:touch;
    }
    #hsa-active-filters::-webkit-scrollbar{ display:none; }
}

/* ================= 12) Mobile product card: single column, image RIGHT ================= */
@media (max-width: 680px){
    /* گرید یک‌ستونه */
    .facetwp-template.hsa-products,
    .hsa-products.facetwp-template{
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .product-card{
        display: grid; grid-template-columns: 36% 1fr;; /* ستون 1: متن (چپ)، ستون 2: تصویر (راست) */
        gap: 10px;
        align-items: start;
        padding: 10px !important;
        min-height: auto !important;
    }

    /* تصویر در ستون راست (ستون دوم) */
    .product-image-gallery{
        grid-column: 1; grid-row: 1 / span 3;
        aspect-ratio: 1/1; width: 100%; height: auto !important;
        border-radius: 10px; overflow: hidden;
        margin: 0; /* بدون فاصلهٔ پایین */
    }
    .product-image-gallery .product-image,
    .product-image{
        width: 100%; height: 100%; object-fit: contain;
    }

    /* متن/جزئیات در ستون چپ (ستون اول) */
    .product-title{ grid-column: 1; }
    .product-title a{
        font-size: 14px; line-height: 1.5;
        display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    }
    .rating-delivery{ grid-column: 1; }
    .price{ grid-column: 1; font-size: 14px; }
    .product-card .btn,
    .product-card .hsa-btn{ grid-column: 1; min-height: 34px; }
}

/* ================= 13) Swiper nav (hide on small screens) ================= */
@media (max-width: 640px){
    .swiper-button-prev, .swiper-button-next{ display:none !important; }
}

/* ================= 14) Description toggler ================= */
.hsa-archive-description{
    margin-top:32px;border:1px solid var(--hsa-border-soft);border-radius:6px;background:#fff;padding:16px;position:relative;overflow:hidden;
}
.hsa-desc-content{max-height:200px;overflow:hidden;position:relative}
.hsa-archive-description.is-expanded .hsa-desc-content{max-height:none}
.hsa-desc-toggle{
    margin-top:12px;background:transparent;border:1px solid var(--hsa-border);border-radius:6px;padding:6px 12px;cursor:pointer;font-size:.9rem;color:var(--hsa-text);
}
.hsa-desc-toggle:hover{background:var(--hsa-primary);color:#fff;border-color:var(--hsa-primary)}

/* ================= 15) Sort modal list ================= */
.hsa-sort-list{ list-style: none; margin: 0; padding: 0; }
.hsa-sort-list li{ border-bottom: 1px solid #f2f3f5; }
.hsa-sort-list a{ display:block; padding: 14px 6px; font-size: 15px; text-decoration:none; color:#111827; }
.hsa-sort-list a[aria-current="true"]{ font-weight:700; }
