/* ═══════════════════════════════════════════════════
   Beauty Hub CSS — v1.2
   کامل، مدرن، RTL، Blocksy-compatible
═══════════════════════════════════════════════════ */
:root {
  --bh-g:     var(--bh-ac, #c8956c);
  --bh-gd:    #a0694a;
  --bh-bg:    #faf7f4;
  --bh-sf:    #fff;
  --bh-br:    #e8ddd4;
  --bh-tx:    #2c2420;
  --bh-mu:    #7a6b62;
  --bh-st:    #e4a826;
  --bh-gr:    #2d7a3a;
  --bh-rd:    #b5331e;
  --bh-ra:    14px;
  --bh-sh:    0 4px 24px rgba(44,36,32,.09);
  --bh-sh2:   0 12px 40px rgba(44,36,32,.16);
  --bh-foc:   0 0 0 3px rgba(200,149,108,.38);
  --bh-ea:    .2s ease;
  --bh-ac:    #c8956c;
}
*,*::before,*::after{box-sizing:border-box}
.bh-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.bh-skip{position:absolute;top:-999px;right:0;z-index:9999;padding:.6rem 1.4rem;background:var(--bh-g);color:#fff;border-radius:0 0 var(--bh-ra) var(--bh-ra);text-decoration:none;font-weight:700}
.bh-skip:focus{top:0;box-shadow:var(--bh-foc);outline:none}
:focus-visible{outline:2px solid var(--bh-g);outline-offset:3px;border-radius:4px}

/* ── Utilities ───────────────────────────────────── */
.bh-pos{color:var(--bh-gr)}.bh-neg{color:var(--bh-rd)}.bh-req{color:var(--bh-rd);margin-right:.1rem}
.bh-empty{color:var(--bh-mu);font-style:italic;text-align:center;padding:2rem 0}
.bh-stars{display:inline-flex;gap:1px}
.bh-s-full,.bh-s-half{color:var(--bh-st)}
.bh-s-empty{color:#ddd}

/* ══════════════════════════════════════════════════
   SHORTCODE WRAP + FILTER BAR
══════════════════════════════════════════════════ */
.bh-sc-wrap{direction:rtl;font-family:'Vazirmatn','IRANSans',Tahoma,sans-serif;color:var(--bh-tx)}

.bh-filter-bar{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.2rem;background:var(--bh-sf);border-radius:var(--bh-ra);box-shadow:var(--bh-sh)}
.bh-filter-search{position:relative;flex:1;min-width:180px}
.bh-filter-search i{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);color:var(--bh-mu);pointer-events:none;font-size:.9rem}
.bh-search-input{width:100%;padding:.55rem 2.2rem .55rem .8rem;border:1.5px solid var(--bh-br);border-radius:8px;font-size:.9rem;font-family:inherit;color:var(--bh-tx);background:var(--bh-bg);direction:rtl;transition:border-color var(--bh-ea),box-shadow var(--bh-ea)}
.bh-search-input:focus{border-color:var(--bh-g);outline:none;box-shadow:var(--bh-foc)}
.bh-filter-select{padding:.55rem .8rem;border:1.5px solid var(--bh-br);border-radius:8px;font-size:.9rem;font-family:inherit;color:var(--bh-tx);background:var(--bh-bg);cursor:pointer;min-width:140px;direction:rtl;transition:border-color var(--bh-ea)}
.bh-filter-select:focus{border-color:var(--bh-g);outline:none;box-shadow:var(--bh-foc)}
.bh-filter-count{font-size:.82rem;color:var(--bh-mu);white-space:nowrap;margin-right:auto}

/* ══════════════════════════════════════════════════
   GRID
══════════════════════════════════════════════════ */
/* قبلاً با CSS Grid (repeat(N,1fr)) وقتی تعداد کارت‌ها مضربی دقیق از
   تعداد ستون‌ها نبود (مثلاً ۱۰ کارت در ۳ ستون)، ردیف آخر — و در چیدمان
   RTL کل گرید — به لبه‌ی راست می‌چسبید و فضای خالی سمت چپ می‌ماند؛ یعنی
   کارت‌ها نسبت به مرکز صفحه کمی متمایل به راست به‌نظر می‌رسیدند. با
   Flexbox + justify-content:center، هر ردیف (کامل یا ناقص) همیشه
   وسط‌چین می‌شود. */
.bh-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem}
.bh-grid > .bh-card{flex:0 1 auto}
.bh-cols-1 > .bh-card{width:100%}
.bh-cols-2 > .bh-card{width:calc(50% - .75rem)}
.bh-cols-3 > .bh-card{width:calc(33.3333% - 1rem)}
.bh-cols-4 > .bh-card{width:calc(25% - 1.125rem)}
.bh-cols-5 > .bh-card{width:calc(20% - 1.2rem)}
.bh-cols-6 > .bh-card{width:calc(16.6666% - 1.25rem)}
@media(max-width:900px){
  .bh-cols-4 > .bh-card,.bh-cols-5 > .bh-card,.bh-cols-6 > .bh-card{width:calc(33.3333% - 1rem)}
}
@media(max-width:700px){
  .bh-cols-3 > .bh-card,.bh-cols-4 > .bh-card,.bh-cols-5 > .bh-card,.bh-cols-6 > .bh-card{width:calc(50% - .75rem)}
}
@media(max-width:460px){
  .bh-cols-2 > .bh-card,.bh-cols-3 > .bh-card,.bh-cols-4 > .bh-card,.bh-cols-5 > .bh-card,.bh-cols-6 > .bh-card{width:100%}
}
.bh-grid-empty{width:100%}

/* ══════════════════════════════════════════════════
   CARD  —  Premium v3
   HTML: .bh-card > .bh-card__header + .bh-card__body
   header > .bh-card__photo-link > img.bh-card__photo
   body   > name · pos · specs · phone · addr · socials · btns · rev-bar
══════════════════════════════════════════════════ */

/* ── skeleton ───────────────────────────────────── */
@keyframes bh-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.bh-card__photo.is-loading{
  animation:bh-shimmer 1.6s linear infinite;
  background:linear-gradient(90deg,#ede8e3 25%,#f5f0ec 50%,#ede8e3 75%);
  background-size:200% 100%;
}

/* ── card shell ─────────────────────────────────── */
.bh-card{
  background:#fff;
  border-radius:20px;
  box-shadow:0 1px 4px rgba(44,36,32,.06),0 4px 20px rgba(44,36,32,.08);
  border:1px solid rgba(200,149,108,.12);
  overflow:hidden;           /* clip header corners */
  position:relative;
  display:flex;
  flex-direction:column;
  height:100%;
  transition:transform .28s cubic-bezier(.34,1.56,.64,1),
             box-shadow .28s ease,
             border-color .28s ease;
}
.bh-card:hover{
  transform:translateY(-5px);
  box-shadow:0 8px 32px rgba(44,36,32,.12),0 2px 8px rgba(44,36,32,.07);
  border-color:rgba(200,149,108,.3);
}

/* ── discount chip — top-left absolute ─────────── */
.bh-card__discount{
  position:absolute;
  top:10px;left:10px;
  z-index:10;
  background:linear-gradient(135deg,#e53935,#b71c1c);
  color:#fff;
  font-size:.68rem;font-weight:700;letter-spacing:.02em;
  padding:.22rem .65rem;
  border-radius:20px;
  display:flex;align-items:center;gap:.25rem;
  box-shadow:0 2px 8px rgba(183,28,28,.35);
}

/* ── header: gradient strip, photo centered ─────── */
.bh-card__header{
  height:96px;
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding-bottom:0;
  flex-shrink:0;
  /* inner ::after gives the shimmer line at the bottom edge */
}
.bh-card__header::after{
  content:'';
  position:absolute;
  bottom:0;left:0;right:0;
  height:1px;
  background:rgba(255,255,255,.25);
  pointer-events:none;
}

/* photo wrapper: sits half-in / half-out of header */
.bh-card__photo-link{
  position:absolute;
  bottom:-40px;
  left:50%;
  transform:translateX(-50%);
  border-radius:50%;
  text-decoration:none;
  display:block;
  z-index:2;
}
.bh-card__photo{
  width:80px;height:80px;
  border-radius:50%;
  object-fit:cover;
  border:3px solid #fff;
  box-shadow:0 3px 14px rgba(44,36,32,.18);
  display:block;
  background:#ede8e3;
  transition:transform .28s cubic-bezier(.34,1.56,.64,1),
             box-shadow .28s ease;
}
.bh-card:hover .bh-card__photo{
  transform:scale(1.07);
  box-shadow:0 6px 20px rgba(44,36,32,.22);
}
.bh-card__photo--empty{
  width:80px;height:80px;
  border-radius:50%;
  border:3px solid #fff;
  box-shadow:0 3px 14px rgba(44,36,32,.18);
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#f3ebe3 0%,#e8ddd4 100%);
  color:var(--bh-g);
  font-size:1.9rem;
}

/* ── body ───────────────────────────────────────── */
.bh-card__body{
  padding:48px 1rem 1rem;
  text-align:center;
  display:flex;
  flex-direction:column;
  gap:.36rem;
  flex:1;
}

/* name */
.bh-card__name{
  font-size:1rem;font-weight:800;
  margin:0;line-height:1.35;
}
.bh-card__name a{
  color:var(--bh-tx);
  text-decoration:none;
  transition:color .18s ease;
}
.bh-card__name a:hover{color:var(--bh-g)}

/* position / subtitle */
.bh-card__pos{
  font-size:.75rem;
  color:var(--bh-mu);
  margin:0;
  line-height:1.45;
}

/* specialty chips */
.bh-card__specs{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:.25rem;
}
.bh-card__spec{
  display:inline-block;
  background:rgba(200,149,108,.1);
  color:var(--bh-g);
  font-size:.68rem;font-weight:600;
  padding:.18rem .55rem;
  border-radius:20px;
  letter-spacing:.01em;
}
.bh-card__spec--link{
  text-decoration:none;
  transition:background .18s ease,color .18s ease;
}
.bh-card__spec--link:hover{background:var(--bh-g);color:#fff}

/* ── phone — full-width, pill ───────────────────── */
.bh-card__phone{
  display:flex;
  align-items:center;justify-content:center;
  gap:.42rem;
  background:linear-gradient(135deg,#f0faf0 0%,#e6f4e6 100%);
  color:#276f30;
  padding:.5rem 1rem;
  border-radius:24px;
  font-size:.88rem;font-weight:700;
  text-decoration:none;
  width:100%;
  border:1px solid rgba(39,111,48,.16);
  transition:background .2s ease,box-shadow .2s ease,transform .2s ease;
  direction:ltr;
}
.bh-card__phone:hover{
  background:linear-gradient(135deg,#e6f4e6 0%,#d6ecd6 100%);
  box-shadow:0 3px 12px rgba(39,111,48,.15);
  transform:translateY(-1px);
}
.bh-card__phone:focus-visible{box-shadow:var(--bh-foc);outline:none}
.bh-card__phone i{font-size:.82rem;flex-shrink:0}

/* address */
.bh-card__addr{
  font-size:.73rem;
  color:var(--bh-mu);
  display:flex;align-items:center;justify-content:center;
  gap:.26rem;
  line-height:1.45;
  margin:0;
}

/* social icons */
.bh-card__socials{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:.28rem;
}
.bh-card__social{
  display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;
  border-radius:50%;
  border:1.5px solid var(--bh-br);
  background:#faf7f4;
  color:var(--bh-mu);
  text-decoration:none;
  font-size:.82rem;
  transition:background .18s ease,border-color .18s ease,
             color .18s ease,transform .2s ease;
}
.bh-card__social:hover{
  background:var(--bh-g);
  border-color:var(--bh-g);
  color:#fff;
  transform:translateY(-2px);
}
.bh-card__social:focus-visible{box-shadow:var(--bh-foc);outline:none;border-radius:50%}

/* ── CTA buttons ────────────────────────────────── */
.bh-card__btns{
  display:flex;gap:.45rem;
  margin-top:auto;
  padding-top:.3rem;
}
.bh-card__btn{
  display:inline-flex;align-items:center;justify-content:center;
  gap:.3rem;
  padding:.5rem .9rem;
  border-radius:22px;
  font-size:.8rem;font-weight:700;
  border:none;cursor:pointer;
  font-family:inherit;text-decoration:none;
  flex:1;
  transition:transform .22s ease,box-shadow .22s ease,filter .22s ease;
  letter-spacing:.01em;
}
.bh-card__btn:focus-visible{box-shadow:var(--bh-foc);outline:none}

/* gallery — solid brand */
.bh-card__btn--gal{
  background:var(--ac,var(--bh-g));
  color:#fff;
  box-shadow:0 2px 8px rgba(200,149,108,.3);
}
.bh-card__btn--gal:hover{
  filter:brightness(1.1);
  transform:translateY(-2px);
  box-shadow:0 5px 16px rgba(200,149,108,.4);
}

/* booking — ghost */
.bh-card__btn--book{
  background:transparent;
  color:var(--ac,var(--bh-g));
  border:1.5px solid var(--ac,var(--bh-g));
}
.bh-card__btn--book:hover{
  background:var(--ac,var(--bh-g));
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 5px 16px rgba(200,149,108,.3);
}

/* ── review bar ─────────────────────────────────── */
.bh-card__rev-bar{
  border-top:1px solid rgba(200,149,108,.15);
  padding-top:.48rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:.2rem .3rem;
  font-size:.72rem;
}
.bh-rev-btn{
  display:inline-flex;align-items:center;gap:.18rem;
  background:none;border:none;cursor:pointer;
  color:var(--bh-mu);font-size:.72rem;font-family:inherit;
  padding:.16rem .24rem;border-radius:5px;
  transition:color .18s ease,background .18s ease;
}
.bh-rev-btn:hover{color:var(--bh-g);background:rgba(200,149,108,.08)}
.bh-rev-btn:focus-visible{box-shadow:var(--bh-foc);outline:none}
.bh-rev-sep{color:rgba(200,149,108,.35);flex-shrink:0}
.bh-card__stars{
  display:flex;align-items:center;gap:.18rem;
  font-size:.7rem;color:var(--bh-mu);
  white-space:nowrap;
}
.bh-card__stars .bh-stars{font-size:.74rem}

/* ── dark mode ──────────────────────────────────── */
@media(prefers-color-scheme:dark){
  .bh-sc-wrap{
    --bh-sf:#1c1917;
    --bh-bg:#141210;
    --bh-tx:#f0ece8;
    --bh-mu:#9c8e86;
    --bh-br:#2c2420;
  }
  .bh-card{background:#1c1917;border-color:rgba(255,255,255,.06)}
  .bh-card:hover{border-color:rgba(200,149,108,.28)}
  .bh-card__photo--empty{background:linear-gradient(135deg,#2c2420,#241f1c)}
  .bh-card__phone{background:linear-gradient(135deg,#162616,#122012);border-color:rgba(39,111,48,.25)}
  .bh-card__social{background:#241f1c;border-color:#2c2420}
}

/* load more */
.bh-load-more-wrap{text-align:center;margin-top:1.5rem}
.bh-load-more-btn{padding:.6rem 2rem;border:2px solid var(--bh-g);background:transparent;color:var(--bh-g);border-radius:24px;cursor:pointer;font-size:.95rem;font-weight:600;font-family:inherit;transition:background var(--bh-ea),color var(--bh-ea)}
.bh-load-more-btn:hover{background:var(--bh-g);color:#fff}
.bh-load-more-btn:focus-visible{box-shadow:var(--bh-foc);outline:none}

/* ══════════════════════════════════════════════════
   MODAL
══════════════════════════════════════════════════ */
/* z-index hierarchy (all as direct children of <body>):
   FSB button: 9998 | FSB modal overlay: 9999 | BH modal: 100000 | BH lightbox: 2147483647
   BH modal is moved to document.body by JS so this z-index always wins over FSB. */
.bh-modal{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:1rem;isolation:isolate}
.bh-modal[hidden]{display:none}
.bh-modal__bd{position:absolute;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px)}
.bh-modal__box{position:relative;z-index:1;background:var(--bh-sf);border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.28);width:100%;max-width:780px;max-height:92vh;display:flex;flex-direction:column;animation:bh-in .22s ease;direction:rtl;font-family:'Vazirmatn','IRANSans',Tahoma,sans-serif}
@keyframes bh-in{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.bh-modal__head{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.2rem;border-bottom:1.5px solid var(--bh-br);flex-shrink:0}
.bh-modal__title{font-size:1rem;font-weight:800;margin:0;color:var(--bh-tx)}
.bh-modal__close{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--bh-br);background:var(--bh-bg);color:var(--bh-mu);cursor:pointer;font-size:.92rem;display:flex;align-items:center;justify-content:center;transition:background var(--bh-ea),color var(--bh-ea)}
.bh-modal__close:hover{background:var(--bh-rd);border-color:var(--bh-rd);color:#fff}
.bh-modal__close:focus-visible{box-shadow:var(--bh-foc);outline:none}
.bh-modal__body{overflow-y:auto;padding:1rem 1.1rem 1.2rem;flex:1}
.bh-modal__loading{text-align:center;padding:2rem;color:var(--bh-mu);display:flex;align-items:center;justify-content:center;gap:.5rem}

/* ── Tab filter داخل پاپ‌آپ فهرست آرایشگران ─────── */
.bh-popup-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;direction:rtl}
.bh-popup-tab{padding:.32rem .85rem;border-radius:20px;border:1.5px solid var(--bh-br);background:var(--bh-bg);color:var(--bh-mu);font-size:.8rem;font-weight:600;cursor:pointer;font-family:inherit;transition:background var(--bh-ea),color var(--bh-ea),border-color var(--bh-ea)}
.bh-popup-tab:hover{border-color:var(--bh-g);color:var(--bh-g)}
.bh-popup-tab.active,.bh-popup-tab[aria-pressed="true"]{background:var(--bh-g);border-color:var(--bh-g);color:#fff}
.bh-popup-tab:focus-visible{box-shadow:var(--bh-foc);outline:none}

/* ── Adaptive grid: تعداد کارت تعیین می‌کند چند ستون ─ */
.bh-popup-grid{display:grid;gap:1rem}
.bh-popup-grid[data-count="1"]{grid-template-columns:minmax(0,380px);justify-content:center}
.bh-popup-grid[data-count="2"]{grid-template-columns:repeat(2,1fr)}
.bh-popup-grid[data-count="3"]{grid-template-columns:repeat(3,1fr)}
.bh-popup-grid[data-count="4"]{grid-template-columns:repeat(2,1fr)}
.bh-popup-grid[data-count="5"]{grid-template-columns:repeat(3,1fr)}
@media(max-width:600px){.bh-popup-grid[data-count]{grid-template-columns:1fr}}

/* ══════════════════════════════════════════════════
   GALLERY POPUP + LIGHTBOX
══════════════════════════════════════════════════ */
.bh-gal{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
@media(max-width:480px){.bh-gal{grid-template-columns:repeat(2,1fr)}}
.bh-gal__btn{all:unset;display:block;position:relative;overflow:hidden;border-radius:7px;aspect-ratio:1/1;background:var(--bh-br);cursor:pointer;width:100%}
.bh-gal__btn:focus-visible{outline:3px solid var(--bh-g);outline-offset:2px}
.bh-gal__thumb{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}
.bh-gal__btn:hover .bh-gal__thumb{transform:scale(1.07)}
.bh-vid-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#222;color:#fff;font-size:2rem}
.bh-gal__play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#fff;background:rgba(0,0,0,.35);pointer-events:none}
.bh-gal__cap{position:absolute;bottom:0;right:0;left:0;padding:.3rem .4rem;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;font-size:.73rem;font-weight:600;opacity:0;transition:opacity var(--bh-ea);pointer-events:none}
.bh-gal__btn:hover .bh-gal__cap{opacity:1}
/* lightbox */
/* Issue #2: .bh-lb is moved to document.body by JS before opening, so it is
   never a child of .bh-modal. z-index here beats .bh-modal (99999) because
   both become siblings under document.body. isolation:isolate gives it its
   own stacking context so theme transforms/filters cannot affect it. */
.bh-lb{position:fixed;inset:0;z-index:2147483647;background:rgba(0,0,0,.95);display:flex;align-items:center;justify-content:center;isolation:isolate}
.bh-lb[hidden]{display:none}
.bh-lb__stage{max-width:90vw;max-height:85vh;display:flex;align-items:center;justify-content:center}
.bh-lb__stage img,.bh-lb__stage video{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:8px}
.bh-lb__cap{position:absolute;bottom:1.5rem;right:0;left:0;text-align:center;color:#fff;font-size:.9rem;padding:0 5rem;pointer-events:none}
.bh-lb__x,.bh-lb__prev,.bh-lb__next{position:absolute;background:rgba(255,255,255,.14);border:none;color:#fff;font-size:1.1rem;width:44px;height:44px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--bh-ea)}
.bh-lb__x:hover,.bh-lb__prev:hover,.bh-lb__next:hover{background:rgba(255,255,255,.28)}
.bh-lb__x:focus-visible,.bh-lb__prev:focus-visible,.bh-lb__next:focus-visible{outline:2px solid #fff;outline-offset:3px}
.bh-lb__x{top:1rem;left:1rem}
.bh-lb__prev{top:50%;right:1rem;transform:translateY(-50%)}
.bh-lb__next{top:50%;left:1rem;transform:translateY(-50%)}

/* ══════════════════════════════════════════════════
   REVIEWS
══════════════════════════════════════════════════ */
.bh-mr-summary{display:flex;align-items:center;gap:1rem;background:#fdf5ee;border-radius:10px;padding:.7rem 1rem;margin-bottom:1rem}
.bh-mr-score{font-size:2.2rem;font-weight:800;color:var(--bh-gd);line-height:1}
.bh-mr-summary small{display:block;color:var(--bh-mu);font-size:.8rem;margin-top:.1rem}
.bh-sort-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.bh-sort{padding:.28rem .8rem;border:1.5px solid var(--bh-br);background:var(--bh-sf);border-radius:16px;cursor:pointer;font-size:.82rem;color:var(--bh-mu);font-family:inherit;transition:background var(--bh-ea),color var(--bh-ea),border-color var(--bh-ea)}
.bh-sort--on,.bh-sort[aria-pressed="true"]{background:var(--bh-g);border-color:var(--bh-g);color:#fff}
.bh-sort:focus-visible{box-shadow:var(--bh-foc);outline:none}
.bh-rc{padding:.9rem;border:1px solid var(--bh-br);border-radius:10px;margin-bottom:.65rem}
.bh-rc__head{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-bottom:.45rem}
.bh-rc__author{font-weight:700;font-size:.9rem}
.bh-rc__date{font-size:.76rem;color:var(--bh-mu);margin-right:auto}
.bh-rc__body{font-size:.9rem;line-height:1.7;margin-bottom:.4rem;color:var(--bh-tx)}
.bh-rc__tags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.35rem;align-items:center}
.bh-rc__lbl{font-size:.78rem;font-weight:700;margin-left:.2rem}
.bh-rc__tag{display:inline-block;padding:.1rem .42rem;border-radius:10px;font-size:.72rem;background:#f0e8e0;color:var(--bh-mu)}
.bh-rc__tag--pos{background:#e6f4ea;color:var(--bh-gr)}
.bh-rc__tag--neg{background:#fdecea;color:var(--bh-rd)}
.bh-more-wrap{text-align:center;margin:.75rem 0}
.bh-more{padding:.45rem 1.5rem;border:2px solid var(--bh-g);background:transparent;color:var(--bh-g);border-radius:20px;cursor:pointer;font-size:.88rem;font-weight:600;font-family:inherit;transition:background var(--bh-ea),color var(--bh-ea)}
.bh-more:hover{background:var(--bh-g);color:#fff}
.bh-more:focus-visible{box-shadow:var(--bh-foc);outline:none}
.bh-revlist[aria-busy="true"]{opacity:.5;pointer-events:none}
.bh-mr-footer{border-top:1px solid var(--bh-br);margin-top:.9rem;padding-top:.8rem;text-align:center}
.bh-sw-btn{display:inline-flex;align-items:center;gap:.38rem;background:none;border:1.5px solid var(--bh-g);color:var(--bh-g);padding:.42rem 1.1rem;border-radius:20px;cursor:pointer;font-size:.85rem;font-weight:600;font-family:inherit;transition:background var(--bh-ea),color var(--bh-ea)}
.bh-sw-btn:hover{background:var(--bh-g);color:#fff}
.bh-sw-btn:focus-visible{box-shadow:var(--bh-foc);outline:none}

/* ══════════════════════════════════════════════════
   FORM
══════════════════════════════════════════════════ */
.bh-form-row2{display:flex;flex-wrap:wrap;gap:1rem}
.bh-form-row2>*{flex:1;min-width:170px}
.bh-field{margin-bottom:.9rem}
.bh-field label,.bh-field-lbl{display:block;font-size:.86rem;font-weight:600;margin-bottom:.28rem;color:var(--bh-tx)}
.bh-input{width:100%;padding:.52rem .8rem;border:1.5px solid var(--bh-br);border-radius:8px;font-size:.9rem;font-family:inherit;color:var(--bh-tx);background:var(--bh-sf);direction:rtl;transition:border-color var(--bh-ea),box-shadow var(--bh-ea)}
.bh-input:focus{border-color:var(--bh-g);outline:none;box-shadow:var(--bh-foc)}
.bh-input--ta{resize:vertical;min-height:80px}
.bh-star-inp{display:flex;flex-direction:row-reverse;gap:3px;margin-top:.22rem}
.bh-star-inp input[type=radio]{position:absolute;opacity:0;width:0;height:0}
.bh-star-inp label{font-size:1.8rem;color:#ddd;cursor:pointer;display:block;margin-bottom:0;transition:color var(--bh-ea)}
.bh-star-inp input:checked~label,.bh-star-inp label:hover,.bh-star-inp label:hover~label{color:var(--bh-st)}
.bh-star-inp input:focus-visible+label{outline:2px solid var(--bh-g);outline-offset:2px;border-radius:4px}
.bh-chips{display:flex;flex-wrap:wrap;gap:.32rem}
.bh-chip{display:flex;align-items:center;gap:.22rem;padding:.18rem .58rem;border-radius:16px;border:1.5px solid var(--bh-br);cursor:pointer;font-size:.78rem;transition:background var(--bh-ea),border-color var(--bh-ea),color var(--bh-ea);position:relative}
.bh-chip input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}
.bh-chip:has(input:checked){background:var(--bh-g);border-color:var(--bh-g);color:#fff}
.bh-chip:focus-within{box-shadow:var(--bh-foc);outline:none}
.bh-chip--pos:has(input:checked){background:var(--bh-gr);border-color:var(--bh-gr);color:#fff}
.bh-chip--neg:has(input:checked){background:var(--bh-rd);border-color:var(--bh-rd);color:#fff}
.bh-submit-btn,.bh-btn--sub{display:flex;align-items:center;justify-content:center;gap:.45rem;width:100%;padding:.72rem;background:var(--bh-g);color:#fff;border:none;border-radius:9px;font-size:.97rem;font-weight:700;cursor:pointer;font-family:inherit;transition:background var(--bh-ea);margin-top:.3rem}
.bh-submit-btn:hover,.bh-btn--sub:hover{background:var(--bh-gd)}
.bh-submit-btn:disabled,.bh-btn--sub:disabled{opacity:.6;cursor:not-allowed}
.bh-submit-btn:focus-visible,.bh-btn--sub:focus-visible{box-shadow:var(--bh-foc);outline:none}
.bh-fmsg{padding:.62rem .9rem;border-radius:8px;margin-bottom:.8rem;font-size:.87rem;font-weight:600}
.bh-fmsg--ok{background:#e6f4ea;color:var(--bh-gr)}
.bh-fmsg--err{background:#fdecea;color:var(--bh-rd)}

/* ══════════════════════════════════════════════════
   SINGLE PAGE
══════════════════════════════════════════════════ */
.bh-single{direction:rtl;font-family:'Vazirmatn','IRANSans',Tahoma,sans-serif;color:var(--bh-tx);max-width:1100px;margin:0 auto;padding:0 1rem 3rem}

/* Hero */
.bh-hero-wrap{margin-bottom:1.5rem}
.bh-hero-banner{height:160px;border-radius:var(--bh-ra) var(--bh-ra) 0 0;position:relative;overflow:hidden}
.bh-discount-badge{position:absolute;top:1rem;left:1rem;background:rgba(229,57,53,.95);color:#fff;font-size:.8rem;font-weight:700;padding:.3rem .9rem;border-radius:20px;display:flex;align-items:center;gap:.3rem;box-shadow:0 2px 10px rgba(0,0,0,.2)}
.bh-hero-content{background:var(--bh-sf);border-radius:0 0 var(--bh-ra) var(--bh-ra);box-shadow:var(--bh-sh);padding:0 2rem 2rem;position:relative;display:flex;align-items:flex-start;gap:2rem;flex-wrap:wrap}
.bh-hero-photo-wrap{flex-shrink:0;margin-top:-60px}
.bh-hero-photo{width:130px;height:130px;border-radius:50%;object-fit:cover;border:4px solid #fff;box-shadow:0 6px 20px rgba(0,0,0,.18);display:block}
.bh-hero-photo--empty{width:130px;height:130px;border-radius:50%;border:4px solid #fff;box-shadow:0 6px 20px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;background:#f3ebe3;color:var(--bh-g);font-size:3rem}
.bh-hero-info{flex:1;min-width:220px;padding-top:1.5rem}
.bh-hero-name{font-size:clamp(1.5rem,4vw,2.2rem);font-weight:800;margin:0 0 .3rem;line-height:1.2;color:var(--bh-tx)}
.bh-hero-position{color:var(--bh-g);font-weight:600;margin:0 0 .8rem;font-size:1rem}
.bh-hero-rating{display:flex;align-items:center;gap:.45rem;margin-bottom:.8rem;flex-wrap:wrap}
.bh-rating-score{font-size:1.5rem;font-weight:800;color:var(--bh-gd);line-height:1}
.bh-rating-cnt{font-size:.85rem;color:var(--bh-mu)}
.bh-hero-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.7rem}
.bh-badge{padding:.22rem .7rem;border-radius:20px;font-size:.8rem;font-weight:600;text-decoration:none;transition:opacity var(--bh-ea)}
.bh-badge:hover{opacity:.8}
.bh-badge--specialty{background:rgba(var(--bh-ac-rgb,200,149,108),.12);color:var(--bh-g)}
.bh-hero-location{display:flex;align-items:center;gap:.4rem;color:var(--bh-mu);font-size:.9rem;margin-bottom:.85rem}
.bh-hero-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.85rem}
.bh-action-btn{display:inline-flex;align-items:center;gap:.38rem;padding:.48rem 1.1rem;border-radius:24px;font-size:.88rem;font-weight:700;text-decoration:none;border:none;cursor:pointer;font-family:inherit;transition:filter var(--bh-ea),transform var(--bh-ea)}
.bh-action-btn:hover{filter:brightness(.9);transform:translateY(-1px)}
.bh-action-btn:focus-visible{box-shadow:var(--bh-foc);outline:none}
.bh-action-btn--phone{background:#e8f5e9;color:#2d7a3a}
.bh-action-btn--wa{background:#e7f7ef;color:#128c7e}
.bh-action-btn--book{background:var(--bh-g);color:#fff}
.bh-hero-socials{display:flex;flex-wrap:wrap;gap:.4rem}
.bh-social-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#f3ebe3;color:var(--bh-gd);text-decoration:none;font-size:1rem;transition:background var(--bh-ea),color var(--bh-ea),transform var(--bh-ea)}
.bh-social-btn:hover{background:var(--bh-g);color:#fff;transform:translateY(-2px)}
.bh-social-btn:focus-visible{box-shadow:var(--bh-foc);outline:none}

/* sticky nav */
.bh-sticky-nav{position:sticky;top:0;z-index:100;background:var(--bh-sf);box-shadow:var(--bh-sh);border-radius:var(--bh-ra);margin-bottom:1.5rem;overflow:hidden}
.bh-sticky-nav__inner{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:0}
.bh-sticky-nav__inner::-webkit-scrollbar{display:none}
.bh-nav-link{display:inline-flex;align-items:center;gap:.3rem;padding:.85rem 1.2rem;font-size:.88rem;font-weight:600;text-decoration:none;color:var(--bh-mu);border-bottom:3px solid transparent;transition:color var(--bh-ea),border-color var(--bh-ea);white-space:nowrap}
.bh-nav-link:hover,.bh-nav-link.active{color:var(--bh-g);border-bottom-color:var(--bh-g)}
.bh-nav-link--cta{margin-right:auto;background:var(--bh-g);color:#fff;border-radius:0;border-bottom-color:transparent}
.bh-nav-link--cta:hover{background:var(--bh-gd);color:#fff;border-bottom-color:transparent}
.bh-nav-cnt{background:var(--bh-g);color:#fff;border-radius:10px;padding:.05rem .4rem;font-size:.72rem}

/* body layout */
.bh-single-body{display:grid;gap:1.5rem}
.bh-section{background:var(--bh-sf);border-radius:var(--bh-ra);box-shadow:var(--bh-sh);padding:1.5rem}
.bh-section__title{font-size:1.1rem;font-weight:800;margin:0 0 1.2rem;padding-bottom:.65rem;border-bottom:2px solid var(--bh-br);color:var(--bh-tx);display:flex;align-items:center;gap:.5rem}
.bh-section__title i{color:var(--bh-g)}
.bh-about-text{font-size:.95rem;line-height:1.85;margin-bottom:1rem}
.bh-about-text p{margin:0 0 .8rem}

/* info grid */
.bh-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.85rem;margin-bottom:1rem}
.bh-info-item{display:flex;align-items:flex-start;gap:.65rem}
.bh-info-item--full{grid-column:1/-1}
.bh-info-icon{width:36px;height:36px;border-radius:50%;background:rgba(var(--bh-ac-rgb,200,149,108),.1);color:var(--bh-g);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.9rem}
.bh-info-label{display:block;font-size:.75rem;color:var(--bh-mu);font-weight:600;margin-bottom:.15rem}
.bh-info-value{font-size:.9rem;color:var(--bh-tx);font-weight:600;text-decoration:none;transition:color var(--bh-ea)}
a.bh-info-value:hover{color:var(--bh-g)}

/* custom fields */
.bh-custom-fields{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.7rem}
.bh-custom-field dt{font-size:.78rem;color:var(--bh-mu);font-weight:700;margin-bottom:.15rem}
.bh-custom-field dd{font-size:.9rem;color:var(--bh-tx);margin:0}

/* portfolio grid — single */
.bh-pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
@media(max-width:500px){.bh-pgrid{grid-template-columns:repeat(2,1fr)}}
.bh-pgrid__btn{all:unset;display:block;position:relative;overflow:hidden;border-radius:8px;aspect-ratio:1/1;background:var(--bh-br);cursor:pointer;width:100%}
.bh-pgrid__btn:focus-visible{outline:3px solid var(--bh-g);outline-offset:2px}
.bh-pgrid__img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}
.bh-pgrid__btn:hover .bh-pgrid__img{transform:scale(1.06)}
.bh-video-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#1a1a2e;color:#fff;font-size:2rem}
.bh-pgrid__play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:#fff;background:rgba(0,0,0,.3);pointer-events:none}
.bh-pgrid__cap{position:absolute;bottom:0;right:0;left:0;padding:.35rem .45rem;background:linear-gradient(transparent,rgba(0,0,0,.72));color:#fff;font-size:.75rem;font-weight:600;opacity:0;transition:opacity var(--bh-ea);pointer-events:none}
.bh-pgrid__btn:hover .bh-pgrid__cap{opacity:1}

/* reviews single */
.bh-reviews-head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}
.bh-reviews-head .bh-section__title{margin-bottom:0;border:none;padding:0}
.bh-avg-pill{display:flex;align-items:center;gap:.75rem;background:#fdf5ee;border-radius:10px;padding:.6rem 1rem}
.bh-avg-pill__n{font-size:2rem;font-weight:800;color:var(--bh-gd);line-height:1}
.bh-avg-pill small{display:block;color:var(--bh-mu);font-size:.78rem;margin-top:.1rem}

/* ── Responsive single ───────────────────────────── */
@media(max-width:680px){
  .bh-hero-content{flex-direction:column;align-items:center;text-align:center;padding:0 1rem 1.5rem}
  .bh-hero-actions,.bh-hero-tags,.bh-hero-rating,.bh-hero-location,.bh-hero-socials{justify-content:center}
  .bh-hero-photo-wrap{margin-top:-50px}
  .bh-hero-photo,.bh-hero-photo--empty{width:110px;height:110px}
  .bh-hero-banner{height:130px}
}

/* ── Video thumbnail ─────────────────────────────── */
.bh-vid-no-thumb{background:linear-gradient(135deg,#1a1a2e 0%,#2d2d44 100%) !important}
.bh-vid-no-thumb i{opacity:.5}
/* اگه poster لود شد، مثل عکس نمایش داده شه */
.bh-pgrid__btn video[poster],.bh-gal__btn video[poster]{object-fit:cover}

/* ── روبیکا و بله آیکون‌های fallback ─────────────── */
.bh-social-btn[data-net="rubika"]{background:#27ae60}
.bh-social-btn[data-net="rubika"]:hover{background:#1e8449}
.bh-social-btn[data-net="bale"]{background:#2980b9}
.bh-social-btn[data-net="bale"]:hover{background:#1f618d}

/* ── Contact Cards ───────────────────────────────── */
.bh-contact-cards{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.2rem}
.bh-contact-card{display:flex;align-items:center;gap:.85rem;background:#fff;border:1px solid var(--bh-br);border-radius:12px;padding:.75rem 1rem;transition:box-shadow var(--bh-ea)}
.bh-contact-card:hover{box-shadow:0 2px 12px rgba(0,0,0,.07)}
.bh-contact-card--full{flex-wrap:wrap}
.bh-contact-card--book{border-color:var(--bh-ac);border-opacity:.3}

.bh-contact-card__icon{width:42px;height:42px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:10px;font-size:1.1rem}
.bh-contact-card__icon--net{font-size:1.15rem}
.bh-net--whatsapp{color:#128c7e !important;background:#e7f7ef !important}
.bh-net--telegram{color:#229ed9 !important;background:#e8f5fd !important}
.bh-net--eitaa{color:#cc4e0f !important;background:#fef0ea !important}
.bh-net--rubika{color:#27ae60 !important;background:#eafaf1 !important}
.bh-net--bale{color:#2980b9 !important;background:#eaf4fd !important}

.bh-contact-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}
.bh-contact-card__label{font-size:.75rem;font-weight:700;color:#888;line-height:1}
.bh-contact-card__num{font-size:.92rem;font-weight:600;color:#1d2327;text-decoration:none;line-height:1.3;word-break:break-all}
.bh-contact-card__num:hover{color:var(--bh-ac)}

.bh-contact-card__cta{flex-shrink:0;display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .9rem;border-radius:20px;font-size:.8rem;font-weight:700;text-decoration:none;background:var(--bh-ac-lt);color:var(--bh-ac);border:1px solid var(--bh-ac);transition:background var(--bh-ea),color var(--bh-ea)}
.bh-contact-card__cta:hover{background:var(--bh-ac);color:#fff}
.bh-contact-card__cta--primary{background:var(--bh-ac);color:#fff}
.bh-contact-card__cta--primary:hover{filter:brightness(.9)}
@media(max-width:480px){
  .bh-contact-card{padding:.65rem .75rem;gap:.6rem}
  .bh-contact-card__icon{width:36px;height:36px;font-size:.95rem}
  .bh-contact-card__cta{padding:.3rem .65rem;font-size:.75rem}
}
