/*
Theme Name: Pasajgardi
Theme URI: https://binandesho.ir/
Author: Pasajgardi
Description: قالب سبک و RTL برای اجرای اپ پاساژگرد؛ منطق کسب‌وکار در افزونه Pasajgardi Core قرار دارد.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 8.1
Text Domain: pasajgardi
*/

@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700;800;900&display=swap');

:root{
  --blue-deep:#0E1C6B;
  --blue:#1E3FE0;
  --blue-2:#3E5CFF;
  --blue-tint:#EAF0FF;
  --pink:#FF5FA2;
  --pink-tint:#FFE7F1;
  --gold:#FFB100;
  --ink:#151C33;
  --ink-soft:#647089;
  --bg:#F4F6FB;
  --line:#E3E8F3;
  --radius:14px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html,body{ background:var(--bg); color:var(--ink); font-family:'Vazirmatn',sans-serif; }
body{ padding-bottom:40px; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
.wrap{ max-width:1120px; margin:0 auto; padding:0 20px; }

/* ---------- Header ---------- */
.topbar{ background:#fff; border-bottom:1px solid var(--line); font-size:13px; }
.topbar .wrap{ display:flex; justify-content:space-between; align-items:center; padding:9px 20px; }
.topbar .links{ display:flex; gap:18px; color:var(--ink-soft); }
.topbar .brand{ display:flex; align-items:center; gap:8px; font-weight:800; font-size:16px; }
.brand-mark{
  width:28px; height:28px; border-radius:8px;
  background:linear-gradient(160deg,var(--blue-2),var(--blue));
  color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:13px;
}
nav.mainnav{ background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:30; }
nav.mainnav .wrap{ display:flex; justify-content:space-between; align-items:center; padding:12px 20px; }
.nav-links{ display:flex; gap:26px; font-size:14.5px; font-weight:500; }
.nav-links a.active{ color:var(--blue); font-weight:700; }
.nav-cta{ background:var(--blue); color:#fff; font-size:13.5px; font-weight:600; padding:9px 18px; border-radius:8px; }

/* ---------- Hero ---------- */
.hero-outer{ padding:22px 0 0; }
.hero{
  background:linear-gradient(120deg, var(--blue-deep), var(--blue) 60%, var(--blue-2));
  border-radius:22px; position:relative; overflow:hidden;
  display:grid; grid-template-columns:1fr 340px; align-items:center; gap:20px;
  padding:40px 44px; min-height:270px;
}
@media (max-width:760px){ .hero{ grid-template-columns:1fr; padding:32px 24px; } .hero-illustration{ display:none; } }
.hero-kicker{ color:#BFD0FF; font-size:13.5px; font-weight:600; margin-bottom:10px; }
.hero h1{ color:#fff; font-size:34px; font-weight:800; line-height:1.5; }
.hero p{ color:#D7E0FF; margin-top:12px; font-size:14.5px; max-width:420px; line-height:1.9; }
.hero-features{ display:flex; gap:10px; margin-top:22px; flex-wrap:wrap; }
.hf-item{
  background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.18);
  border-radius:10px; padding:8px 12px; display:flex; align-items:center; gap:8px;
  font-size:12px; color:#fff;
}
.hero-cta{
  display:inline-block; margin-top:24px; background:#fff; color:var(--blue);
  font-weight:700; font-size:14px; padding:12px 26px; border-radius:10px;
}
.hero-illustration{
  position:relative; height:210px; display:flex; align-items:center; justify-content:center;
}
.mascot{ position:relative; width:150px; height:180px; }
.mascot .bag{
  position:absolute; bottom:0; left:50%; transform:translateX(-50%);
  width:110px; height:120px; background:#fff; border-radius:18px 18px 26px 26px;
}
.mascot .bag::before{
  content:''; position:absolute; top:-22px; left:50%; transform:translateX(-50%);
  width:64px; height:44px; border:9px solid #fff; border-bottom:none;
  border-radius:32px 32px 0 0;
}
.mascot .face{
  position:absolute; bottom:56px; left:50%; transform:translateX(-50%);
  width:64px; height:64px; border-radius:50%; background:var(--pink);
  display:flex; align-items:center; justify-content:center; gap:10px;
}
.mascot .eye{ width:8px; height:8px; background:var(--blue-deep); border-radius:50%; }
.mascot .badge-pct{
  position:absolute; top:6px; right:0; background:var(--gold); color:var(--blue-deep);
  font-weight:800; font-size:13px; padding:8px 12px; border-radius:12px; transform:rotate(8deg);
}
.hero-blob{ position:absolute; border-radius:50%; background:rgba(255,255,255,0.08); }

/* ---------- Search bar ---------- */
.searchbar{
  background:#fff; border:1px solid var(--line); border-radius:14px;
  box-shadow:0 14px 30px rgba(20,40,120,0.09);
  margin:-30px auto 0; padding:14px 18px; max-width:1080px;
  display:flex; gap:10px; align-items:center; position:relative; z-index:5; flex-wrap:wrap;
}
.searchbar input, .searchbar select{
  border:1px solid var(--line); border-radius:8px; padding:10px 14px; font-family:inherit;
  font-size:13.5px; background:var(--bg); color:var(--ink);
}
.searchbar input{ flex:1; min-width:180px; }
.searchbar select{ min-width:130px; }
.searchbar button{
  background:var(--blue); color:#fff; padding:10px 24px; border-radius:8px; font-weight:700; font-size:13.5px;
}

/* ---------- Section headers ---------- */
.section-title{ display:flex; justify-content:space-between; align-items:baseline; margin:44px 0 18px; }
.section-title h2{ font-size:20px; font-weight:800; }
.section-title .sub{ font-size:12.5px; color:var(--ink-soft); margin-top:2px; }
.section-title .more{ font-size:13px; color:var(--blue); font-weight:600; }

/* ---------- Mall cards ---------- */
.mall-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:16px; }
.mall-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  transition:transform .15s ease, box-shadow .15s ease; text-align:right;
}
.mall-card:hover{ transform:translateY(-3px); box-shadow:0 14px 26px rgba(20,40,120,0.1); }
.mall-card.selected{ outline:2px solid var(--blue); }
.mall-photo{
  height:110px; background:linear-gradient(135deg,var(--blue-tint),#fff);
  display:flex; align-items:center; justify-content:center; font-size:30px; position:relative;
}
.view-badge{
  position:absolute; top:8px; left:8px; background:rgba(21,28,51,0.72); color:#fff;
  font-size:10.5px; font-weight:600; padding:4px 9px; border-radius:999px;
  display:flex; align-items:center; gap:4px; direction:rtl;
}
.vendor-views{ font-size:10.5px; color:var(--ink-soft); margin-top:3px; display:block; }
.vendor-views.fresh{ color:var(--blue); font-weight:700; }
.mall-body{ padding:14px 16px 16px; }
.mall-name{ font-weight:700; font-size:15px; }
.mall-city{ font-size:12px; color:var(--ink-soft); margin-top:2px; }
.mall-stats{ display:flex; gap:14px; margin-top:12px; font-size:12px; color:var(--ink-soft); }
.stars{ color:var(--gold); font-size:12.5px; margin-top:8px; }
.stars b{ color:var(--ink); font-weight:700; margin-left:4px; }

/* ---------- Detail / floor directory ---------- */
.mall-page{ padding-top:22px; }
.breadcrumb{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--ink-soft); margin-bottom:16px; }
.breadcrumb .crumb-home{ color:var(--blue); font-weight:600; }
.breadcrumb .crumb-sep{ opacity:.6; }
.breadcrumb .crumb-current{ font-weight:600; color:var(--ink); }

.mall-cover{
  border-radius:22px; position:relative; overflow:hidden;
  background:linear-gradient(120deg, var(--blue-deep), var(--blue) 60%, var(--blue-2));
  padding:34px 34px 56px; color:#fff;
}
.mall-cover-icon{ font-size:50px; line-height:1; }
.mall-cover h1{ font-size:26px; font-weight:800; margin-top:12px; }
.mall-cover .tag{ color:#D7E0FF; font-size:13.5px; margin-top:6px; }
.mall-cover .stars{ margin-top:10px; }
.mall-cover .stars b{ color:#fff; }

.mall-quickstats{
  background:#fff; border:1px solid var(--line); border-radius:14px;
  box-shadow:0 14px 30px rgba(20,40,120,0.09);
  margin:-30px 6px 0; padding:16px 20px; position:relative; z-index:2;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:14px;
}
.qs-item{ display:flex; flex-direction:column; gap:4px; }
.qs-label{ font-size:11.5px; color:var(--ink-soft); }
.qs-value{ font-size:14px; font-weight:700; color:var(--ink); }

.mall-desc{ margin:20px 2px 0; font-size:13.5px; color:var(--ink-soft); line-height:2; max-width:820px; }

.mall-cover.has-avatar{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; padding:30px 34px; }
.mall-cover.has-avatar h1{ margin-top:0; }
.cover-avatar{ width:92px; height:92px; border-radius:50%; overflow:hidden; border:4px solid rgba(255,255,255,0.55); flex-shrink:0; background:#fff; box-shadow:0 10px 24px rgba(0,0,0,0.18); }
.cover-avatar img{ width:100%; height:100%; object-fit:cover; display:block; }

.detail{ margin-top:26px; border:1px solid var(--line); border-radius:16px; background:#fff; overflow:hidden; }
.detail-head{ padding:26px 26px 18px; border-bottom:1px solid var(--line); }
.detail-head h3{ font-size:22px; font-weight:800; }
.detail-head p{ color:var(--ink-soft); font-size:13.5px; margin-top:6px; }
.floors-layout{ display:grid; grid-template-columns:210px 1fr; min-height:380px; }
@media (max-width:720px){ .floors-layout{ grid-template-columns:1fr; } }
.floor-tower{ border-left:1px solid var(--line); display:flex; flex-direction:column-reverse; padding:20px 14px; gap:6px; }
@media (max-width:720px){ .floor-tower{ border-left:none; border-bottom:1px solid var(--line); flex-direction:row; overflow-x:auto; } }
.floor-band{
  border-radius:8px; padding:12px 14px; text-align:right; border:1.5px solid var(--line);
  background:var(--bg); font-size:13.5px; font-weight:600; color:var(--ink-soft); flex-shrink:0;
}
.floor-band .count{ font-weight:400; font-size:11.5px; display:block; margin-top:3px; opacity:.8; }
.floor-band.active{ background:var(--blue); color:#fff; border-color:var(--blue); }
.floor-band.active .count{ color:#DCE6FF; }
.floor-content{ padding:22px 26px; }
.floor-content h4{ font-size:14px; font-weight:700; color:var(--ink-soft); margin-bottom:14px; }
.floor-controls{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.floor-controls input, .floor-controls select{
  border:1px solid var(--line); border-radius:8px; padding:9px 12px; font-family:inherit;
  font-size:13px; background:var(--bg); color:var(--ink);
}
.floor-controls input.fc-search{ flex:1 1 200px; min-width:180px; }
.floor-controls select.fc-select{ flex:0 1 160px; min-width:140px; }
.floor-meta{ font-size:12px; color:var(--ink-soft); margin-bottom:10px; }
.load-more{
  display:inline-flex; width:100%; align-items:center; justify-content:center;
  margin-top:14px; background:var(--blue-tint); color:var(--blue); font-weight:700;
  font-size:13px; padding:11px 20px; border-radius:8px; transition:background .15s ease, color .15s ease;
}
.load-more:hover{ background:var(--blue); color:#fff; }
.no-results{ padding:34px 10px; text-align:center; font-size:13px; color:var(--ink-soft); }
.product-count{ font-size:11.5px; font-weight:500; color:var(--ink-soft); }
/* کارت فروشگاه داخل پاساژ: به‌جای یک تصویر پروفایل کوچک و گرد، یک بنر مستطیلی بزرگ‌تر شبیه
   کارت پاساژها نشون داده می‌شه (کوچیک‌تر از کاور خود پاساژ، ولی محسوس‌تر از آواتار پروفایل)
   تا بیننده حس بهتری از فروشگاه بگیره. */
.vendor-list{ display:grid; grid-template-columns:repeat(auto-fill,minmax(158px,1fr)); gap:12px; }
.vendor-chip{
  border:1.5px solid var(--line); border-radius:12px; overflow:hidden; display:flex; flex-direction:column;
  background:#fff; text-align:right; transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.vendor-chip:hover{ border-color:var(--blue); box-shadow:0 12px 22px rgba(20,40,120,0.1); transform:translateY(-2px); }
.vendor-photo{ height:78px; background:linear-gradient(135deg,var(--blue-tint),#fff); overflow:hidden; flex-shrink:0; }
.vendor-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.vendor-chip .vendor-name-cat{ padding:10px 12px 12px; }
.vendor-name-cat b{ font-size:13px; display:block; }
.vendor-name-cat span{ font-size:11px; color:var(--ink-soft); }
.search-mall-group{ border:1px solid var(--line); border-radius:14px; background:#fff; padding:16px 18px; margin-bottom:14px; }
.search-mall-head{ display:flex; justify-content:space-between; align-items:baseline; cursor:pointer; padding-bottom:12px; margin-bottom:12px; border-bottom:1px solid var(--line); flex-wrap:wrap; gap:6px; }
.search-mall-head b{ font-size:15px; }
.search-mall-head span{ font-size:12px; color:var(--ink-soft); }
.search-more{ font-size:12px; color:var(--ink-soft); margin-top:10px; }
.products{ margin-top:20px; border-top:1px solid var(--line); padding-top:20px; }
.products h4{ font-size:15px; font-weight:800; margin-bottom:12px; }
.product-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px; }
.product-card{ border:1px solid var(--line); border-radius:10px; padding:12px; background:var(--bg); }
.product-img{ height:56px; border-radius:6px; margin-bottom:8px; background:#fff; display:flex; align-items:center; justify-content:center; font-size:20px; overflow:hidden; }
.product-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.product-name{ font-size:13px; font-weight:600; line-height:1.5; }
.product-price{ margin-top:6px; font-size:13.5px; font-weight:800; color:var(--blue); }
.product-price small{ font-size:10.5px; font-weight:500; color:var(--ink-soft); }
.empty-hint{ padding:32px 26px; font-size:13.5px; color:var(--ink-soft); }

/* ---------- Reviews & rating ---------- */
.reviews-section{ margin-top:22px; border-top:1px solid var(--line); padding-top:20px; }
.reviews-head{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.reviews-head h4{ font-size:15px; font-weight:800; }
.reviews-agg{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.reviews-agg-num{ font-size:19px; font-weight:800; color:var(--ink); }
.reviews-agg .stars{ margin-top:0; }
.reviews-agg-count{ font-size:12px; color:var(--ink-soft); }

.review-form{ background:var(--bg); border:1px solid var(--line); border-radius:var(--radius); padding:16px; margin-bottom:18px; }
.review-form-row{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:10px; }
.rf-stars{ display:flex; gap:4px; direction:ltr; }
.rf-star{ font-size:24px; line-height:1; color:var(--gold); padding:2px; transition:transform .1s ease; }
.rf-star:hover, .rf-star.active{ transform:scale(1.12); }
.review-name-input{
  flex:1 1 180px; min-width:160px; border:1px solid var(--line); border-radius:8px;
  padding:9px 12px; font-family:inherit; font-size:13px; background:#fff; color:var(--ink);
}
.review-text-input{
  width:100%; border:1px solid var(--line); border-radius:8px; padding:10px 12px;
  font-family:inherit; font-size:13px; background:#fff; color:var(--ink); resize:vertical; min-height:70px;
}
.review-form-foot{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:10px; flex-wrap:wrap; }
.review-form-hint{ font-size:12px; color:var(--pink); font-weight:600; }
.review-submit-btn{
  background:var(--blue); color:#fff; font-weight:700; font-size:13px;
  padding:10px 22px; border-radius:8px; transition:background .15s ease;
}
.review-submit-btn:hover{ background:var(--blue-deep); }

.reviews-list{ display:flex; flex-direction:column; gap:12px; }
.review-item{ border:1px solid var(--line); border-radius:12px; padding:14px 16px; background:#fff; }
.review-item-head{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:6px; }
.review-item-head b{ font-size:13.5px; }
.review-item-head .stars{ margin-top:0; font-size:12px; }
.review-date{ font-size:11.5px; color:var(--ink-soft); margin-inline-start:auto; }
.review-text{ font-size:13px; color:var(--ink-soft); line-height:1.9; }
.reviews-empty{ padding:18px 4px; }

/* ---------- ثبت فروشگاه / ورود کاسب / پنل ادمین ---------- */
.reg-page{ max-width:760px; }
.reg-steps{ display:flex; align-items:center; justify-content:center; gap:6px; margin:26px 0 30px; flex-wrap:wrap; }
.reg-step-dot{ display:flex; flex-direction:column; align-items:center; gap:6px; opacity:.45; transition:opacity .15s ease; }
.reg-step-dot.active{ opacity:1; }
.reg-step-num{
  width:30px; height:30px; border-radius:50%; background:var(--blue-tint); color:var(--blue);
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:13px;
}
.reg-step-dot.active .reg-step-num{ background:var(--blue); color:#fff; }
.reg-step-label{ font-size:11px; color:var(--ink-soft); white-space:nowrap; }
.reg-step-line{ width:34px; height:2px; background:var(--line); margin-bottom:20px; }

.reg-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:30px 32px;
  max-width:440px; margin:0 auto 40px; text-align:right;
}
.reg-card-wide{ max-width:640px; }
.reg-card h3{ font-size:19px; font-weight:800; }
.reg-sub{ font-size:13px; color:var(--ink-soft); margin-top:8px; line-height:1.9; }
.reg-label{ display:block; font-size:12.5px; font-weight:700; color:var(--ink-soft); margin:16px 0 6px; }
.reg-input{
  width:100%; border:1px solid var(--line); border-radius:8px; padding:11px 14px; font-family:inherit;
  font-size:14px; background:var(--bg); color:var(--ink);
}
.reg-textarea{ resize:vertical; line-height:1.8; }
.reg-code-input{ text-align:center; letter-spacing:10px; font-size:20px; font-weight:800; }
.reg-hint{ font-size:12px; color:var(--pink); font-weight:600; min-height:16px; margin-top:8px; }
.reg-submit-btn{
  width:100%; background:var(--blue); color:#fff; font-weight:700; font-size:14px; padding:12px 20px;
  border-radius:8px; margin-top:6px; transition:background .15s ease;
}
.reg-submit-btn:hover{ background:var(--blue-deep); }
.reg-link-btn{
  display:block; width:100%; text-align:center; background:none; color:var(--blue); font-weight:600;
  font-size:12.5px; padding:10px 0 0; margin-top:4px;
}
.reg-demo-note{
  background:var(--blue-tint); color:var(--blue-deep); border-radius:8px; padding:10px 14px;
  font-size:12.5px; font-weight:700; margin-top:12px; direction:ltr; text-align:center;
}
.reg-pending-icon{ font-size:40px; text-align:center; margin-bottom:6px; }
.reg-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
.reg-form-grid > div{ min-width:0; }

.admin-app-list{ display:flex; flex-direction:column; gap:10px; margin-bottom:30px; }
.admin-app-card{
  border:1px solid var(--line); border-radius:12px; padding:14px 18px; background:#fff;
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
}
.admin-app-info{ display:flex; flex-direction:column; gap:3px; }
.admin-app-info b{ font-size:14px; }
.admin-app-info span{ font-size:12px; color:var(--ink-soft); }
.admin-app-actions{ display:flex; gap:8px; flex-shrink:0; }
.admin-approve-btn{ background:var(--blue); color:#fff; font-weight:700; font-size:12.5px; padding:9px 18px; border-radius:8px; }
.admin-reject-btn{ background:var(--bg); color:var(--pink); font-weight:700; font-size:12.5px; padding:9px 18px; border-radius:8px; border:1px solid var(--line); }
.admin-view-btn{ background:var(--blue-tint); color:var(--blue); font-weight:700; font-size:12.5px; padding:9px 18px; border-radius:8px; flex-shrink:0; }

.dash-head{
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px 26px; margin-bottom:20px;
}
.dash-head-info h2{ font-size:19px; font-weight:800; }
.dash-head-info .sub{ font-size:12.5px; color:var(--ink-soft); margin-top:4px; }
.dash-head-actions{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.dash-view-btn{ background:var(--blue-tint); color:var(--blue); font-weight:700; font-size:12.5px; padding:10px 16px; border-radius:8px; }
.dash-logout-btn{ background:var(--bg); border:1px solid var(--line); color:var(--ink-soft); font-weight:700; font-size:12.5px; padding:10px 16px; border-radius:8px; }
.dash-tabs{ display:flex; gap:8px; margin-bottom:18px; }
.dash-tab{
  background:var(--bg); border:1px solid var(--line); color:var(--ink-soft); font-weight:700; font-size:13px;
  padding:10px 20px; border-radius:8px;
}
.dash-tab.active{ background:var(--blue); color:#fff; border-color:var(--blue); }
.dash-tab-panel{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px 28px;
}
.dash-avatar-row{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.dash-avatar-preview{ width:76px; height:76px; border-radius:50%; overflow:hidden; background:var(--blue-tint); flex-shrink:0; box-shadow:0 6px 14px rgba(20,40,120,0.12); }
.dash-avatar-preview img{ width:100%; height:100%; object-fit:cover; display:block; }
.dash-avatar-actions{ display:flex; flex-direction:column; gap:4px; align-items:flex-start; }
.dash-avatar-actions .reg-link-btn{ width:auto; padding:4px 0; margin-top:0; }
.dash-product-form{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.dash-product-form input{ flex:1 1 160px; min-width:0; }
.dash-prod-icon-input{ flex:0 1 70px; text-align:center; }
.dash-prod-add-btn{ width:auto; flex:0 0 auto; padding:11px 22px; }
.dash-prod-media-row{ display:flex; align-items:center; gap:12px; margin:0 0 16px; flex-wrap:wrap; }
.dash-prod-media-preview{
  width:44px; height:44px; border-radius:8px; background:var(--bg); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; font-size:18px; overflow:hidden; flex-shrink:0;
}
.dash-prod-media-preview img{ width:100%; height:100%; object-fit:cover; display:block; }
.dash-prod-media-row .reg-link-btn{ width:auto; padding:6px 0; margin-top:0; }
.dash-product-list{ display:flex; flex-direction:column; gap:10px; }
.dash-product-item{
  display:flex; align-items:center; gap:12px; border:1px solid var(--line); border-radius:10px;
  padding:10px 14px; background:var(--bg);
}
.dash-product-item .product-img{ height:40px; width:40px; flex-shrink:0; border-radius:8px; background:#fff; display:flex; align-items:center; justify-content:center; font-size:18px; overflow:hidden; }
.dash-product-item .product-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.dash-product-name{ flex:1; font-size:13px; font-weight:600; }
.dash-product-price{ font-size:13px; font-weight:800; color:var(--blue); white-space:nowrap; }
.dash-product-price small{ font-size:10.5px; font-weight:500; color:var(--ink-soft); }
.dash-prod-del-btn{ background:none; color:var(--pink); font-weight:700; font-size:12px; padding:6px 10px; flex-shrink:0; }

/* وضعیت انتشار فروشگاه: تا وقتی ادمین تایید نکرده، پنل کاسب در دسترسه ولی فروشگاه توی سایت دیده نمی‌شه */
.dash-status-banner{
  display:flex; align-items:flex-start; gap:12px; border-radius:var(--radius); padding:14px 18px;
  margin-bottom:20px; border:1px solid var(--line);
}
.dash-status-banner .dsb-icon{ font-size:20px; line-height:1; margin-top:1px; }
.dash-status-banner .dsb-title{ font-weight:800; font-size:13.5px; }
.dash-status-banner .dsb-text{ font-size:12.5px; color:var(--ink-soft); margin-top:4px; line-height:1.9; }
.dash-status-banner.status-pending{ background:#FFF7E6; border-color:#FFE1A6; }
.dash-status-banner.status-pending .dsb-title{ color:#9A6700; }
.dash-status-banner.status-approved{ background:#EAF7EF; border-color:#BCE7CC; }
.dash-status-banner.status-approved .dsb-title{ color:#1E7B45; }

.dash-view-btn.disabled{ background:var(--bg); color:var(--ink-soft); pointer-events:none; opacity:.75; }

.dash-location-card{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px;
  background:var(--bg); border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin-bottom:10px;
}
.dash-location-item{ display:flex; flex-direction:column; gap:3px; }
.dash-location-item span{ font-size:11px; color:var(--ink-soft); }
.dash-location-item b{ font-size:13px; font-weight:700; color:var(--ink); }
.dash-location-note{ display:flex; align-items:center; gap:6px; font-size:11.5px; color:var(--ink-soft); margin:0 0 22px; }

/* ---------- Promo banners ---------- */
.promo{
  margin-top:44px; border-radius:18px; padding:30px 36px; color:#fff; position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.promo.p1{ background:linear-gradient(115deg,var(--blue-deep),var(--blue)); }
.promo.p2{ background:linear-gradient(115deg,#2A1E7A,var(--blue-2)); }
.promo-text h3{ font-size:24px; font-weight:800; margin-bottom:8px; }
.promo-text p{ font-size:13.5px; color:#DDE4FF; max-width:340px; line-height:1.8; }
.promo-bullets{ display:flex; gap:14px; margin-top:14px; flex-wrap:wrap; }
.promo-bullets span{ font-size:11.5px; color:#EAF0FF; display:flex; align-items:center; gap:6px; }
.promo-cta{ margin-top:16px; background:#fff; color:var(--blue-deep); font-weight:700; font-size:13px; padding:10px 20px; border-radius:8px; display:inline-block; }
.promo-side{
  width:130px; height:130px; border-radius:20px; background:rgba(255,255,255,0.12);
  display:flex; align-items:center; justify-content:center; font-size:46px; flex-shrink:0;
}

/* ---------- Ranked malls ---------- */
.ranked-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:16px; }
.ranked-card{ position:relative; }
.rank-badge{
  position:absolute; top:10px; right:10px; z-index:2; width:28px; height:28px; border-radius:50%;
  background:var(--gold); color:var(--blue-deep); font-weight:800; font-size:13px;
  display:flex; align-items:center; justify-content:center;
}

/* ---------- Top vendors ---------- */
.vendor-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:16px; }
.top-vendor-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:16px; text-align:right; cursor:pointer; transition:transform .15s ease, box-shadow .15s ease; }
.top-vendor-card:hover{ transform:translateY(-3px); box-shadow:0 14px 26px rgba(20,40,120,0.1); }
.tv-photo{ height:90px; border-radius:10px; background:linear-gradient(135deg,var(--pink-tint),var(--blue-tint)); display:flex; align-items:center; justify-content:center; font-size:26px; margin-bottom:12px; }
.tv-photo img{ width:64px; height:64px; border-radius:50%; object-fit:cover; border:3px solid #fff; box-shadow:0 6px 14px rgba(20,40,120,0.15); }
.tv-name{ font-weight:700; font-size:14.5px; }
.tv-meta{ font-size:12px; color:var(--ink-soft); margin-top:4px; }
.tv-cta{ margin-top:12px; display:block; width:100%; background:var(--blue-tint); color:var(--blue); font-weight:700; font-size:12.5px; padding:9px 0; border-radius:8px; text-align:center; }

/* ---------- App teaser ---------- */
.app-teaser{
  margin-top:44px; border-radius:18px; background:linear-gradient(120deg,#1A1050,var(--blue) 70%);
  padding:36px 40px; color:#fff; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.app-phone{ width:110px; height:200px; background:#fff; border-radius:20px; flex-shrink:0; box-shadow:0 20px 40px rgba(0,0,0,0.25); position:relative; }
.app-phone::after{ content:''; position:absolute; inset:10px; border-radius:12px; background:linear-gradient(160deg,var(--blue-tint),#fff); }
.app-text h3{ font-size:22px; font-weight:800; }
.app-text p{ font-size:13px; color:#CBD4FF; margin-top:8px; max-width:360px; line-height:1.8; }
.app-features{ display:flex; gap:14px; margin-top:14px; flex-wrap:wrap; font-size:11.5px; color:#EAF0FF; }

/* ---------- Footer ---------- */
footer{ margin-top:56px; background:var(--blue-deep); color:#C9D2F5; padding:40px 0 22px; border-radius:18px 18px 0 0; }
.footer-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:26px; padding-bottom:26px; border-bottom:1px solid rgba(255,255,255,0.1); }
.footer-grid h5{ color:#fff; font-size:14px; margin-bottom:12px; }
.footer-grid p, .footer-grid a{ font-size:12.5px; line-height:2.1; display:block; color:#B9C3EE; }
.footer-bottom{ text-align:center; font-size:12px; color:#8C98CC; padding-top:18px; }

/* =====================================================================
   ریسپانسیو موبایل — فقط تنظیمات نمایشی؛ هیچ قابلیت یا محتوایی حذف/اضافه نمی‌شه
   ===================================================================== */
html{ -webkit-text-size-adjust:100%; }
html, body{ overflow-x:hidden; }

/* --- تبلت و موبایل بزرگ --- */
@media (max-width:760px){
  .wrap{ padding:0 16px; }

  /* نوبار اصلی: روی صفحه‌های باریک لینک‌ها به‌جای سرریز شدن، به‌صورت افقی اسکرول می‌شن */
  nav.mainnav .wrap{ flex-wrap:wrap; gap:10px; padding:10px 16px; }
  .nav-links{
    order:2; width:100%; flex-wrap:nowrap;
    overflow-x:auto; -webkit-overflow-scrolling:touch;
    gap:20px; padding-bottom:2px; scrollbar-width:none;
  }
  .nav-links::-webkit-scrollbar{ display:none; }
  .nav-links a{ flex-shrink:0; white-space:nowrap; }
  .nav-cta{ order:1; font-size:12.5px; padding:9px 16px; }
  .topbar .wrap{ padding:8px 16px; }
  .topbar .links{ gap:12px; font-size:11.5px; }
  .topbar .brand{ font-size:14.5px; }

  /* هیرو */
  .hero{ padding:26px 22px; min-height:auto; border-radius:18px; }
  .hero h1{ font-size:25px; line-height:1.45; }
  .hero p{ font-size:13.5px; max-width:100%; }
  .hero-features{ gap:8px; }
  .hf-item{ font-size:11.5px; padding:7px 11px; }
  .hero-cta{ width:100%; text-align:center; padding:13px 20px; margin-top:20px; }

  /* نوار جست‌وجو: مرتب‌تر و متناسب با لمس */
  .searchbar{ margin-top:-20px; padding:14px; gap:10px; border-radius:12px; }
  .searchbar input, .searchbar select{ font-size:15.5px; padding:12px 14px; }
  .searchbar button{ padding:12px 20px; font-size:14px; }

  /* عنوان بخش‌ها */
  .section-title{ margin:32px 0 14px; }
  .section-title h2{ font-size:17.5px; }

  /* جزئیات پاساژ */
  .mall-cover{ padding:24px 20px 40px; border-radius:18px; }
  .mall-cover h1{ font-size:21px; }
  .mall-cover-icon{ font-size:38px; }
  .mall-cover.has-avatar{ padding:24px 20px; gap:16px; }
  .cover-avatar{ width:72px; height:72px; }
  .mall-quickstats{ margin:-24px 6px 0; padding:14px 16px; gap:12px; }
  .mall-desc{ font-size:13px; line-height:1.9; }
  .detail-head{ padding:20px 18px 14px; }
  .detail-head h3{ font-size:19px; }
  .floor-content{ padding:18px 16px; }
  .breadcrumb{ flex-wrap:wrap; row-gap:4px; }

  /* نظرات و امتیاز کاربران */
  .reviews-section{ margin-top:18px; padding-top:16px; }
  .review-form{ padding:14px; }
  .review-form-row{ flex-direction:column; align-items:stretch; }
  .review-name-input{ width:100%; font-size:15.5px; padding:11px 12px; }
  .review-text-input{ font-size:15.5px; padding:11px 12px; }
  .rf-star{ font-size:26px; }
  .review-submit-btn{ width:100%; padding:12px 20px; }
  .review-form-foot{ flex-direction:column-reverse; align-items:stretch; }
  .review-date{ margin-inline-start:0; }

  /* ثبت فروشگاه / ورود کاسب / پنل ادمین */
  .reg-card{ padding:22px 18px; }
  .reg-form-grid{ grid-template-columns:1fr; }
  .reg-input{ font-size:15.5px; padding:11px 12px; }
  .reg-step-label{ display:none; }
  .dash-head{ padding:18px 16px; flex-direction:column; align-items:stretch; }
  .dash-tab-panel{ padding:18px 16px; }
  .dash-product-form{ flex-direction:column; }
  .dash-prod-icon-input{ flex:1 1 auto; }
  .dash-prod-add-btn{ width:100%; }
  .admin-app-card{ flex-direction:column; align-items:stretch; }

  /* پروموها */
  .promo{ padding:22px 20px; margin-top:32px; }
  .promo-text h3{ font-size:19px; }
  .promo-text p{ font-size:13px; max-width:100%; }
  .promo-bullets{ gap:10px; }
  .promo-side{ width:76px; height:76px; font-size:30px; margin:0 auto; }

  /* بنر اپلیکیشن */
  .app-teaser{ padding:26px 22px; flex-direction:column-reverse; text-align:center; margin-top:32px; }
  .app-phone{ width:80px; height:140px; margin:0 auto; }
  .app-text p{ max-width:100%; }
  .app-features{ justify-content:center; }

  /* فوتر */
  footer{ margin-top:36px; padding:28px 0 18px; border-radius:14px 14px 0 0; }
  .footer-grid{ gap:20px; }
}

/* --- موبایل کوچک --- */
@media (max-width:480px){
  .wrap{ padding:0 14px; }
  .hero h1{ font-size:22px; }
  .hero-kicker{ font-size:11.5px; }
  .promo-text h3{ font-size:18px; }
  .mall-cover h1{ font-size:19px; }

  /* نوار جست‌وجو: ورودی و شهر/استان در ردیف‌های جداگانه برای راحتی لمس */
  .searchbar{ display:grid; grid-template-columns:1fr 1fr; }
  .searchbar input{ grid-column:1 / -1; }
  .searchbar select{ min-width:0; width:100%; }
  .searchbar button{ grid-column:1 / -1; width:100%; }

  /* فیلترهای داخل طبقات، تا از سرریز افقی جلوگیری بشه */
  .floor-controls input.fc-search,
  .floor-controls select.fc-select{ flex:1 1 100%; min-width:0; }
  .floor-controls input, .floor-controls select{ font-size:15.5px; padding:11px 12px; }
}
