/* -----------------------------------------------------------
  Travelguide Archive (Hero)
----------------------------------------------------------- */
:root{
  --gx-white:#fff; --gx-black:#0b0c0f; --gx-tx:#e7ebf1; --gx-muted:#cbd5e1; --gx-shadow:rgba(0,0,0,.18);
  --gx-gap: 28px;              /* فاصله‌ی کلّی */
  --gx-wrap-pad: 28px;         /* پدینگ عمودی سکشن */
  --gx-title-max: 52px;        /* سقف سایز عنوان دسکتاپ */
  --gx-title-min: 26px;        /* کف سایز عنوان موبایل */
  --gx-card-h-min: 180px;      /* حداقل ارتفاع کارت */
  --gx-card-h-max: 340px;      /* حداکثر ارتفاع کارت */
  --gx-track-gap: 18px;        /* فاصله بین کارت‌ها */
  --gx-vis: 4.4;               /* تعداد کارت‌های تقریبی در ویو */
}

/* ============ HERO LAYOUT ============ */
.gx-hero{
  position:relative;
  height: clamp(560px, 72vh, 880px);
  background:#000;
  overflow:hidden;
  isolation:isolate;
  color:var(--gx-tx);
  font-family:inherit;
  border-radius: var(--card-radius);
}

.gx-wrap{
  position:relative; z-index:2;
  margin-inline:auto; height:100%;
  padding-block: var(--gx-wrap-pad);
  align-content:end;
}

.gx-grid{
  display:grid;
  grid-template-columns:1.35fr 2fr;
  gap: var(--gx-gap);
  height:100%;
}

/* ============ BACKGROUND ============ */
.gx-bg{position:absolute; inset:0; z-index:1; overflow:hidden}
.gx-bg img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; transform:scale(1.02);
  transition:opacity .4s ease, transform .6s cubic-bezier(.22,1,.36,1); z-index:0;
}
.gx-anim-layer{position:absolute; inset:0; z-index:1; pointer-events:none}
.gx-bg-layer{position:absolute; inset:0; pointer-events:none; z-index:2}
.gx-bg-vignette{
  background:radial-gradient(85% 65% at 50% 60%, rgba(0,0,0,.0) 0%, rgba(0,0,0,.35) 60%, rgba(0,0,0,.55) 100%)
}
.gx-bg-gradient{
  background:linear-gradient(to left, rgba(0,0,0,.0) 0%, rgba(0,0,0,.35) 45%, rgba(0,0,0,.65) 75%)
}

/* کارتِ پروموت‌شده که روی BG می‌نشیند (زیر متن و ریل) */
.gx-portal{ position:absolute; inset:0; z-index:1; pointer-events:none; }
.gx-stuck-bg{ position:absolute; inset:0 !important; width:100% !important; height:100% !important; }
.gx-card.lifted{
  position:absolute; z-index:6;
  box-shadow:none !important; border-radius:22px;
  will-change:left, top, width, height, border-radius, transform, opacity;
}
.gx-card.lifted .gx-card-body{ opacity:0; transition:opacity 120ms linear; }

/* ============ LEFT INFO ============ */
.gx-info{
  display:flex; flex-direction:column; justify-content:center;
  padding-inline: clamp(12px, 5vw, 100px)  /* سمت راست در RTL */
}
.gx-kicker{
  font-size: clamp(11px, .9vw, 13px);
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--gx-muted); margin:0 0 8px;
}
.gx-title{
  margin:0 0 12px; font-weight:900; line-height:1.06;
  font-size: clamp(var(--gx-title-min), 2.7vw, var(--gx-title-max));
  color:#fff;
}
.gx-excerpt{
  margin:0; color:#e5e7eb;
  font-size: clamp(14px, 1.2vw, 16px);
  line-height:1.85; max-width: 60ch;
  display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden;
}
.gx-ctas{ margin-top:18px; display:flex; align-items:center; gap:12px }
.gx-btn{
  width: clamp(160px, 22vw, 200px);
  justify-content:center; display:inline-flex; align-items:center; gap:10px;
  padding:8px 18px; border-radius:14px;
  background:rgba(255,255,255,.12);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  color:#fff; text-decoration:none; border:1px solid rgba(255,255,255,.22);
  transition:background .25s, transform .2s;
}
.gx-btn:hover{ background:rgba(255,255,255,.18); transform:translateY(-1px) }

/* Controls & Progress */
.gx-controls{ display:flex; gap:10px; margin-inline:auto }
.gx-nav{
  width: clamp(40px, 5.2vw, 48px);
  height: clamp(40px, 5.2vw, 48px);
  border-radius: 12px;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.1);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  cursor:pointer; display:grid; place-items:center;
  transition:background .2s, transform .2s;
}
.gx-nav:hover{ background:rgba(255,255,255,.18); transform:translateY(-1px) }
.gx-icon{ font-size: clamp(18px, 2vw, 22px); line-height:1; color:  rgba(255,255,255,.28); }
.gx-progress{
  position:absolute; inset-inline-end:50px; bottom: clamp(32px, 2.1vh, 20px);
  font-weight:800; font-size: clamp(22px, 3.2vw, 32px);
  color:rgba(255,255,255,.86); text-shadow:0 2px 6px rgba(0,0,0,.35);
  font-variant-numeric:tabular-nums; 
}

/* RTL: کنترل‌ها چپ به راست برای آیکن‌ها */
#gx-hero[dir="rtl"] .gx-controls{ direction:ltr; }

/* ============ CARDS RAIL ============ */
.gx-cards{ position:relative; display:flex; flex-direction:column; justify-content:flex-end }
.gx-track-wrap{ width:100%; overflow:hidden; padding-inline:8px }

.gx-track{
  --gap: var(--gx-track-gap); --vis: var(--gx-vis);
  display:flex; gap:var(--gap); align-items:flex-end; will-change:transform;
  direction: rtl;
  padding-inline-start: 8px;
}

.gx-card{
  flex:0 0 auto;
  width: calc((100% - (var(--gap)*3.4))/3.4);
  height: clamp(var(--gx-card-h-min), 28vh, var(--gx-card-h-max));
  border-radius:14px; overflow:hidden; position:relative; cursor:grab;
  transform:translateZ(0); background:#fff0; will-change:transform,opacity,filter;
}
.gx-card:active{ cursor:grabbing }

.gx-card-media{ position:absolute; inset:0 }
.gx-card-media img{
  width:100%; height:100%; object-fit:cover; object-position:center;
  filter:saturate(1.05); transform:scale(1.02)
}
.gx-card-scrim{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,.2) 40%, rgba(0,0,0,.0) 75%)
}
.gx-card-body{ position:absolute; left:0; right:0; bottom:0; padding:16px 16px 14px; color:#fff }
.gx-card-kicker{ font-size: clamp(11px, .9vw, 12px); letter-spacing:.12em; text-transform:uppercase; opacity:.9; margin-bottom:6px }
.gx-card-title{ font-size: var(--fs-h6); font-weight:400; line-height:1.22; margin:0; text-shadow:0 1px 2px rgba(0,0,0,.35); color:#fff }
.gx-card--half{
  pointer-events:none; opacity:0;
  width: calc((100% - (var(--gap)*var(--vis)))/var(--vis)/2);
  height: clamp(calc(var(--gx-card-h-min) - 20px), 22vh, calc(var(--gx-card-h-max) - 60px));
}

/* index & info swap */
.gx-title,.gx-excerpt{ transition: opacity .35s ease, transform .35s ease }
.gx-info.swapping .gx-title,.gx-info.swapping .gx-excerpt{ opacity:0; transform:translateY(6px) }

/* focus & fade */
.gx-card.is-focus{ z-index:6; transform:translateY(-6px) scale(1.04); box-shadow:0 24px 64px rgba(0,0,0,.45); transition:transform 90ms ease, box-shadow 120ms ease }
.gx-card.fade-out{ opacity:.0; filter:blur(4px); transition:opacity 220ms ease, filter 220ms ease }

/* انتخاب نمایشی */
.gx-card.is-selected{ outline:2px solid rgba(255,255,255,.25); box-shadow:0 22px 60px rgba(0,0,0,.35) }

/* درگ */
.gx-card.is-dragging{ cursor:grabbing; z-index:7; box-shadow:0 30px 80px rgba(0,0,0,.45); transition:none!important }

/* ============ RESPONSIVE BREAKPOINTS ============ */

/* ≥ 1600px: نفسِ راحت دسکتاپ بزرگ */
@media (min-width:1600px){
  :root{ --gx-vis: 5.2; --gx-track-gap: 20px; --gx-title-max: 58px }
  .gx-hero{ height: clamp(720px, 78vh, 960px) }
}

/* 1200–1599: دسکتاپ استاندارد */
@media (max-width:1599px){
  :root{ --gx-vis: 4.2 }
}

/* ≤ 1200: لپ‌تاپ/تبلت افقی */
@media (max-width:1200px){
  :root{ --gx-vis: 3.5; --gx-gap: 24px }
  .gx-hero{ height: clamp(560px, 74vh, 820px) }
  .gx-excerpt{ -webkit-line-clamp: 4 }
}

/* ≤ 992: تبلت */
@media (max-width:992px){
  :root{ --gx-vis: 3; --gx-wrap-pad: 22px }
  .gx-grid{ grid-template-columns: 1fr }
  .gx-info{ padding-inline: clamp(8px, 4vw, 40px) }
  .gx-ctas{ margin-top: 14px }
  .gx-progress{ inset-inline-end: 12px }
}

/* ≤ 768: موبایل بزرگ */
@media (max-width:768px){
  :root{
    --gx-vis: 2.4;
    --gx-track-gap: 16px;
    --gx-card-h-min: 170px; --gx-card-h-max: 300px;
    --gx-title-min: 24px;
  }
  .gx-hero{ height: clamp(520px, 78vh, 760px) }
  .gx-excerpt{ -webkit-line-clamp: 5 }
  .gx-btn{ padding: 11px 16px }
  .gx-controls{ gap: 8px }
  .gx-card { width: calc((100% - (var(--gap)*3))/1.5);
    height: clamp(var(--gx-card-h-min), 20vh, var(--gx-card-h-max));
  }
}

/* ≤ 560: موبایل */
@media (max-width:560px){
  :root{
    --gx-vis: 2;
    --gx-track-gap: 14px;
    --gx-card-h-min: 160px; --gx-card-h-max: 260px;
  }
  .gx-hero{ height: clamp(500px, 82vh, 720px) }
  .gx-excerpt{ font-size: 14px; -webkit-line-clamp: 6 }
  .gx-progress{ bottom: max(12px, env(safe-area-inset-bottom)) }
  .gx-nav{ width: 42px; height: 42px }
}
@media (max-width:420px){
  :root{ --gx-vis: 1.8; --gx-track-gap: 12px }
  .gx-hero{ height: clamp(480px, 86vh, 680px) }
  .gx-title{ line-height: 1.08 }
  .gx-card-title{ font-size: 16px }
}
@supports (padding: max(0px)){
  @media (max-width:768px){
    .gx-wrap{ padding-bottom: max(var(--gx-wrap-pad), env(safe-area-inset-bottom)) }
  }
}
@media (prefers-reduced-motion: reduce){
  .gx-bg img, .gx-title, .gx-excerpt, .gx-card, .gx-card.is-focus, .gx-card.fade-out { transition: none !important; animation: none !important }
}

/* ============================================================
   Category Slideshow (Travelguide)
   ساختار HTML:
   <section id="travelguide-index">
     <div id="hs-viewport">
       <div id="hs-track">
         <div class="card">...</div>
       </div>
     </div>
   </section>
============================================================ */

/* سکشن کلی – جلوی اسکرول افقی ناخواسته رو می‌گیریم */
#travelguide-index {
  overflow-x: hidden;
}

/* ویوپورت اصلی */
#hs-viewport {
  position: relative;
  overflow: hidden;
  user-select: none;
  background: transparent;

  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin-inline: auto;

  padding: .5rem;
  border: solid 1px #eee;
  border-radius: 14px;
  box-shadow: var(--cm-box-shadow);

  /* تنظیمات فید کناری */
  --edge-fade-width: 56px;
  --edge-fade-color: #fff;
  --edge-fade-opacity: .95;

  touch-action: pan-y;   /* روی موبایل، اسکرول عمودی طبیعی بماند */
  cursor: grab;
}
#hs-viewport.dragging {
  cursor: grabbing;
}

/* نوار کارت‌ها */
#hs-track {
  display: flex;
  align-items: stretch;
  gap: var(--card-gap, 20px);
  will-change: transform;
  transform: translate3d(0,0,0);
  padding-block: 4px;
  direction: ltr;

  -webkit-user-select: none;
  user-select: none;
}

/* تعداد کارت در هر ردیف (اسلاید) – به صورت درصدی */
#hs-track > * {
  flex: 0 0 12.5%; /* تقریبا 8 تا کارت در دسکتاپ */
  min-width: 0;
}

/* تبلت */
@media (max-width: 992px) {
  #hs-track > * {
    flex-basis: 20%; /* حدود 5 تا */
  }
}

/* موبایل */
@media (max-width: 768px) {
  #hs-viewport {
    --edge-fade-width: 38px;
  }
  #hs-track > * {
    flex-basis: 33.3333%; /* حدود 3 تا */
  }
}

/* لبه‌های فید سفید داخل ویوپورت */
#hs-viewport::before,
#hs-viewport::after {
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width: var(--edge-fade-width);
  pointer-events:none;
  z-index: 5;
  border-radius: inherit;
}

/* سمت چپ */
#hs-viewport::before {
  left: 0;
  background: linear-gradient(to right,
    rgba(255,255,255, var(--edge-fade-opacity)),
    rgba(255,255,255, 0)
  );
}

/* سمت راست */
#hs-viewport::after {
  right: 0;
  background: linear-gradient(to left,
    rgba(255,255,255, var(--edge-fade-opacity)),
    rgba(255,255,255, 0)
  );
}

/* کارت‌ها */
#hs-track .card {
  position: relative;
  height: 100%;
  overflow: hidden;
  border-radius: var(--card-radius,14px);
  isolation: isolate;
  transition:
    box-shadow var(--transition,.25s),
    transform var(--transition,.25s);
}

/* لینک، کل کارت را قابل‌کلیک می‌کند */
#hs-track .card__link {
  display: block;
  height: 100%;
  pointer-events: auto;
}

/* تصویر کارت */
#hs-track .card__img {
  width: 100%;
  height: 85px;
  object-fit: cover;
  display: block;
  -webkit-user-drag: none;
  transition:
    transform 700ms cubic-bezier(.2,.6,.2,1),
    filter 700ms ease;
}
@media (max-width: 768px) {
  #hs-track .card__img {
    height: 70px !important;
  }
}

/* افکت Hover */
#hs-track .card__link:hover .card__img {
  transform: scale(1.04);
  filter: saturate(1.03);
}

/* اورلی گرادیان روی تصویر */
#hs-track .card__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    to top,
    rgba(0,0,0,.3) 10%,
    rgba(0,0,0,.18) 45%,
    rgba(0,0,0,0) 70%
  );
  opacity: .95;
}

/* کپشن پایین کارت */
#hs-track .card__caption {
  display: grid;
  margin-inline: 10px;
  padding: 0;
  border-radius: 0;
  color: #fff;

  position: absolute;
  left: 10px;
  right: 6px;
  bottom: 4px;
  z-index: 2;
  gap: .35rem;
  direction: rtl;
  text-align: right;

  background: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
  transform: none !important;
  opacity: 1 !important;
}

/* تیترها و متن */
#hs-track .small {
  margin: 0;
  font-size: var(--fs-h6);
  line-height: var(--line-height-heading,1.3);
  color: #fff;
  text-shadow: var(--cm-text-shadow);
}
#hs-track .card__title {
  margin: 0;
  color: #fff;
  text-shadow: var(--cm-text-shadow);
  font-weight: var(--fw-normal,400);
  font-size: var(--fs-h6);
}

/* فوکوس کیبوردی روی لینک کارت */
#hs-viewport .card__link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px var(--focus-ring, rgba(80,196,237,.35));
  border-radius: var(--card-radius,14px);
}

/* -----------------------------------------------------------
  Travelguide Category
----------------------------------------------------------- */
.cat-hero {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 22px;
  display: flex;
  align-items: flex-start;
  gap: 24px;
}
.cat-hero__img {
  position: relative;
}
#travelguide-index{
  overflow-x: hidden;
}

.cat-hero__img img {
  width: 280px;
  height: 320px;
  border-radius: var(--radius-lg);
  object-fit: cover;
}

.cat-hero__text {
  flex: 1;
}

.cat-hero__title {
  font-size: var(--fs-h4);
  font-weight: var(--fw-heading);
  margin: 0 !important;
}

.cat-hero__desc p,
.cat-hero__desc ul { 
  margin-bottom: 10px; 
  color: var(--color-text-muted);
  line-height: var(--line-height);
}
@media(max-width: 768px) {
  .cat-hero {
    flex-direction: column;
  }
  .cat-hero__img img {
    width: 100%;
  }
}
.tm-rd-htlcat-1{ width: auto; height: 40px; top: 0; right: 0; border-radius: 0 0 0 var(--card-radius); position: absolute; background: #fff; z-index: 2; padding: 0 10px; align-content: center; }
.tm-rd-htlcat-1::before{ width:50px;height:50px; top:0; right:100%; box-shadow:20px -20px var(--color-bg); z-index: -1; }
.tm-rd-htlcat-1::after { width:50px;height:50px; top:100%; right:0;  box-shadow:20px -20px var(--color-bg); z-index: -1; }
.tm-rd-htlcat-1::before,.tm-rd-htlcat-1::after {
  content:""; position:absolute; background:transparent; border-radius:var(--card-radius);
}

/* -----------------------------
  post card
------------------------------ */
/* نتایج کارت‌ها */
#dest-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1rem;
}
.card{ position:relative; overflow:hidden; border-radius:16px; }
.card__media{ height: clamp(170px, 28vw, 280px); overflow:hidden; }
.card__img{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.badge{
  position: absolute;
  inset-inline-end: .6rem;
  inset-block-start: .6rem;
  background: linear-gradient(135deg, rgba(255,255,255,0.08), rgba(255,255,255,0.02));
  -webkit-backdrop-filter: blur(var(--glass-blur,4px));
  backdrop-filter: blur(var(--glass-blur,4px));
  color: #fff;
  font-size: .78rem; font-weight: 600;
  padding: .25rem .5rem;
  border-radius: 8px;
  box-shadow: 0 6px 16px rgba(0,0,0,.12);
  z-index: 2;
}
.card__overlay{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.55) 100%);
  z-index:1; pointer-events:none;
}
.card__caption{
  position: absolute;
  inset-inline: .9rem;
  inset-block-end: .8rem;
  z-index: 2;
}
.card__title{
  margin: 0;
  font-size: var(--fs-h6);
  font-weight: 800;
  color: #fff;
  text-shadow: 0 2px 12px rgba(0,0,0,.35);
}

/* Hover در دسکتاپ */
@media (hover:hover){
  .card__img{ transition: transform .5s cubic-bezier(.2,.8,.2,1) }
  .card:hover .card__img{ transform: scale(1.04) }
}

/* ریسپانسیو */
@media (max-width:1200px){
  .destination-pro{
    grid-template-columns: 1fr;
    grid-template-areas:
      "media"
      "content";
    gap: clamp(20px, 5vw, 32px);
  }
  .dp-content{ text-align:center }
  .hero-dest__mini-search{ margin-inline:auto }
}
@media (max-width: 1024px){
  :root{
    --ar-h: 16/10;
    --ar-v: 5/6;
    --gallery-max: 520px;
  }
  .dp-gallery{ gap: clamp(10px, 1.6vw, 16px); }
  .card__img{ aspect-ratio: 16/10; }
}
@media (max-width: 640px){
  /* .dp-left { display: none; } */
  :root{ --ar-h: 4/3; --ar-v: 4/3; --gallery-max: 100%; }
  .dp-gallery{
    display:flex; gap:14px; overflow-x:auto; padding-inline:10px;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
  }
  .dp-gallery::-webkit-scrollbar{ display:none; }
  .dp-gallery{ scrollbar-width:none; }

  .dp-item{
    flex:0 0 auto;
    min-width: clamp(240px, 75vw, 420px);
    aspect-ratio: 4/5;
    scroll-snap-align:center;
    border-radius:18px;
    box-shadow:0 14px 34px rgba(0,0,0,.16);
    transform: scale(.94);
    transition: transform .35s ease, box-shadow .35s ease, opacity .35s ease;
    opacity:.92;
    max-height: 300px;
    margin: 0 !important;
  }
  .dp-item.is-active{
    transform: scale(1);
    opacity:1;
    box-shadow:0 18px 44px rgba(0,0,0,.20);
  }
  .dp-item::after{
    background: linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.22));
    opacity:.25;
  }
  .dp-dots{
    display:flex; justify-content:center; gap:8px; margin-top:10px;
  }
  .dp-dot{
    width:6px; height:6px; border-radius:50%;
    background:#cbd5e1; opacity:.7; border:0;
  }
  .dp-dot.is-active{ background:#111827; opacity:1; transform:scale(1.1); }

  /* تصویر کارت‌ها در موبایل عمودی‌تر */
  .card__img{ aspect-ratio: 7/4; }
}

/* احترام به کاهش حرکت */
@media (prefers-reduced-motion:reduce){
  .dp-item, .dp-item img{ transition:none!important; animation:none!important; transform:none!important; opacity:1!important }
}
.page-numbers { display: inline-flex; gap: 1rem; }
.page-numbers li span, .page-numbers li a { border-radius: 6px; border: solid 1px var(--blue-500); cursor: pointer; transition: .3s; align-items: center; justify-content: center;}
.page-numbers li:hover .page-numbers { background: var(--blue-500); color: #fff; border-radius: 6px; transition: .3s; }
.next.page-numbers { padding-inline: 10px; }