.fm-shop{
	--b:#0a3d91;--b2:#2f8cff;--ink:#12202f;--mut:#6b7886;--line:#dde3ea;--bg:#f3f6f9;--card:#fff;--red:#c0392b;--ok:#13804a;--badge:#c0392b;--r:18px;
	direction:rtl;text-align:right;color:var(--ink);font-family:inherit;
	width:min(1320px,calc(100vw - 28px));
	position:relative;inset-inline-start:50%;
	margin:18px 0 40px;
	transform:translateX(50%);
}
html:not([dir="rtl"]) .fm-shop{transform:translateX(-50%)}
.fm-shop *{box-sizing:border-box}
.fm-shop a{text-decoration:none;color:inherit}

.fm-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:16px}
.fm-title{margin:0;font-size:clamp(1.4rem,3vw,2rem);font-weight:800;line-height:1.3}
.fm-sub{margin:4px 0 0;color:var(--mut);font-size:.9rem}
.fm-tools{display:flex;gap:8px;flex-wrap:wrap;flex:1 1 360px;justify-content:flex-end}
.fm-tools input,.fm-tools select{
	height:46px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 14px;font:inherit;color:var(--ink);
}
.fm-tools input{flex:1 1 220px;min-width:0}
.fm-tools input:focus,.fm-tools select:focus{outline:2px solid var(--b2);outline-offset:0}

.fm-filters{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 12px;margin-bottom:6px;scrollbar-width:thin}
.fm-filter{
	flex:0 0 auto;border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 16px;border-radius:999px;font-size:.9rem;
	transition:background .2s,color .2s,border-color .2s;white-space:nowrap;
}
.fm-filter:hover{border-color:var(--b)}
.fm-filter.active{background:var(--b);border-color:var(--b);color:#fff!important}

.fm-layout{display:grid;grid-template-columns:1fr 340px;gap:22px;align-items:start}
.fm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;transition:opacity .2s}
.fm-grid.is-loading{opacity:.45;pointer-events:none}

.fm-card{
	background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;
	box-shadow:0 8px 22px rgba(18,32,47,.05);transition:transform .22s,box-shadow .22s,border-color .22s;
}
.fm-card:hover{transform:translateY(-4px);box-shadow:0 16px 30px rgba(10,61,145,.15);border-color:#b9cdee}
.fm-card.is-out{opacity:.7}
.fm-img{position:relative;display:block;background:#fff;aspect-ratio:1/1;border-bottom:1px solid var(--line)}
.fm-img img{width:100%;height:100%;object-fit:contain;padding:10px;display:block}
.fm-badge{position:absolute;top:10px;inset-inline-start:10px;background:var(--badge);color:#fff;font-size:.72rem;padding:3px 9px;border-radius:999px}
.fm-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.fm-tag{align-self:flex-start;font-size:.72rem;background:color-mix(in srgb,var(--b) 12%,#fff);color:var(--b);padding:3px 10px;border-radius:999px}
.fm-name{margin:0;font-size:.98rem;font-weight:700;line-height:1.6;min-height:3.2em}
.fm-name a:hover{color:var(--b)}
.fm-meta{margin:0;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;color:var(--mut);font-size:.8rem}
.fm-stock.instock{color:var(--ok)}
.fm-stock.outofstock{color:var(--red)}
.fm-stock.onbackorder{color:#b7791f}
.fm-row{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:6px}
.fm-price{font-size:.98rem}
.fm-price del{opacity:.55;font-weight:400;font-size:.85em;margin-inline-end:4px}
.fm-price ins{text-decoration:none}

.fm-qty{display:flex;align-items:center;gap:8px;direction:ltr}
.fm-qty button{
	width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:#eef3f9;color:var(--b);
	font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .2s,color .2s,transform .1s;
}
.fm-qty button:hover{background:var(--b);color:#fff;border-color:var(--b)}
.fm-qty button:active{transform:scale(.92)}
.fm-qty .fm-n{min-width:20px;text-align:center;font-weight:700}
.fm-opts,.fm-out{font-size:.82rem;padding:8px 12px;border-radius:10px;background:#eef3f9;color:var(--b)}
.fm-out{background:#fbeceb;color:var(--red)}

.fm-more{text-align:center;margin:22px 0 0}
.fm-more button{border:1px solid var(--b);background:#fff;color:var(--b);padding:12px 28px;border-radius:12px;font:inherit;font-weight:700;cursor:pointer}
.fm-more button:hover{background:var(--b);color:#fff}
.fm-empty-grid{text-align:center;color:var(--mut);padding:40px 0}

/* سبد */
.fm-cart{
	position:sticky;top:130px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;
	box-shadow:0 16px 36px rgba(18,32,47,.08);max-height:calc(100vh - 150px);display:flex;flex-direction:column;
}
.admin-bar .fm-cart{top:162px}
.fm-cart h2{margin:0;font-size:1.35rem;font-weight:800}
.fm-cart-note{margin:4px 0 12px;color:var(--mut);font-size:.85rem}
.fm-cart-close{display:none}
#mfs-cart-items{overflow-y:auto;flex:1;min-height:60px}
.fm-empty{color:var(--mut);line-height:1.9;font-size:.9rem}
.fm-item{border-bottom:1px solid var(--line);padding:12px 0}
.fm-item-top{display:flex;justify-content:space-between;gap:10px;font-size:.88rem;line-height:1.6}
.fm-item-top small{color:var(--mut)}
.fm-item-top a:hover{color:var(--b)}
.fm-item-ctrl{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.fm-item .fm-qty button{width:30px;height:30px;font-size:1.1rem}
.fm-remove{border:none;background:none;color:var(--red);cursor:pointer;font:inherit;font-size:.85rem}
.fm-total{display:flex;justify-content:space-between;align-items:center;margin:16px 0 12px;font-size:1.05rem}
.fm-checkout{
	display:block;text-align:center;padding:14px;border-radius:14px;color:#fff!important;font-weight:800;
	background:linear-gradient(180deg,var(--b2),var(--b));box-shadow:0 6px 16px rgba(0,0,0,.3);transition:filter .2s,transform .1s;
}
.fm-checkout:hover{filter:brightness(1.1)}
.fm-checkout.is-disabled{pointer-events:none;filter:grayscale(1) opacity(.5);box-shadow:none}
.fm-viewcart{display:block;text-align:center;margin-top:10px;font-size:.85rem;color:var(--mut)}
.fm-viewcart:hover{color:var(--b)}

.fm-fab{display:none}
.fm-toast{
	position:fixed;bottom:84px;inset-inline-start:50%;transform:translate(50%,20px);background:#12202f;color:#fff;padding:10px 18px;border-radius:12px;
	font-size:.88rem;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:100000;max-width:90vw;
}
html:not([dir="rtl"]) .fm-toast{transform:translate(-50%,20px)}
.fm-toast.show{opacity:1;transform:translate(50%,0)}
html:not([dir="rtl"]) .fm-toast.show{transform:translate(-50%,0)}

/* تبلت و موبایل */
@media (max-width:980px){
	.fm-layout{grid-template-columns:1fr}
	.fm-cart{
		position:fixed;inset:auto 0 0 0;top:auto;max-height:82vh;border-radius:22px 22px 0 0;z-index:100001;
		transform:translateY(105%);transition:transform .3s ease;box-shadow:0 -12px 40px rgba(0,0,0,.35);
	}
	.admin-bar .fm-cart{top:auto}
	.fm-cart.open{transform:none}
	.fm-cart-close{display:block;position:absolute;top:10px;inset-inline-start:14px;border:none;background:none;font-size:1.8rem;line-height:1;cursor:pointer;color:var(--mut)}
	.fm-fab{
		display:flex;align-items:center;gap:10px;position:fixed;bottom:16px;inset-inline-start:16px;z-index:100000;
		background:var(--b);color:#fff;border:none;border-radius:999px;padding:12px 18px;font:inherit;font-weight:700;
		box-shadow:0 8px 22px rgba(10,61,145,.5);cursor:pointer;
	}
	.fm-fab b{background:#fff;color:var(--b);border-radius:999px;min-width:24px;height:24px;line-height:24px;text-align:center;font-size:.8rem}
}
@media (max-width:520px){
	.fm-grid{grid-template-columns:repeat(2,1fr);gap:10px}
	.fm-body{padding:10px}
	.fm-name{font-size:.85rem}
	.fm-row{flex-direction:column;align-items:stretch}
	.fm-qty{justify-content:space-between}
}
