/* ==========================================================================
   Game Store Woo – App UI
   شیک، مینیمال، ریسپانسیو، RTL-friendly
   ========================================================================= */

/* ───────────────────────────
   0) Fonts – Vazirmatn (from /fonts)
   همهٔ سایت (از جمله دکمه‌ها و فیلدها) از این فونت استفاده می‌کند.
   مسیر از assets/app.css → ../fonts/...
   ─────────────────────────── */

/* Variable font (preferred) */
@font-face{
  font-family: "Vazirmatn";
  src: url("../fonts/Vazirmatn[wght].woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* Fallback static weights when variable fonts unsupported */
@supports not (font-variation-settings: normal){
  @font-face{font-family:"Vazirmatn";src:url("../fonts/Vazirmatn-Thin.woff2") format("woff2");font-weight:100;font-style:normal;font-display:swap}
  @font-face{font-family:"Vazirmatn";src:url("../fonts/Vazirmatn-ExtraLight.woff2") format("woff2");font-weight:200;font-style:normal;font-display:swap}
  @font-face{font-family:"Vazirmatn";src:url("../fonts/Vazirmatn-Light.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
  @font-face{font-family:"Vazirmatn";src:url("../fonts/Vazirmatn-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
  @font-face{font-family:"Vazirmatn";src:url("../fonts/Vazirmatn-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
  @font-face{font-family:"Vazirmatn";src:url("../fonts/Vazirmatn-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
  @font-face{font-family:"Vazirmatn";src:url("../fonts/Vazirmatn-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
  @font-face{font-family:"Vazirmatn";src:url("../fonts/Vazirmatn-ExtraBold.woff2") format("woff2");font-weight:800;font-style:normal;font-display:swap}
  @font-face{font-family:"Vazirmatn";src:url("../fonts/Vazirmatn-Black.woff2") format("woff2");font-weight:900;font-style:normal;font-display:swap}
}

/* استک فونت یکپارچه (برای کل سایت) */
:root{
  --font-body: "Vazirmatn", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

/* ───────────────────────────
   1) Tokens & Base Resets
   ─────────────────────────── */
:root{
  --background:0 0% 100%;
  --foreground:222.2 84% 4.9%;
  --card:0 0% 100%;
  --card-foreground:222.2 84% 4.9%;
  --popover:0 0% 100%;
  --popover-foreground:222.2 84% 4.9%;
  --primary:222.2 47.4% 11.2%;
  --primary-foreground:210 40% 98%;
  --secondary:210 40% 96.1%;
  --secondary-foreground:222.2 47.4% 11.2%;
  --muted:210 40% 96.1%;
  --muted-foreground:215.4 16.3% 46.9%;
  --accent:187 90% 45%;
  --accent-foreground:0 0% 100%;
  --destructive:0 84.2% 60.2%;
  --destructive-foreground:210 40% 98%;
  --border:214.3 31.8% 91.4%;
  --input:214.3 31.8% 91.4%;
  --ring:222.2 84% 4.9%;
  --radius:.8rem;

  /* Extended tokens */
  --elev-sm: 0 1px 2px rgba(0,0,0,.06), 0 1px 1px rgba(0,0,0,.04);
  --elev-md: 0 4px 14px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.06);
  --elev-lg: 0 18px 40px rgba(0,0,0,.14);
  --blur: 10px;
  --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem; --sp-5:1.25rem; --sp-6:1.5rem;
  --tr-fast:160ms; --tr:240ms; --tr-slow:420ms;
  --container-max:1200px;
  --grid-gap:.85rem;

  /* Gradients */
  --grad-1: linear-gradient(135deg, hsla(var(--accent)/.15), hsla(var(--primary)/.06));
  --grad-2: linear-gradient(180deg, hsla(var(--secondary)/.6), hsla(var(--card)/.6));
}
.dark{
  --background:0 0% 20%;
  --foreground:0 0% 98%;
  --card:0 0% 22%;
  --card-foreground:0 0% 98%;
  --popover:0 0% 15%;
  --popover-foreground:0 0% 98%;
  --primary:0 0% 0%;
  --primary-foreground:0 0% 98%;
  --secondary:0 0% 30%;
  --secondary-foreground:0 0% 98%;
  --muted:0 0% 30%;
  --muted-foreground:0 0% 63.9%;
  --accent:187 90% 45%;
  --accent-foreground:0 0% 100%;
  --destructive:0 62.8% 30.6%;
  --destructive-foreground:0 0% 98%;
  --border:0 0% 30%;
  --input:0 0% 30%;
  --ring:187 90% 45%;

  --grad-1: linear-gradient(135deg, hsla(var(--accent)/.22), hsla(var(--primary)/.14));
  --grad-2: linear-gradient(180deg, hsla(var(--secondary)/.4), hsla(var(--card)/.7));
}

/* ریست‌های پایه + یکپارچه‌سازی فونت برای کنترل‌های فرم و دکمه‌ها */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html, body{ font-family: var(--font-body); }
body{
  background: radial-gradient(1200px 500px at 50% -10%, hsla(var(--accent)/.06), transparent 60%), hsl(var(--background));
  color:hsl(var(--foreground));
  margin:0;
  line-height:1.6;
  accent-color:hsl(var(--accent));
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
/* اطمینان از استفادهٔ فونت در همهٔ کنترل‌ها و دکمه‌ها */
button, input, select, textarea{
  font-family: inherit;
  font-size: 100%;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
:focus-visible{
  outline:2px solid hsla(var(--accent)/.9);
  outline-offset:2px;
  border-radius:calc(var(--radius) - 2px);
}

/* Scrollbars */
.custom-scrollbar{scrollbar-width:thin;scrollbar-color:hsla(var(--accent)/.9) hsla(var(--secondary)/.6)}
.custom-scrollbar::-webkit-scrollbar{width:8px;height:8px}
.custom-scrollbar::-webkit-scrollbar-track{background:hsla(var(--secondary)/.6);border-radius:12px}
.custom-scrollbar::-webkit-scrollbar-thumb{background:hsla(var(--accent)/.9);border-radius:12px}
.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:hsla(var(--accent)/.75)}

/* NEW: قفل اسکرول صفحه وقتی مودال باز است */
html.gsw-scroll-lock, body.gsw-scroll-lock{ overflow:hidden }

/* ───────────────────────────
   2) Layout – Header / Container / Main
   ─────────────────────────── */
.gsw-header{
  position:sticky; top:0; inset-inline:0;
  display:flex; align-items:center; justify-content:space-between;
  padding:.65rem 1rem;
  backdrop-filter: blur(var(--blur));
  background: color-mix(in oklab, hsl(var(--background)) 72%, transparent);
  border-bottom:1px solid hsl(var(--border));
  z-index:1000;
}
.gsw-header::after{
  content:""; position:absolute; inset:0;
  background: var(--grad-1); pointer-events:none; opacity:.4;
}
.gsw-header-left,.gsw-header-right{display:flex; gap:.5rem; align-items:center}
.gsw-header-center .gsw-brand{
  display:inline-flex; align-items:center; gap:.5rem;
  font-weight:700; letter-spacing:.2px;
  padding:.25rem .5rem; border-radius:999px;
  background:hsla(var(--accent)/.08);
  border:1px solid hsla(var(--accent)/.18);
  box-shadow: var(--elev-sm) inset;
  transition: transform var(--tr);
}
.gsw-header-center .gsw-brand:hover{transform:translateY(-1px)}

.gsw-main{padding:1rem}
.gsw-container{max-width:var(--container-max);margin-inline:auto;padding:1rem}

.gsw-hero{
  border:1px solid hsl(var(--border));
  border-radius:calc(var(--radius) + .2rem);
  padding:1rem 1.25rem;
  background:var(--grad-2);
  box-shadow:var(--elev-sm);
}
.gsw-hero-title{margin:.25rem 0;font-size:clamp(1.2rem,2.5vw,1.6rem)}
.gsw-hero-sub{color:hsl(var(--muted-foreground));margin-top:.25rem}

/* ───────────────────────────
   3) Controls – Buttons & Badges
   ─────────────────────────── */
.gsw-btn,
.gsw-cart-trigger,.gsw-filter-trigger,.gsw-cat-close,
.gsw-modal .button,.gsw-pagination button{
  --btn-bg:hsl(var(--secondary));
  --btn-fg:hsl(var(--secondary-foreground));
  --btn-bd:hsl(var(--border));
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font: inherit; /* تضمین استفاده از Vazirmatn */
  font-size:.95rem;
  padding:.55rem .9rem;
  border-radius:calc(var(--radius) + 4px);
  border:1px solid var(--btn-bd);
  background:var(--btn-bg);
  color:var(--btn-fg);
  cursor:pointer;
  transition: box-shadow var(--tr), transform var(--tr), background var(--tr);
  box-shadow: var(--elev-sm);
}
.gsw-btn:hover,
.gsw-cart-trigger:hover,.gsw-filter-trigger:hover,.gsw-cat-close:hover,
.gsw-modal .button:hover,.gsw-pagination button:hover{
  transform:translateY(-1px); box-shadow:var(--elev-md);
}
.gsw-btn:active,
.gsw-cart-trigger:active,.gsw-filter-trigger:active,.gsw-cat-close:active,
.gsw-modal .button:active,.gsw-pagination button:active{
  transform:translateY(0); box-shadow:var(--elev-sm);
}
.gsw-btn--primary{
  --btn-bg: linear-gradient(180deg, hsla(var(--accent)/.95), hsla(var(--accent)/.85));
  --btn-fg: hsl(var(--accent-foreground));
  --btn-bd: hsla(var(--accent)/.7);
}
.gsw-btn--danger{
  --btn-bg: linear-gradient(180deg, hsla(var(--destructive)/.92), hsla(var(--destructive)/.85));
  --btn-fg: hsl(var(--destructive-foreground));
  --btn-bd: hsla(var(--destructive)/.7);
}
.gsw-cart-count-badge{
  display:inline-block; min-width:1.25rem; padding:0 .35rem; margin-inline-start:.35rem;
  background: linear-gradient(180deg, hsla(var(--accent)/1), hsla(var(--accent)/.85));
  color:hsl(var(--accent-foreground)); border-radius:999px; text-align:center; font-size:.72rem;
  box-shadow: 0 0 0 2px color-mix(in oklab, hsl(var(--background)) 75%, transparent);
}

/* Cart bump */
@keyframes gsw-bump{
  0%{transform:scale(1)}20%{transform:scale(1.15)}40%{transform:scale(.92)}
  60%{transform:scale(1.06)}80%{transform:scale(1)}100%{transform:scale(1)}
}
.gsw-cart-bump{animation:gsw-bump 600ms cubic-bezier(.2,.8,.2,1)}

/* ───────────────────────────
   4) Drawer Panel – Filters (Container)
   ─────────────────────────── */
.gsw-cat-drawer{
  position:fixed; top:0; right:0; left:auto;
  height:100vh; width:min(86vw,440px);
  background: color-mix(in oklab, hsl(var(--card)) 92%, transparent);
  border-left:1px solid hsl(var(--border));
  box-shadow: var(--elev-lg);
  z-index:1001;
  backdrop-filter: blur(var(--blur));

  transform:translateX(110%);
  opacity:0; visibility:hidden; pointer-events:none;
  transition: transform var(--tr-slow), opacity var(--tr-fast), visibility var(--tr-fast);
}
.gsw-cat-drawer[hidden]{display:none}
.gsw-cat-drawer:not([hidden]){
  transform:translateX(0); opacity:1; visibility:visible; pointer-events:auto;
}
.gsw-cat-drawer__inner{padding:1rem; height:100%; overflow:auto}
.gsw-filter-lists{display:grid; gap:.75rem}
.gsw-filter-block h4{margin:.25rem 0 .35rem; font-size:.95rem; opacity:.9}

/* ───────────────────────────
   4.a) Filter Menus – Minimal (NO bullets)
   ─────────────────────────── */
#gsw-cat-list{
  list-style:none; margin:0; padding:0;
  display:grid; gap:.4rem;
}
#gsw-cat-list li{margin:0; padding:0}
#gsw-cat-list li::marker{content:""}
#gsw-cat-list .gsw-btn{width:100%; justify-content:flex-start}

/* WP menu fallback */
#gsw-cat-drawer .gsw-filter-nav,
#gsw-cat-drawer .menu{
  list-style:none; margin:.5rem 0 0; padding:0; display:block;
}
#gsw-cat-drawer .gsw-filter-nav li::marker,
#gsw-cat-drawer .menu li::marker{content:""}
#gsw-cat-drawer .gsw-filter-nav > li,
#gsw-cat-drawer .menu > li{margin:.25rem 0}

#gsw-cat-drawer .gsw-filter-nav a,
#gsw-cat-drawer .menu a{
  display:flex; align-items:center; justify-content:space-between; gap:.5rem;
  padding:.5rem .65rem;
  border-radius:10px;
  border:1px solid transparent;
  background:transparent;
  color:inherit; font-weight:600;
  transition: background var(--tr), border-color var(--tr), transform var(--tr);
}
#gsw-cat-drawer .gsw-filter-nav a:hover,
#gsw-cat-drawer .menu a:hover{
  background: color-mix(in oklab, hsl(var(--secondary)) 45%, transparent);
  border-color:hsl(var(--border));
  transform:translateY(-1px);
}

/* Caret for parents */
#gsw-cat-drawer .gsw-filter-nav a.gsw-menu-parent::after,
#gsw-cat-drawer .menu a.gsw-menu-parent::after{
  content:"▸"; font-size:.9rem; opacity:.85; margin-inline-start:.5rem;
  transition:transform var(--tr);
}
#gsw-cat-drawer li.is-open > a.gsw-menu-parent::after{transform:rotate(90deg)}

/* Active state */
#gsw-cat-drawer .gsw-filter-nav a[data-active="true"],
#gsw-cat-drawer .gsw-filter-nav a[aria-current="true"],
#gsw-cat-drawer .menu a[data-active="true"],
#gsw-cat-drawer .menu a[aria-current="true"]{
  background: color-mix(in oklab, hsl(var(--accent)) 18%, transparent);
  border-color: hsla(var(--accent)/.35);
  color: hsl(var(--accent-foreground));
}

/* Submenu */
#gsw-cat-drawer .gsw-filter-nav .sub-menu,
#gsw-cat-drawer .menu .sub-menu{
  overflow:hidden; max-height:0; padding:0;
  border-inline-start:1px dashed hsl(var(--border));
  margin-inline-start:.65rem;
  transition:max-height var(--tr-slow), padding var(--tr-fast), margin var(--tr-fast);
}
#gsw-cat-drawer li.is-open > .sub-menu{max-height:800px; padding:.25rem 0 .35rem}
#gsw-cat-drawer .sub-menu > li{margin:.2rem 0}
#gsw-cat-drawer .sub-menu a{font-weight:500; background:transparent; border-color:transparent}
#gsw-cat-drawer .sub-menu a:hover{transform:none; background: color-mix(in oklab, hsl(var(--secondary)) 35%, transparent)}

/* ───────────────────────────
   5) Products Grid & Cards
   ─────────────────────────── */
ul.gsw-products-grid{
  display:grid;
  grid-template-columns:repeat(var(--gsw-cols-mobile,2),1fr);
  gap:var(--grid-gap);
  padding:0; list-style:none;
}
@media (min-width:640px){ ul.gsw-products-grid{ grid-template-columns:repeat(3,1fr) } }
@media (min-width:960px){ ul.gsw-products-grid{ grid-template-columns:repeat(4,1fr) } }

.gsw-product-card{
  position:relative; overflow:hidden; list-style:none;
  border:1px solid hsl(var(--border)); border-radius:calc(var(--radius) + 4px);
  background:hsl(var(--card));
  box-shadow:var(--elev-sm);
  transition:transform var(--tr), box-shadow var(--tr), border-color var(--tr);
  isolation:isolate;
}
.gsw-product-card::before{
  content:""; position:absolute; inset:0;
  background: radial-gradient(300px 90px at 20% 0%, hsla(var(--accent)/.09), transparent 60%);
  pointer-events:none; opacity:0; transition:opacity var(--tr);
}
.gsw-product-card:hover{transform:translateY(-4px); box-shadow:var(--elev-md); border-color:hsla(var(--accent)/.35)}
.gsw-product-card:hover::before{opacity:1}

.gsw-product-card .woocommerce-LoopProduct-link{display:block}
.gsw-product-card img{
  width:100%; aspect-ratio:4/5; object-fit:cover; display:block;
  background:linear-gradient(180deg, hsla(var(--secondary)/.8), hsla(var(--card)/.8));
  transition:transform var(--tr-slow);
}
.gsw-product-card:hover img{transform:scale(1.03)}
.woocommerce-loop-product__title{
  font-size:.98rem; font-weight:600; margin:.55rem .65rem .35rem; padding:0; line-height:1.45;
}
.gsw-card-bottom{
  display:flex; justify-content:space-between; align-items:center; gap:.5rem;
  padding:.6rem .65rem; border-top:1px solid hsl(var(--border));
  background: color-mix(in oklab, hsl(var(--card)) 94%, transparent);
}
.gsw-card-bottom .price{font-weight:700}
.gsw-quick-view{cursor:pointer; white-space:nowrap; background:linear-gradient(180deg, hsla(var(--primary)/.04), hsla(var(--primary)/.08))}

/* Badges */
.onsale{
  position:absolute; inset-block-start:.6rem; inset-inline-start:.6rem; z-index:2;
  padding:.3rem .55rem; font-size:.75rem; font-weight:700;
  color:hsl(var(--accent-foreground));
  background: linear-gradient(180deg, hsla(var(--accent)/1), hsla(var(--accent)/.9));
  border-radius:999px; box-shadow:var(--elev-sm);
}

/* Skeleton */
.gsw-skeleton{position:relative; overflow:hidden; background:hsla(var(--muted)/.9); inline-size:100%; block-size:100%; border-radius:calc(var(--radius) + 4px)}
.gsw-skeleton::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(90deg, transparent, hsla(var(--card-foreground)/.05), transparent);
  transform:translateX(-100%); animation:gsw-shimmer 1.4s infinite linear;
}
@keyframes gsw-shimmer{to{transform:translateX(100%)}}

/* ───────────────────────────
   6) Modal (Quick View) – ریسپانسیو + دیوایدر داخلی
   ─────────────────────────── */
.gsw-modal-backdrop{
  position:fixed; inset:0; background:rgba(0,0,0,.45);
  display:flex; align-items:center; justify-content:center;
  z-index:2000; animation:gsw-fade .18s ease-out;

  /* NEW: سازگاری بهتر لمسی روی موبایل */
  touch-action: none;
}
@keyframes gsw-fade{from{opacity:.6}to{opacity:1}}

.gsw-modal{
  background: color-mix(in oklab, hsl(var(--card)) 96%, transparent);
  border-radius:calc(var(--radius) + 4px);
  max-width:min(960px,96vw); width:96vw;

  /* CHANGED: ایزوله کردن اسکرول + ارتفاع امن برای iOS */
  overscroll-behavior: contain;
  max-height: min(90vh, calc(100svh - 2rem));

  overflow:auto;
  padding:1rem; border:1px solid hsl(var(--border));
  box-shadow:var(--elev-lg);
  backdrop-filter: blur(var(--blur));
  transform:translateY(6px) scale(.99);
  animation:gsw-pop .22s ease-out forwards;
}
@keyframes gsw-pop{to{transform:translateY(0) scale(1)}}

/* Header: چسبان با خط جداکننده */
.gsw-modal__header{
  position:sticky; top:0; inset-inline:0; z-index:3;
  display:flex; justify-content:space-between; align-items:center; gap:.75rem;
  padding-bottom:.5rem; margin-bottom:.65rem;
  background:inherit;
  border-bottom:1px dashed hsl(var(--border));
  backdrop-filter: blur(2px);
}
.gsw-modal__header h3{margin:0; font-size:1.05rem}
.gsw-modal__header button{border:0; background:transparent; font-size:1.4rem; cursor:pointer; line-height:1; padding:.2rem .4rem; border-radius:10px}
.gsw-modal__header button:hover{background:hsla(var(--secondary)/.7)}

/* Grid inside modal */
.gsw-modal__content{
  display:grid; grid-template-columns: 1.1fr .9fr; gap:1rem; align-items:start;
}
@media (max-width: 860px){
  .gsw-modal__content{ grid-template-columns: 1fr }
}

/* Gallery / Cover */
.gsw-modal__gallery{ display:block }
.gsw-modal__cover{ position:relative }
.gsw-modal__cover img{
  width:100%;
  max-height:420px;
  object-fit:cover;
  border-radius:12px;
  box-shadow: var(--elev-md);
}

/* Right column with inner divider */
.gsw-modal__right{
  padding-inline-start:1rem;
  border-inline-start:1px dashed hsl(var(--border));
}
@media (max-width: 860px){
  .gsw-modal__right{
    padding-inline-start:0;
    border-inline-start:none;
    border-top:1px dashed hsl(var(--border));
    padding-top:.75rem;
  }
}

/* Section helper → دیوایدر داخلی + فاصله‌ها */
.gsw-section{
  padding-block:.6rem;
  border-top:1px dashed hsl(var(--border));
}
.gsw-section:first-child{border-top:0; padding-top:0}

/* Price chip */
.gsw-modal__price{
  font-weight: 800;
  font-size: 1.1rem;
  padding: .4rem .6rem;
  border: 1px solid hsl(var(--border));
  border-radius: 10px;
  background: color-mix(in oklab, hsl(var(--card)) 96%, transparent);
  align-self:flex-start;
  display:inline-flex;
  box-shadow:var(--elev-sm);
}

/* Description text */
.gsw-modal__desc{ line-height:1.75; color: hsl(var(--card-foreground)); }

/* Actions: چسبان در موبایل + پس‌زمینه ملایم */
.gsw-modal__actions{
  display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; margin-top:.25rem;
}
@media (max-width: 860px){
  .gsw-modal__actions{
    position:sticky; bottom:calc(0px + env(safe-area-inset-bottom));
    background: linear-gradient(180deg, hsla(var(--card)/.92), hsla(var(--card)/.98));
    border-top:1px solid hsl(var(--border));
    padding:.6rem .25rem;
    margin-top:.75rem;
    z-index:2;
    backdrop-filter: blur(4px);
  }
}
.gsw-modal .gsw-trailer{aspect-ratio:16/9; width:100%; border:0; border-radius:12px; box-shadow:var(--elev-md)}

/* Private note */
.gsw-private-note{
  margin-top:.25rem; padding:.9rem 1rem;
  border:1px dashed hsl(var(--border)); background:hsla(var(--muted)/.18);
  border-radius:calc(var(--radius) + 4px); box-shadow:var(--elev-sm) inset;
}
.gsw-private-note h1,
.gsw-private-note h2,
.gsw-private-note h3,
.gsw-private-note h4{margin-top:.25rem; margin-bottom:.35rem; font-size:1rem}
.gsw-private-note p{margin:.35rem 0}
.gsw-private-note p:last-child{margin-bottom:0}
.gsw-private-note::before{
  content:"Private note"; display:inline-block;
  font-size:.72rem; font-weight:700; letter-spacing:.2px;
  padding:.2rem .45rem; margin-bottom:.4rem;
  color:hsl(var(--accent-foreground));
  background: linear-gradient(180deg, hsla(var(--accent)/1), hsla(var(--accent)/.88));
  border-radius:999px; box-shadow:var(--elev-sm);
}

/* Trailer badge harmony */
.gsw-trailer-badge{
  font-size:.9rem; padding:.45rem .7rem;
  border-radius:calc(var(--radius) + 4px);
  border:1px solid hsla(var(--ring)/.35);
  background: linear-gradient(180deg, hsla(var(--ring)/.08), hsla(var(--card)/.96));
  box-shadow:var(--elev-sm);
}
.gsw-trailer-badge:hover{box-shadow:var(--elev-md); transform:translateY(-1px)}
.gsw-modal .button:focus-visible,
.gsw-trailer-badge:focus-visible{
  outline:2px solid hsla(var(--accent)/.9);
  outline-offset:2px;
  border-radius:calc(var(--radius) - 2px);
}

/* قدیمی: اگر جایی دکمه Quick View مانده، مخفی‌اش کن (لینک کارت فعال است) */
.gsw-quick-view{ display:none !important }

/* ───────────────────────────
   7) Mini Cart (panel) + Items
   ─────────────────────────── */
.gsw-mini-cart{
  position:fixed; top:0; left:0; right:auto;
  height:100vh; width:min(86vw,420px); max-width:420px;
  background: color-mix(in oklab, hsl(var(--card)) 95%, transparent);
  border-right:1px solid hsl(var(--border));
  box-shadow:var(--elev-lg);
  border-radius:0 calc(var(--radius) + 6px) calc(var(--radius) + 6px) 0;
  z-index:1100; backdrop-filter: blur(calc(var(--blur) - 2px));

  transform:translateX(-110%);
  opacity:0; visibility:hidden; pointer-events:none;
  transition: transform var(--tr-slow), opacity var(--tr-fast), visibility var(--tr-fast);
}
.gsw-mini-cart[hidden]{display:none}
.gsw-mini-cart:not([hidden]){transform:translateX(0); opacity:1; visibility:visible; pointer-events:auto}
.gsw-mini-cart__panel{padding:1rem; height:100%; overflow:auto}
.gsw-mini-cart__header{
  position:sticky; top:0; inset-inline:0;
  display:flex; align-items:center; justify-content:space-between;
  padding-bottom:.5rem; margin-bottom:.75rem;
  background:inherit; border-bottom:1px solid hsl(var(--border));
}

/* Empty message */
.gsw-mini-cart__items .woocommerce-mini-cart__empty-message{
  text-align:center; padding:1rem 0; color:hsl(var(--muted-foreground));
}

body:has(#gsw-mini-cart:not([hidden])) .gsw-cart-trigger{
  --btn-bg: linear-gradient(180deg, hsla(var(--accent)/.95), hsla(var(--accent)/.85));
  --btn-fg: hsl(var(--accent-foreground));
  --btn-bd: hsla(var(--accent)/.7);
}

/* Backdrop without extra markup */
body:has(#gsw-mini-cart:not([hidden]))::before{
  content:""; position:fixed; inset:0;
  background:rgba(0,0,0,.4); backdrop-filter:blur(2px); z-index:1090;
}

/* Items & buttons inside mini cart */
.gsw-mini-cart__items .woocommerce-mini-cart{
  list-style:none; margin:0; padding:0;
  display:flex; flex-direction:column; gap:.65rem;
}
.gsw-mini-cart__items .woocommerce-mini-cart li.woocommerce-mini-cart-item{
  position:relative;
  display:grid; grid-template-columns:64px 1fr auto;
  align-items:center; gap:.6rem;
  padding:.55rem .6rem;
  border:1px solid hsl(var(--border));
  border-radius:calc(var(--radius) + 6px);
  background: color-mix(in oklab, hsl(var(--card)) 96%, transparent);
  box-shadow:var(--elev-sm);
}
.gsw-mini-cart__items .woocommerce-mini-cart img{
  width:64px; height:64px; object-fit:cover; border-radius:12px; box-shadow:var(--elev-sm);
}
.gsw-mini-cart__items .woocommerce-mini-cart .mini_cart_item > a:not(.remove){
  font-weight:700; line-height:1.35;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  margin-bottom:.25rem;
}
.gsw-mini-cart__items .woocommerce-mini-cart .quantity{font-size:.85rem; color:hsl(var(--muted-foreground))}
.gsw-mini-cart__items .woocommerce-mini-cart .variation{margin:.2rem 0 0; font-size:.8rem; color:hsl(var(--muted-foreground))}
.gsw-mini-cart__items .woocommerce-mini-cart .variation dt{font-weight:600; margin-inline-end:.25rem}
.gsw-mini-cart__items .woocommerce-mini-cart .variation dd{margin:0 .5rem 0 0}
.gsw-mini-cart__items .woocommerce-mini-cart a.remove,
.gsw-mini-cart__items .remove_from_cart_button{
  position:absolute; inset-inline-end:.35rem; inset-block-start:.35rem;
  width:28px; height:28px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid hsla(var(--destructive)/.55);
  background: linear-gradient(180deg, hsla(var(--destructive)/.12), hsla(var(--card)/.96));
  color:hsl(var(--destructive)); text-decoration:none; font-weight:700;
  transition:transform var(--tr), box-shadow var(--tr), background var(--tr), border-color var(--tr);
}
.gsw-mini-cart__items .woocommerce-mini-cart a.remove:hover{
  transform:translateY(-1px); border-color:hsla(var(--destructive)/.7); box-shadow:var(--elev-md);
}
.gsw-mini-cart__items .woocommerce-mini-cart .mini_cart_item .amount{font-weight:800; white-space:nowrap}

.gsw-mini-cart .woocommerce-mini-cart__total{
  display:flex; align-items:center; justify-content:space-between;
  gap:.75rem; margin-top:.75rem; padding-top:.75rem;
  border-top:1px solid hsl(var(--border)); font-weight:800;
}
.gsw-mini-cart .woocommerce-mini-cart__buttons{
  display:flex; gap:.5rem; flex-wrap:wrap; justify-content:stretch; margin-top:.75rem;
}
.gsw-mini-cart .woocommerce-mini-cart__buttons .button{
  flex:1 1 auto; text-align:center;
  padding:.6rem .9rem; border-radius:calc(var(--radius) + 6px);
  border:1px solid hsl(var(--border));
  background: linear-gradient(180deg, hsla(var(--secondary)/.95), hsla(var(--secondary)/.85));
  color:hsl(var(--secondary-foreground));
  box-shadow:var(--elev-sm);
  transition:transform var(--tr), box-shadow var(--tr), background var(--tr), border-color var(--tr);
}
.gsw-mini-cart .woocommerce-mini-cart__buttons .button:hover{transform:translateY(-2px); box-shadow:var(--elev-md)}
.gsw-mini-cart .woocommerce-mini-cart__buttons .checkout{
  border-color:hsla(var(--accent)/.65);
  background: linear-gradient(180deg, hsla(var(--accent)/.96), hsla(var(--accent)/.86));
  color:hsl(var(--accent-foreground));
}
@media (max-width:420px){
  .gsw-mini-cart .woocommerce-mini-cart__buttons{flex-direction:column}
  .gsw-mini-cart .woocommerce-mini-cart__buttons .button{width:100%}
}

/* ───────────────────────────
   8) Pagination
   ─────────────────────────── */
.gsw-pagination{
  display:flex; gap:.5rem; justify-content:center; align-items:center; margin-top:1rem;
}
.gsw-pagination button{
  padding:.55rem .8rem; border:1px solid hsl(var(--border));
  background:hsla(var(--secondary)/.85);
  border-radius:12px; cursor:pointer; min-width:2.25rem;
  transition:transform var(--tr), box-shadow var(--tr), background var(--tr);
  font: inherit; /* استفاده از Vazirmatn */
}
.gsw-pagination button:hover{transform:translateY(-2px); box-shadow:var(--elev-md)}
.gsw-pagination button[data-active="true"]{
  background: linear-gradient(180deg, hsla(var(--accent)/.95), hsla(var(--accent)/.82));
  color:hsl(var(--accent-foreground)); border-color:hsla(var(--accent)/.7);
}

/* ───────────────────────────
   9) Empty State & Footer
   ─────────────────────────── */
.gsw-empty{
  padding:1.25rem 0; text-align:center; color:hsl(var(--muted-foreground));
  border:1px dashed hsl(var(--border)); border-radius:calc(var(--radius) + 4px);
  background:hsla(var(--muted)/.25);
}
.gsw-footer{
  margin-top:2rem; padding:1.25rem; text-align:center; color:hsl(var(--muted-foreground));
  border-top:1px solid hsl(var(--border));
}

/* ───────────────────────────
   10) Toasts – Styled Notifications (BOTTOM)
   ─────────────────────────── */
#gsw-toast-stack{
  position:fixed;
  inset-block-end:1rem;
  inset-block-start:auto;
  inset-inline-end:1rem;
  display:flex; flex-direction:column; gap:.5rem;
  z-index:3000; pointer-events:none; max-width:min(92vw,340px);
}
@media (max-width:560px){
  #gsw-toast-stack{ inset-inline:1rem; }
}
.gsw-toast{
  pointer-events:auto;
  display:grid; grid-template-columns:auto 1fr auto; gap:.65rem; align-items:center;
  padding:.7rem .9rem; border-radius:16px; border:1px solid hsl(var(--border));
  background: color-mix(in oklab, hsl(var(--card)) 96%, transparent);
  box-shadow:var(--elev-md); animation:toast-enter .22s ease-out;
  font: inherit; /* متن توست‌ها هم با Vazirmatn */
}
@keyframes toast-enter{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}
.gsw-toast__icon{font-size:1.15rem; line-height:1}
.gsw-toast__title{font-weight:700; font-size:.95rem}
.gsw-toast__desc{font-size:.85rem; color:hsl(var(--muted-foreground))}
.gsw-toast__cta{
  display:inline-flex; gap:.35rem; align-items:center; white-space:nowrap;
  padding:.45rem .7rem; border-radius:12px; border:1px solid hsla(var(--accent)/.5);
  background: linear-gradient(180deg, hsla(var(--accent)/.1), hsla(var(--accent)/.08));
  color:hsl(var(--accent-foreground));
}

/* وضعیت‌های توست */
.gsw-toast--success{border-color:hsla(var(--accent)/.55)}
.gsw-toast--error{
  border-color:hsla(var(--destructive)/.6);
  background: linear-gradient(180deg, hsla(var(--destructive)/.10), hsla(var(--card)/.95));
}
.gsw-toast--info{
  border-color:hsla(var(--ring)/.35);
  background: linear-gradient(180deg, hsla(var(--ring)/.08), hsla(var(--card)/.96));
}
.gsw-toast__close{
  border:0; background:transparent; font-size:1.15rem; cursor:pointer; line-height:1; color:hsl(var(--muted-foreground));
}
.gsw-toast__close:hover{filter:brightness(1.2)}

/* ───────────────────────────
   11) Utilities & A11y
   ─────────────────────────── */
.hide{display:none !important}
.sr-only{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.x-divider{height:1px; background:hsl(var(--border)); margin:.5rem 0; opacity:.7}

/* Woo price tweaks */
.price ins{text-decoration:none}
.price del{opacity:.6; margin-inline-start:.3rem}

/* ───────────────────────────
   12) RTL Friendly Logical Properties
   ─────────────────────────── */
:root{ --inline-start:left; --inline-end:right }
html[dir="rtl"] :root{ --inline-start:right; --inline-end:left }
.onsale{ inset-inline-start:.6rem }
#gsw-toast-stack{ inset-inline-end:1rem }

/* ───────────────────────────
   13) Checkout CTA – WC Blocks Button
   ─────────────────────────── */
a.wc-block-cart__submit-button.contained.wc-block-components-button{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  width:100%;
  padding:.8rem 1.1rem;
  border-radius:14px;
  border:1px solid hsla(var(--accent,187 90% 45%)/.7);
  background: linear-gradient(180deg, hsla(var(--accent,187 90% 45%)/.96), hsla(var(--accent,187 90% 45%)/.86));
  color:hsl(var(--accent-foreground,0 0% 100%));
  text-decoration:none;
  box-shadow:var(--elev-sm, 0 1px 2px rgba(0,0,0,.06), 0 1px 1px rgba(0,0,0,.04));
  transition: transform var(--tr,240ms), box-shadow var(--tr,240ms), filter var(--tr,240ms);
  font: inherit; /* تضمین استفاده از Vazirmatn */
}
a.wc-block-cart__submit-button.contained.wc-block-components-button:hover{
  transform:translateY(-1px);
  box-shadow:var(--elev-md, 0 4px 14px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.06));
}
a.wc-block-cart__submit-button.contained.wc-block-components-button:active{
  transform:translateY(0);
  box-shadow:var(--elev-sm, 0 1px 2px rgba(0,0,0,.06), 0 1px 1px rgba(0,0,0,.04));
}
a.wc-block-cart__submit-button.contained.wc-block-components-button:focus-visible{
  outline:2px solid hsla(var(--accent,187 90% 45%)/.9);
  outline-offset:2px;
  border-radius:12px;
}
a.wc-block-cart__submit-button.contained.wc-block-components-button[aria-disabled="true"],
a.wc-block-cart__submit-button.contained.wc-block-components-button.is-disabled{
  filter:grayscale(.2) saturate(.6) opacity(.6);
  cursor:not-allowed;
  transform:none;
  box-shadow:var(--elev-sm, 0 1px 2px rgba(0,0,0,.06), 0 1px 1px rgba(0,0,0,.04));
}
a.wc-block-cart__submit-button .wc-block-components-button__text{
  font-weight:800; letter-spacing:.2px; line-height:1;
}
