/* Badge backgrounds mapped to theme color variables */
.bg-amber-600   { background-color: var(--color-amber-600);   color: #fff; }
.bg-red-600     { background-color: var(--color-red-600);     color: #fff; }
.bg-emerald-600 { background-color: var(--color-green-600);   color: #fff; } /* gần nhất với emerald */
.bg-purple-700  { background-color: var(--color-purple-500);  color: #fff; } /* gần nhất sẵn có */
.bg-sky-700      { background-color: var(--color-sky-700, #0369a1); color: #fff; }
.bg-orange-600   { background-color: var(--color-orange-600, #ea580c); color: #fff; }
.bg-pink-600     { background-color: var(--color-pink-600, #db2777); color: #fff; }
.bg-indigo-700   { background-color: var(--color-indigo-700, #4338ca); color: #fff; }

/* ===========================
   BASE BADGE STYLE
=========================== */
.badge-glow-primary,
.badge-glow-amber,
.badge-glow-purple,
.badge-glow-indigo,
.badge-glow-emerald,
.badge-glow-sky,
.badge-glow-orange,
.badge-glow-pink,
.badge-glow-red {
  transition: all 0.25s ease;
  box-shadow: 0 0 0 transparent;
}

/* ===========================
   HOVER SHADES + GLOW EFFECT
=========================== */

/* Primary */
.badge-glow-primary:hover {
  filter: brightness(1.1);
  box-shadow: 0 0 16px rgba(45, 91, 135, 0.55);
}

/* Amber */
.badge-glow-amber:hover {
  background-color: var(--color-amber-700, #b45309);
  box-shadow: 0 0 16px rgba(180, 83, 9, 0.55);
}

/* Purple */
.badge-glow-purple:hover {
  background-color: var(--color-purple-600, #7e22ce);
  box-shadow: 0 0 16px rgba(126, 34, 206, 0.55);
}

.badge-glow-purple-light:hover {
  background-color: var(--color-purple-500, #a855f7);
  box-shadow: 0 0 16px rgba(168, 85, 247, 0.55);
}

/* Indigo */
.badge-glow-indigo:hover {
  background-color: var(--color-indigo-800, #3730a3);
  box-shadow: 0 0 16px rgba(67, 56, 202, 0.55);
}

/* Emerald */
.badge-glow-emerald:hover {
  background-color: var(--color-green-700, #047857);
  box-shadow: 0 0 16px rgba(16, 185, 129, 0.55);
}

/* Sky */
.badge-glow-sky:hover {
  background-color: var(--color-sky-800, #075985);
  box-shadow: 0 0 16px rgba(3, 105, 161, 0.55);
}

/* Orange */
.badge-glow-orange:hover {
  background-color: var(--color-orange-700, #c2410c);
  box-shadow: 0 0 16px rgba(234, 88, 12, 0.55);
}

/* Pink */
.badge-glow-pink:hover {
  background-color: var(--color-pink-700, #be185d);
  box-shadow: 0 0 16px rgba(219, 39, 119, 0.55);
}

/* Red */
.badge-glow-red:hover {
  background-color: var(--color-red-700, #b91c1c);
  box-shadow: 0 0 16px rgba(239, 68, 68, 0.55);
}

.lucide-star {
  fill: currentColor;
  stroke: currentColor;
}


#mobile-menu{
  height: 100svh;
  min-height: 100dvh;
  background-color: #fff;
  z-index: 60;
  overflow-y: auto;
}

.hover\:text-primary-foreground:hover {
  color: #fff !important;
}

[data-slot="dialog"].hidden { display: none; }
[data-slot="dialog"].flex { display: flex; }

.vx-stats-row{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:1rem;
  padding: 2rem 0;
}
.vx-stats-row > *{ padding-left:1rem; padding-right:1rem; }

.prose .vx-stats-row{ display:grid !important; }

/*
@media (max-width:640px){
  .vx-stats-row{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
*/

html.modal-open, body.modal-open { overflow: hidden; }
#detail-modal [data-gallery-dots] { pointer-events:auto; }
@supports (height: 100dvh) { /* tối ưu chiều cao trên mobile browser */
  #detail-modal .h-\[300px\] { height: 40dvh; }
}

/* ========== Vietnexa 360° Tour overrides ========== */
[data-tour-iframe] {
  height: 100% !important;
  width: 100% !important;
  display: block;
}

.top-12 {
    top: calc(var(--spacing) * 12);
}

.right-5 {
    right: calc(var(--spacing) * 5);
}

.ls-panel {
  min-width: 10rem;
}

.bg-black\/10 { background-color: rgba(0, 0, 0, 0.1) !important; }
.bg-black\/60 { background-color: rgba(0, 0, 0, 0.6) !important; }
.group:hover .group-hover\:bg-black\/60 { background-color: rgba(0, 0, 0, 0.6) !important; }
.hover\:bg-primary\/80:hover {
  background-color: rgba(0, 99, 191, 0.8) !important;
}

/* logo quá trắng → tạo viền nhẹ bằng bóng đổ */
.partner-logo-light {
  filter: drop-shadow(0 0 3px rgba(0,0,0,0.35));
}

/* nếu muốn nổi thêm chút nữa thì dùng 2 bóng */
.partner-logo-light {
  filter:
    drop-shadow(0 0 2px rgba(0,0,0,0.35))
    drop-shadow(0 2px 4px rgba(0,0,0,0.15));
}
.partner-logo-auto {
  filter: drop-shadow(0 1px 3px rgba(15, 23, 42, .28));
}

.-bottom-20 {
  bottom: calc(var(--spacing) * -20);
}

[data-gallery-surface]{ touch-action: pan-y; }
[data-slot="carousel"] { touch-action: pan-y; }

[data-booking-surface] {
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

@supports (-webkit-touch-callout: none) {
  input,
  select,
  textarea {
    font-size: 16px !important;
  }
}