/* ============================================================================
   LB Bookstores — استایلِ فرانت‌اند
   از توکن‌های تمِ لوح برتر استفاده می‌کند؛ با fallback برای استفاده‌ی مستقل.
   ============================================================================ */
.lbb-directory,
.lbb-layout,
.lbb-hero{
  --lbb-ink:var(--ink-700,#21245c);
  --lbb-ink2:var(--ink-500,#363c7d);
  --lbb-saffron:var(--saffron-500,#f2860e);
  --lbb-saffron-d:var(--saffron-600,#d86e05);
  --lbb-paper:var(--paper,#faf6ee);
  --lbb-surface:var(--surface,#fff);
  --lbb-line:var(--line,#e8e1d3);
  --lbb-muted:var(--text-muted,#6b6980);
  --lbb-radius:var(--r-lg,16px);
  --lbb-shadow:var(--sh-md,0 8px 24px rgba(25,26,46,.09));
  --lbb-green:var(--success,#15803d);
  --lbb-green-bg:var(--success-bg,#e7f6ec);
  --lbb-red:var(--danger,#dc2626);
}

/* ---------- هیرو ---------- */
.lbb-hero__addr{color:rgba(255,255,255,.9); font-size:var(--fs-base,1rem); margin-top:6px}
.lbb-badges{display:flex; flex-wrap:wrap; gap:8px; margin-top:16px}
.lbb-badge{
  display:inline-flex; align-items:center; gap:6px;
  font-size:.82rem; font-weight:var(--fw-bold,700);
  padding:6px 13px; border-radius:999px;
  background:rgba(255,255,255,.14); color:#fff; border:1px solid rgba(255,255,255,.22);
}
.lbb-badge--gold{background:var(--lbb-saffron); border-color:transparent}
.lbb-badge a{color:inherit}
.lbb-status.is-open{background:var(--lbb-green-bg); color:var(--lbb-green); border-color:transparent}
.lbb-status.is-closed{background:rgba(255,255,255,.14); color:#fff}
.lbb-rate{background:#fff5e8; color:var(--lbb-saffron-d); border-color:transparent}

/* ---------- نوارِ اکشن ---------- */
.lbb-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:20px}
.lbb-act{
  display:inline-flex; flex-direction:column; align-items:center; gap:3px;
  min-width:92px; padding:11px 14px; border-radius:14px;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22);
  color:#fff; font-size:.8rem; font-weight:var(--fw-bold,700);
  font-size:1.15rem; line-height:1; text-decoration:none; transition:.18s;
}
.lbb-act span{font-size:.8rem}
.lbb-act:hover{transform:translateY(-2px); background:rgba(255,255,255,.2)}
.lbb-act--primary{background:var(--lbb-saffron); border-color:transparent}
.lbb-act--primary:hover{background:var(--lbb-saffron-d)}

/* ---------- چیدمانِ تکی ---------- */
.lbb-layout{display:grid; grid-template-columns:1.65fr 1fr; gap:22px; align-items:start}
.lbb-main,.lbb-side{display:flex; flex-direction:column; gap:22px}
.lbb-block{padding:22px}
.lbb-h2{
  display:flex; align-items:center; gap:9px;
  font-size:var(--fs-h4,1.125rem); font-weight:var(--fw-black,800);
  color:var(--lbb-ink); margin:0 0 16px
}
.lbb-h2 span{width:9px; height:9px; border-radius:50%; background:var(--lbb-saffron); flex:none}
.lbb-prose{color:var(--text,#191a2e); line-height:var(--lh-body,1.9)}
.lbb-prose p{margin:0 0 12px}

/* ---------- نقشه ---------- */
.lbb-map__frame{position:relative; border-radius:14px; overflow:hidden; border:1px solid var(--lbb-line)}
.lbb-map__frame iframe{width:100%; height:280px; border:0; display:block}
.lbb-map__lock{
  position:absolute; inset:0; width:100%; height:100%;
  background:transparent; border:0; cursor:pointer; color:transparent; font-size:0;
}
.lbb-map__frame.is-active .lbb-map__lock{display:none}
.lbb-map__static{
  height:220px; border-radius:14px; border:1px solid var(--lbb-line);
  display:grid; place-items:center; font-size:44px;
  background:radial-gradient(circle at 40% 40%,#eef5ee,#e4ece2 70%);
}
.lbb-map__actions{display:flex; gap:10px; margin-top:14px; flex-wrap:wrap}
.lbb-btn{border-radius:12px; font-weight:var(--fw-bold,700)}
.lbb-btn--ghost{background:var(--lbb-paper); color:var(--lbb-ink); border:1px solid var(--lbb-line)}
.lbb-btn--ghost:hover{border-color:var(--lbb-saffron); color:var(--lbb-saffron-d)}
.lbb-addr-row{
  display:flex; gap:12px; align-items:center; margin-top:14px;
  font-size:var(--fs-sm,.875rem); color:var(--text,#191a2e)
}
.lbb-copy{
  margin-inline-start:auto; flex:none; cursor:pointer;
  font-size:.78rem; font-weight:var(--fw-bold,700); color:var(--lbb-saffron-d);
  background:#fff5e8; border:1px solid #f6e2c4; padding:5px 11px; border-radius:9px
}

/* ---------- ساعاتِ کاری ---------- */
.lbb-hours{list-style:none; margin:0; padding:0; font-size:var(--fs-sm,.875rem)}
.lbb-hours li{display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px dashed var(--lbb-line)}
.lbb-hours li:last-child{border-bottom:0}
.lbb-hours li.is-today{font-weight:var(--fw-black,800); color:var(--lbb-ink)}
.lbb-hours li.is-today .lbb-hours__t{color:var(--lbb-green)}
.lbb-hours__closed{color:var(--lbb-red)}

/* ---------- امکانات ---------- */
.lbb-amen{display:flex; flex-wrap:wrap; gap:9px}
.lbb-amen span{
  font-size:.82rem; font-weight:var(--fw-medium,500);
  padding:8px 13px; border-radius:11px;
  background:var(--lbb-paper); border:1px solid var(--lbb-line)
}

/* ---------- تماس ---------- */
.lbb-contact{display:flex; flex-direction:column; gap:11px; font-size:var(--fs-sm,.9rem)}
.lbb-contact a{color:var(--lbb-ink); text-decoration:none; font-weight:var(--fw-medium,500)}
.lbb-contact a:hover{color:var(--lbb-saffron-d)}

/* ---------- گالری ---------- */
.lbb-gallery{display:grid; grid-template-columns:repeat(4,1fr); gap:10px}
.lbb-gallery__item{border-radius:12px; overflow:hidden; aspect-ratio:1; display:block}
.lbb-gallery__item img{width:100%; height:100%; object-fit:cover; display:block; transition:.2s}
.lbb-gallery__item:hover img{transform:scale(1.05)}

/* ---------- کتاب‌ها ---------- */
.lbb-books{display:grid; grid-template-columns:repeat(4,1fr); gap:14px}
.lbb-book{border:1px solid var(--lbb-line); border-radius:14px; overflow:hidden; background:var(--lbb-surface); text-decoration:none; color:inherit; transition:.2s}
.lbb-book:hover{transform:translateY(-4px); box-shadow:var(--lbb-shadow)}
.lbb-book__thumb img{width:100%; aspect-ratio:3/4; object-fit:cover; display:block}
.lbb-book__body{padding:10px; display:block}
.lbb-book__title{display:block; font-size:.82rem; font-weight:var(--fw-bold,700); line-height:1.6; min-height:40px}
.lbb-book__price{display:block; font-size:.8rem; color:var(--lbb-saffron-d); font-weight:var(--fw-black,800); margin-top:4px}

/* ---------- بخشِ «مرور بر اساس استان» ---------- */
.lbb-provhead{display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:6px 0 14px}
.lbb-provhead__t{
  margin:0; font-size:var(--fs-h4,1.15rem); font-weight:var(--fw-black,800);
  color:var(--ink-700,#21245c); position:relative; padding-inline-start:14px;
}
.lbb-provhead__t::before{
  content:""; position:absolute; inset-inline-start:0; top:.1em;
  width:5px; height:1em; border-radius:3px; background:var(--saffron-500,#f2860e);
}
.lbb-provhead__meta{font-size:var(--fs-sm,.875rem); color:var(--text-muted,#6b6980); font-weight:var(--fw-medium,500)}

/* ---------- گریدِ استان‌ها (فیلتر) ---------- */
.lbb-filter{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));
  gap:10px; margin-bottom:28px;
}
.lbb-chip{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding:11px 14px; border-radius:12px; text-decoration:none;
  background:var(--surface,#fff); border:1px solid var(--line,#e8e1d3);
  font-weight:var(--fw-bold,700); font-size:.9rem; color:var(--ink-700,#21245c);
  transition:transform .16s, border-color .16s, box-shadow .16s, color .16s;
}
.lbb-chip small{
  flex:none; min-width:26px; text-align:center; line-height:1.7;
  font-size:.74rem; font-weight:var(--fw-black,800);
  color:var(--text-muted,#6b6980); background:var(--surface-2,#f6f1e7);
  border-radius:999px; padding:1px 8px;
}
.lbb-chip:hover{
  border-color:var(--saffron-500,#f2860e); color:var(--saffron-600,#d86e05);
  transform:translateY(-2px); box-shadow:var(--sh-sm,0 2px 8px rgba(25,26,46,.07));
}
.lbb-chip.is-active{background:var(--ink-700,#21245c); border-color:transparent; color:#fff}
.lbb-chip.is-active small{background:rgba(255,255,255,.18); color:#fff}
@media(max-width:560px){.lbb-filter{grid-template-columns:repeat(2,1fr)}}

.lbb-grid{display:grid; grid-template-columns:repeat(var(--lbb-cols,3),1fr); gap:20px}
.lbb-card{background:var(--lbb-surface); border:1px solid var(--lbb-line); border-radius:var(--lbb-radius); overflow:hidden; box-shadow:var(--sh-sm,0 2px 8px rgba(25,26,46,.07)); transition:.2s; display:flex; flex-direction:column}
.lbb-card:hover{transform:translateY(-4px); box-shadow:var(--lbb-shadow)}
.lbb-card__thumb{position:relative; display:block; aspect-ratio:16/10; background:var(--lbb-paper)}
.lbb-card__thumb img{width:100%; height:100%; object-fit:cover; display:block}
.lbb-card__ph{position:absolute; inset:0; display:grid; place-items:center; font-size:42px}
.lbb-card__status{position:absolute; top:10px; inset-inline-end:10px; font-size:.72rem; font-weight:var(--fw-bold,700); padding:4px 10px; border-radius:999px}
.lbb-card__status.is-open{background:var(--lbb-green-bg); color:var(--lbb-green)}
.lbb-card__status.is-closed{background:#fdeaea; color:var(--lbb-red)}
.lbb-card__body{padding:16px; display:flex; flex-direction:column; gap:6px; flex:1}
.lbb-card__city{font-size:.76rem; font-weight:var(--fw-bold,700); color:var(--lbb-saffron-d)}
.lbb-card__city a{color:inherit; text-decoration:none}
.lbb-card__title{font-size:1.02rem; font-weight:var(--fw-black,800); margin:0; line-height:1.5}
.lbb-card__title a{color:var(--lbb-ink); text-decoration:none}
.lbb-card__addr{font-size:.82rem; color:var(--lbb-muted); margin:0}
.lbb-card__foot{margin-top:auto; padding-top:10px; display:flex; align-items:center; justify-content:space-between; gap:8px}
.lbb-card__rate{font-size:.82rem; font-weight:var(--fw-black,800); color:var(--lbb-saffron-d)}

.lbb-empty{text-align:center; padding:34px; color:var(--lbb-muted)}
.lbb-backlink{margin-top:26px; text-align:center}

/* ---------- نقشه‌ی سراسری ---------- */
.lbb-mapwrap{margin-bottom:26px}
.lbb-global-map{
  width:100%; border-radius:var(--lbb-radius,16px);
  border:1px solid var(--lbb-line,#e8e1d3); overflow:hidden; z-index:0;
  box-shadow:var(--sh-sm,0 2px 8px rgba(25,26,46,.07));
}
.lbb-map-tools{display:flex; align-items:center; gap:12px; margin-bottom:12px; flex-wrap:wrap}
.lbb-map-hint{font-size:.85rem; color:var(--lbb-muted,#6b6980)}
/* پاپ‌آپِ Leaflet — راست‌چین و فونتِ برند */
.leaflet-popup-content{margin:12px 14px; direction:rtl; text-align:right; font-family:var(--font-body,Tahoma,sans-serif)}
.leaflet-container{font-family:var(--font-body,Tahoma,sans-serif)}
.leaflet-popup-content a{color:#fff}

/* ---------- فرمِ ثبت ---------- */
.lbb-reg{max-width:820px; margin:0 auto}
.lbb-reg__form{
  background:var(--surface,#fff); border:1px solid var(--line,#e8e1d3);
  border-radius:var(--r-lg,16px); padding:26px; box-shadow:var(--sh-sm,0 2px 8px rgba(25,26,46,.07));
}
.lbb-reg__grid{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.lbb-reg__f{display:flex; flex-direction:column; gap:6px}
.lbb-reg__f--full{grid-column:1 / -1}
.lbb-reg__f label{font-size:.86rem; font-weight:var(--fw-bold,700); color:var(--ink-700,#21245c)}
.lbb-reg__f .req{color:var(--danger,#dc2626)}
.lbb-reg__f input,.lbb-reg__f textarea{
  width:100%; padding:11px 13px; border-radius:11px;
  border:1px solid var(--line-strong,#d8cfbc); background:var(--paper,#faf6ee);
  font-family:inherit; font-size:.95rem; color:var(--text,#191a2e)
}
.lbb-reg__f input:focus,.lbb-reg__f textarea:focus{
  outline:none; border-color:var(--saffron-500,#f2860e);
  box-shadow:0 0 0 3px var(--ring,rgba(242,134,14,.25)); background:#fff
}
.lbb-reg__row2{display:grid; grid-template-columns:1fr 1fr; gap:10px}
.lbb-reg__hint{font-size:.78rem; color:var(--text-muted,#6b6980); margin-top:2px}
.lbb-reg__check,.lbb-reg__consent{display:flex; align-items:center; gap:8px; font-weight:var(--fw-medium,500); font-size:.9rem; cursor:pointer}
.lbb-reg__consent{margin:18px 0 14px}
.lbb-reg__form .lbb-btn{width:100%}
.lbb-reg__errors{
  background:var(--danger-bg,#fdeaea); border:1px solid #f3c6c6; color:#a01c1c;
  border-radius:12px; padding:14px 16px; margin-bottom:18px; font-size:.9rem
}
.lbb-reg__errors ul{margin:8px 0 0; padding-inline-start:18px}
.lbb-reg__done{
  text-align:center; background:var(--success-bg,#e7f6ec); border:1px solid #c9ecd5;
  border-radius:var(--r-lg,16px); padding:40px 24px
}
.lbb-reg__done-ic{
  width:64px; height:64px; margin:0 auto 14px; border-radius:50%;
  background:var(--success,#15803d); color:#fff; font-size:34px; display:grid; place-items:center
}
.lbb-reg__done h3{color:var(--success,#15803d); margin:0 0 8px}
.lbb-hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

@media(max-width:600px){
  .lbb-reg__grid{grid-template-columns:1fr}
  .lbb-reg__form{padding:18px}
}

/* ---------- ریسپانسیو ---------- */
@media(max-width:900px){
  .lbb-layout{grid-template-columns:1fr}
  .lbb-grid{grid-template-columns:repeat(2,1fr)!important}
  .lbb-gallery{grid-template-columns:repeat(3,1fr)}
  .lbb-books{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
  .lbb-grid{grid-template-columns:1fr!important}
  .lbb-gallery{grid-template-columns:repeat(2,1fr)}
  .lbb-act{min-width:76px; flex:1}
}
