/* -----------------------------------------------------------
  Destination Archive (Hero)
----------------------------------------------------------- */
:root{
  --bg:#fff; --ink:#0d0d0d; --muted:#5b5b5b;
  --ring:#dfe7ff; --accent:#111827;
  --shadow:0 15px 40px rgba(0,0,0,.12);
  --border:#e5e7eb;

  /* نسبت‌های واکنش‌گرا گالری */
  --ar-h: 7/5;
  --ar-v: 6/7;
  --gallery-max: 560px;

  /* تایپو کارت */
  --fs-h6: 1rem;
}

*{ box-sizing:border-box }
body{ background:var(--bg); color:var(--ink) }
.sr-only{ position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0 }

/* Hero */
.hero-dest--v2{
  position: relative;
  /* min-height: clamp(62vh, 72vh, 78vh); */
  background-color: var(--bg);
  background-image: var(--hero-bg);
  background-size: cover;
  background-position: center;
  isolation: isolate;
}

/* لایه‌بندی بخش بالای صفحه */
.destination-pro{
  display:grid;
  grid-template-columns: 1.05fr 1fr;
  grid-template-areas: "content media";
  align-items:center;
  gap: clamp(32px, 6vw, 64px);
  position:relative;
  isolation:isolate;
}
.dp-left   { grid-area: media; position:relative; display:grid; align-content:start; }
.dp-content{ grid-area: content; }

/* هالهٔ پس‌زمینه */
.destination-pro::after{
  content:"";
  position:absolute; inset:auto -20% -15% -20%;
  height:55%;
  background: radial-gradient(40% 60% at 60% 40%, var(--ring), transparent 60%);
  filter: blur(40px); opacity:.6; z-index:-1; width: 100%;
}

/* متن */
.dp-content .dp-tag{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:500; letter-spacing:.2px;
  padding:8px 12px; border-radius: 10px;
  background: linear-gradient(180deg,#fff,#f6f8ff);
  border:1px solid #e8ecff; color:#1f2937;
  box-shadow: 0 8px 20px rgba(31,41,55,.06);
}
.dp-content h2{
  margin:16px 0 10px;
  font-size: clamp(28px, 3vw, 60px);
  line-height:1.4; font-weight:700; letter-spacing:-.5px;
}
.dp-sub{ color:var(--muted); max-width:52ch; margin:10px 0 22px; font-size:clamp(14px,1.2vw,18px) }
.dp-cta{ display:flex; align-items:center; gap:16px; flex-wrap:wrap }
.dp-btn{ display:inline-block; padding:14px 18px; font-weight:700; background:#111827; color:#fff; text-decoration:none; border-radius:14px; box-shadow: var(--shadow); transform:translateZ(0) }
.dp-btn:hover{ filter:brightness(1.02); transform: translateY(-1px) }
.dp-link{ color:var(--accent); text-decoration:none; font-weight:600 }
.dp-link:hover{ text-decoration:underline }

/* فرم جستجو */
.hero-dest__mini-search{
  display:grid; gap:.5rem;
  width: min(92vw, 560px);
  margin-block-start: 1rem;
}
.mini-search__wrap{
  display:flex; align-items:center; gap:.5rem;
  padding:.5rem; background:#fff;
  border:1px solid var(--border); border-radius: calc(var(--card-radius) - 6px);
  box-shadow:0 10px 28px rgba(0,0,0,.08);
  backdrop-filter: blur(6px);
}
.mini-search__wrap svg{ opacity:.55; flex:0 0 auto }
.mini-search__input{
  flex:1 1 auto; border:0; background:transparent;
  padding:.45rem .25rem; font-size:1rem; color:#111; outline:none;
}
.mini-search__input::placeholder{ color:#777 }
.mini-search__input:focus{ outline:2px solid #c7d2fe; outline-offset:2px; border-radius:.5rem }

.mini-search__filters{
  display:flex; gap:.5rem; background:#fff;
  border:1px solid var(--border); border-radius:.65rem;
  padding:.45rem; box-shadow:0 6px 18px rgba(0,0,0,.06);
}
.mini-search__filters select{
  border:1px solid var(--border); background:#fff; color:#111;
  padding:.45rem .6rem; border-radius:.5rem; font-size:.9rem; min-width:120px;
}

/* گالری */
.dp-gallery{
  width: min(var(--gallery-max), 100%);
  margin-inline:auto;
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(14px, 2vw, 22px);
}
.dp-item{
  position:relative; overflow:hidden; border-radius:var(--card-radius);
  background:#eaeaea; box-shadow:var(--shadow);
  transform:translateY(10px); opacity:0;
  animation:dpIn .7s cubic-bezier(.2,.8,.2,1) forwards;
  animation-delay:var(--delay,0s);
}
.dp-item.h{ aspect-ratio: var(--ar-h); }
.dp-item.v{ aspect-ratio: var(--ar-v); }
.dp-item img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .8s cubic-bezier(.2,.8,.2,1), filter .3s ease;
}
.dp-item:hover img{ transform:scale(1.05) }
.dp-item::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(0,0,0,.18), transparent 55%);
  opacity:0; transition:opacity .35s ease;
}
.dp-item:hover::after{ opacity:1 }
@keyframes dpIn{ to{ transform:none; opacity:1 } }

/* نتایج کارت‌ها */
#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: none;
    transform: scale(.94);
    transition: transform .35s ease, box-shadow .35s ease, opacity .35s ease;
    opacity:.92;
    max-height: 300px;
    margin: 0 !important;
    height: 250px;
  }
  .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; }

/* =================== destination Archive Box ==================== */
.destination-archive-box{
  padding:20px; background: var(--color-bg-sec);
  border-radius:16px; overflow:hidden; max-width:1400px; margin:0 auto;
  direction:rtl; box-sizing:border-box; border:1px solid var(--color-border);
}
@media (max-width: 640px){
  .destination-archive-box{
    flex-direction: column;
  }
  .hab-aside {
    max-height: 440px;
  }
}
.hab-header{ height:100%; text-align:center; }
.hab-header h2{
  font-size: clamp(1.25rem, 2.2vw, 1.8rem);
  font-weight:700; color: var(--color-bg); margin-bottom:8px;
}
.hab-header p{ font-size:.95rem; color: var(--color-bg-sec); }
.hab-title{ display:flex; justify-content:space-between; align-items:center; }
.hab-title h3{ font-size:1.2rem; font-weight:600; color: var(--color-text-strong); }
.hab-scroll{
  display:flex; overflow-x:auto; cursor:grab; user-select:none;
  gap: var(--card-gap, 20px); align-items:start;
  scrollbar-width: thin; scroll-behavior: smooth; 
}
.hab-scroll.dragging{ cursor:grabbing; }
.hab-line { overflow-x: auto; }
.hab-card{
  position:relative; flex:0 0 180px;
  background: var(--color-bg); border:1px solid var(--color-border);
  color:inherit; text-decoration:none; border-radius: var(--card-radius);
  overflow:hidden; box-shadow: var(--cm-box-shadow);
}
.hab-card img{
  width:100%; height:220px; object-fit:cover; display:block; pointer-events:none;
  transition: transform .3s ease;
}
.hab-card:hover img{ transform: scale(1.05); }
.hab-card-title{
  position:absolute; inset:auto 0 0 0; padding:10px 16px; z-index:9;
  color:#fff; font-weight:600; text-align:start; font-size: var(--fs-h6);
  background: linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0));
}
.btn-country{ cursor:pointer; }
.btn-country[aria-pressed="true"]{
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--focus-ring);
}
@media (max-width:991px){
  .hab-card{ flex:0 0 180px; }
  .hab-card img{ height:130px; }
  .hab-card-title{ font-size:.9rem; }
  .destination-archive-box .full-width.d-grid.gap-4 { display: flex !important; flex-direction: column;}
}
@media (max-width:600px){
  .hab-card{ flex:0 0 160px; }
  .hab-card img{ height:120px; }
  .hab-card-title{ font-size:.8rem; }
}
@media (min-width:600px) and (max-width:991px) {
  .hab-aside { max-height: 380px;}
}
/* ================= Aside video with overlay ================ */
.hab-aside{ width:30%; }
@media (max-width:992px){ .hab-aside{ width:100%; } }
.media-hero{
  position:relative; margin:0; border-radius: var(--card-radius); overflow:hidden;
  aspect-ratio: 9/16; background:#000; height:100%; width:100%;
}
.media-hero__video{ width:100%; height:100%; object-fit:cover; display:block; }
.media-hero__overlay{
  position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end;
  gap:.5rem; padding:1rem 1rem 1.25rem; color: var(--color-text-wte, #fff);
  background: linear-gradient(to top, rgba(0,0,0,.45), rgba(0,0,0,0) 50%);
}
.media-hero__title{
  margin:0; font-size:clamp(1rem, 2.5vw, 1.25rem);
  font-weight: var(--fw-heading, 600); line-height: var(--line-height-heading, 1.3);
  text-shadow: var(--cm-text-shadow);
}
.media-hero__subtitle{ margin:0; font-size:clamp(.85rem, 2vw, 1rem); color: rgba(255,255,255,.9); }
@media (prefers-reduced-motion: no-preference){
  .media-hero__overlay{ animation: fadeInUp 600ms ease forwards; }
}
#btn-show-all{
  font-weight: var(--fw-semibold,600);
  color: var(--color-text-muted);
  text-decoration: none;
  font-size: var(--fw-strong);
}
#btn-show-all:hover {
  color: var(--blue-500);
}

/* -----------------------------------------------------------
  Hotel 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;
}

.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);
}

