.header .header-logo img {
    /*width: 100px;*/
}

.bravo_wrap  {
    max-width: 80%;
    margin: 0 auto;
}

/* P10R2-MOB: bravo_wrap + header__container fixed width:80% caused mobile overflow.
   At <992px, force full width so content uses Bootstrap container responsive padding instead. */
@media (max-width: 991px) {
    .bravo_wrap { max-width: 100% !important; padding-left: 0; padding-right: 0; }
    .header__container { width: 100% !important; padding-left: 16px; padding-right: 16px; }
}

.header {
    width: 100%;
}

.header__container {
    width: 80%;
    margin: 0 auto;
}

.bg-blue-new {
    background-color: #5055A4;
}

.bg-dark-1,
.bg-dark-2,
.bg-dark-3 {
    background-color: #fff !important;
    border-bottom: 1px solid #ccc;
}

.mr-10 {
    color: #000;
}

.masthead.-type-1 {
    padding-top: 120px;
    padding-bottom: 60px;
}

.hide {
    display: none !important;
}

.OpeningHours {
    position: absolute;
    left: 35%;
    /*top: 36%;*/
    z-index: 2;
    border: 1px solid #ccc;
    border-radius: 3px;
    padding: 10px;
    display: none;
    background-color: #fff;
    min-width: 230px;
}

.border-gray {
    border: 2px solid #ccc;
}

.tabs__button::after {
    background-color: #000 !important;
}

.searchMenu-loc__field {
    max-height: 300px;
    overflow: scroll;
}

.button.-dark-1:hover {
    background-color: #5055a4 !important;
    border: 1px solid #5055a4 !important;;
}

.section-bg__item.-video-left {
    width: 100%;

}

.layout-custom img {
    border-radius: 10px;
}

.home-banner {
    position: relative;
    min-height: 500px;
}

.home-banner-content {
    position: absolute;
    left: 0;
    top: 30%
}

.custom-mb-70 {
    margin-bottom: 70px;
}

.bravo-list-locations .container {
    overflow: hidden;
}

.masthead.-type-6 {
    margin-top: 100px;
    padding-top: 300px;
    padding-bottom: 100px;
}

.slider-scrollbar {
    height: 0px;
}

.location_banner img {
    max-height: 400px;
    object-fit: cover;
}

.layout-pt-md {
    /*padding-top: 100px;*/
}

.bravo-contact-block {
    padding-top: 100px;
}
.icon-location-2,
.fa-clock-o {
    padding-top: 5px;
    padding-right: 5px;
    padding-left: 5px;
}
.space-phone {
    float: left;
}
.opening-info,
.phone-info {
    padding-left: 20px;
}

.ticket-category {
    width: 62%;
    margin: 0 auto;
}


.ticket-tab-container {
    width: 100%;
    margin: auto;
    padding-top: 30px;
}
.ticket-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.ticket-tab-link {
    padding: 12px 40px;
    cursor: pointer;
    border: 2px solid #ccc;
    background: white;
    text-align: center;
    font-size: 16px;
    border-radius: 50px;
    font-weight: bold;
    color: #000;
    transition: all 0.3s ease;
    opacity: 0.6;
}
.ticket-tab-link.active {
    background: #ffc10d ;
    color: white;
    border-color: #ffc10d ;
    opacity: 1;
}
.ticket-tab-content {
    display: none;
    padding: 15px;
    border: 1px solid #ccc;
    margin-top: 10px;
    font-size: 16px;
    border-radius: 10px;
}
.ticket-tab-content.active {
    display: block;
}

.hotel_rooms_form .hotel_list_rooms .modal-dialog {
    max-width: 800px !important;
}

.form-search-service-hotel .field-items > .row > div {
    padding: 12px 30px !important;
}

.bravo_wrap .form-search-all-service.home4-form-search-hotel .bravo_form.custom {
    border-radius: 100px  !important;
    padding: 15px !important;
}

.masthead.-type-7 {
 margin-bottom: 70px;
}

/*
.fotorama__wrap .fotorama__pointer {
    height: 400px !important;
    width: 400px !important;
}
*/

/*.fotorama__loaded--img  img {
    max-width: 400px !important;
    object-fit: contain;
}*/

/* ========== VnGuide Phase 2 — Hero & homepage ========== */
.vnguide-hero {
  position: relative;
  min-height: 560px;
  padding: 80px 0 96px;
  overflow: hidden;
}
.vnguide-hero-bg {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 0;
  /* P10R2-A: dark fallback so hero never paints pure white before image loads.
     Keeps transparent-header text + hamburger contrast visible from first paint. */
  background: linear-gradient(135deg, #0f2d5e 0%, #1e4a8a 100%);
}

/* P10R2-Z: hero text + tabs + search-box must never be opacity:0 hidden by JS-anim wait.
   Above-the-fold critical content visibility takes precedence over animation polish. */
.vnguide-hero [data-anim-child],
.vnguide-hero-text [data-anim-child],
.vnguide-hero-tabs,
.vnguide-hero-search-box,
.vnguide-hero-popular {
  opacity: 1 !important;
  transform: none !important;
  pointer-events: auto !important;
}
/* P10R2-A: force dark base on masthead-type-1 too — main.css gives it z-index:-1 which
   lets body white show through. Apply bg on the section directly. */
.vnguide-hero.masthead.-type-1 {
  background: linear-gradient(135deg, #0f2d5e 0%, #1e4a8a 100%);
}
/* P10R2-A: mobile hamburger contrast + size guarantee — the icon-menu button on transparent
   header inherits text-white. Force min size + visible color + Unicode fallback so hamburger
   always renders even when icomoon font is loading or blocked. */
.icon-menu {
  min-width: 28px;
  min-height: 28px;
  font-size: 22px;
  line-height: 1;
}
.vnguide-header-transparent .icon-menu,
.vnguide-header-transparent [data-x="header-mobile-icons"] .icon-menu {
  color: #fff !important;
}
.vnguide-header-transparent.is-sticky .icon-menu,
.vnguide-header-normal .icon-menu {
  color: #0f2d5e !important;
}
/* Unicode fallback for `\e90a` (icomoon hamburger). Layered so icomoon glyph wins when loaded. */
.icon-menu::after {
  content: "\2630";
  font-family: system-ui, -apple-system, sans-serif !important;
  font-size: 22px;
  line-height: 1;
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: -1;
}
.icon-menu {
  position: relative;
}
/* Header mobile icons container: enforce visible at mobile breakpoint regardless of inline style. */
@media (max-width: 1199px) {
  [data-x="header-mobile-icons"] {
    display: flex !important;
    gap: 16px;
    align-items: center;
    padding-left: 16px;
  }
}
.vnguide-hero-bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
}
.vnguide-hero-overlay {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, rgba(15,45,94,0.20) 0%, rgba(15,45,94,0.55) 100%);
}
.vnguide-hero-inner {
  position: relative;
  z-index: 2;
}
.vnguide-hero-title {
  color: #fff !important;
  font-size: clamp(22px, 5vw, 56px) !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  text-shadow: 0 2px 24px rgba(0,0,0,0.3);
  margin-bottom: 16px;
  word-break: break-word;
}
.vnguide-hero-sub {
  color: rgba(255,255,255,0.95) !important;
  font-size: clamp(14px, 2vw, 20px);
  max-width: 620px;
  margin: 0 auto;
  line-height: 1.5;
  text-shadow: 0 1px 12px rgba(0,0,0,0.25);
}
@media (max-width: 480px) {
  .vnguide-hero,
  .vnguide-hero-inner {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  .vnguide-hero-title {
    font-size: 22px !important;
  }
}
.vnguide-hero-tabs .tabs__button {
  color: #fff !important;
  opacity: 0.85;
  padding: 8px 4px !important;
}
.vnguide-hero-tabs .tabs__button.is-tab-el-active,
.vnguide-hero-tabs .tabs__button:hover {
  opacity: 1;
  border-bottom: 3px solid #f9c20b !important;
}
.vnguide-hero-search-box {
  background: #fff !important;
  border-radius: 12px !important;
  box-shadow: 0 20px 60px rgba(0,0,0,0.25);
  border: none !important;
  overflow: hidden;
}
.vnguide-hero-popular {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px !important;
}
.vnguide-hero-popular-label {
  color: rgba(255,255,255,0.95);
  font-size: 14px;
  font-weight: 500;
  margin-right: 4px;
}
.vnguide-hero-popular-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}
.vnguide-hero-chip {
  display: inline-block;
  padding: 6px 14px;
  background: rgba(255,255,255,0.15);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 9999px;
  color: #fff !important;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none !important;
  transition: background 150ms ease, transform 150ms ease;
}
.vnguide-hero-chip:hover {
  background: rgba(255,255,255,0.28);
  transform: translateY(-2px);
  color: #fff !important;
}

@media (max-width: 768px) {
  .vnguide-hero {
    min-height: 420px;
    padding: 40px 0 32px;
  }
  .vnguide-hero-title {
    font-size: 28px !important;
  }
  .vnguide-hero-sub {
    font-size: 15px;
    padding: 0 20px;
  }
  .vnguide-hero-popular-chips {
    justify-content: center;
  }
}
@media (max-width: 480px) {
  .vnguide-hero {
    min-height: 360px;
    padding: 24px 0 20px;
  }
  .vnguide-hero-title {
    font-size: 22px !important;
  }
}

/* ========== Rating bubble (TripAdvisor style) ========== */
.vnguide-rating-bubble {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  font-size: 14px;
  color: #15181d;
}
.vnguide-rating-bubble .bubble {
  display: inline-block;
  width: 24px;
  height: 24px;
  line-height: 24px;
  text-align: center;
  border-radius: 50%;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}
.vnguide-rating-bubble.rating-excellent .bubble { background: #00aa6c; }
.vnguide-rating-bubble.rating-good .bubble { background: #33ad5c; }
.vnguide-rating-bubble.rating-mid .bubble { background: #fabb05; }
.vnguide-rating-bubble.rating-low .bubble { background: #d93900; }

/* ========== Badge system ========== */
.vnguide-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.vnguide-badge-choice {
  background: linear-gradient(135deg, #f9c20b 0%, #f59e0b 100%);
  color: #15181d;
}
.vnguide-badge-new {
  background: #2e6bff;
  color: #fff;
}
.vnguide-badge-sponsored {
  background: #f3f4f6;
  color: #6b7280;
  border: 1px solid #e5e7eb;
}
.vnguide-badge-featured {
  background: #fef3c7;
  color: #78350f;
}
.vnguide-badge-open {
  background: #d1fae5;
  color: #065f46;
}
.vnguide-badge-open::before {
  content: '•';
  color: #22c55e;
  margin-right: 4px;
  font-size: 16px;
  vertical-align: middle;
}

/* ========== Section header ========== */
.vnguide-section {
  padding: 64px 0;
}
.vnguide-section-sm {
  padding: 40px 0;
}
.vnguide-section-header {
  margin-bottom: 32px;
}
.vnguide-section-title {
  font-size: 30px;
  font-weight: 700;
  color: #0f2d5e;
  margin-bottom: 8px;
  line-height: 1.2;
}
.vnguide-section-sub {
  font-size: 16px;
  color: #6b7280;
  line-height: 1.5;
}

/* ========== Breadcrumb ========== */
.vnguide-breadcrumb {
  padding: 16px 0;
  font-size: 13px;
  color: #6b7280;
}
.vnguide-breadcrumb-inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}
.vnguide-breadcrumb-link {
  color: #0f2d5e !important;
  text-decoration: none !important;
  font-weight: 500;
}
.vnguide-breadcrumb-link:hover {
  color: #2e6bff !important;
  text-decoration: underline !important;
}
.vnguide-breadcrumb-sep {
  color: #9ca3af;
  margin: 0 2px;
}
.vnguide-breadcrumb-current {
  color: #15181d;
  font-weight: 500;
}

/* ========== Destination hub hero ========== */
.vnguide-destination-hero {
  position: relative;
  min-height: 420px;
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 24px;
  display: flex;
  align-items: flex-end;
}
.vnguide-destination-hero-bg {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 0;
}
.vnguide-destination-hero-bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
}
.vnguide-destination-hero-nobanner {
  background: linear-gradient(135deg, #0f2d5e 0%, #2e6bff 100%);
}
.vnguide-destination-hero-overlay {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, rgba(15,45,94,0) 30%, rgba(15,45,94,0.75) 100%);
}
.vnguide-destination-hero-content {
  position: relative;
  z-index: 2;
  padding: 48px 48px;
  color: #fff;
  width: 100%;
}
.vnguide-destination-title {
  color: #fff !important;
  font-size: clamp(32px, 5vw, 56px) !important;
  font-weight: 800 !important;
  margin-bottom: 8px;
  line-height: 1.1 !important;
  text-shadow: 0 2px 12px rgba(0,0,0,0.3);
}
.vnguide-destination-subtitle {
  color: rgba(255,255,255,0.95) !important;
  font-size: 17px;
  margin-bottom: 20px;
  max-width: 600px;
  text-shadow: 0 1px 6px rgba(0,0,0,0.25);
}
.vnguide-destination-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
.vnguide-destination-stat {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  font-size: 14px;
}
.vnguide-destination-stat i {
  color: #f9c20b;
  font-size: 16px;
}
.vnguide-destination-stat strong {
  font-weight: 700;
  color: #fff;
}

@media (max-width: 768px) {
  .vnguide-destination-hero { min-height: 320px; }
  .vnguide-destination-hero-content { padding: 24px 20px; }
}

/* ========== Destination hub: service tabs ========== */
.vnguide-destination-tabs {
  margin: 0 0 48px;
}
.vnguide-destination-tabs-inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
}
.vnguide-destination-tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  background: #fff;
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  text-align: center;
  text-decoration: none !important;
  color: #15181d !important;
  transition: all 200ms ease;
}
.vnguide-destination-tab:hover {
  border-color: #f9c20b;
  transform: translateY(-4px);
  box-shadow: 0 12px 24px rgba(15,45,94,0.1);
  color: #0f2d5e !important;
}
.vnguide-destination-tab i {
  font-size: 32px;
  margin-bottom: 12px;
  color: #0f2d5e;
}
.vnguide-destination-tab:hover i {
  color: #f9c20b;
}
.vnguide-destination-tab-label {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 4px;
}
.vnguide-destination-tab-count {
  font-size: 13px;
  color: #6b7280;
}
.vnguide-destination-tab.no-content {
  opacity: 0.6;
}
.vnguide-destination-tab-empty {
  color: #9ca3af !important;
  font-style: italic;
}

/* ========== Listing page hero ========== */
.vnguide-listing-hero {
  background: linear-gradient(180deg, #f9fafb 0%, #ffffff 100%);
  padding: 40px 0 32px;
  border-bottom: 1px solid #e5e7eb;
}
.vnguide-listing-hero-content {
  max-width: 920px;
  margin: 0 auto;
  text-align: center;
}
.vnguide-listing-h1 {
  font-size: clamp(22px, 3vw, 34px) !important;
  font-weight: 700 !important;
  color: #0f2d5e !important;
  line-height: 1.2 !important;
  margin-bottom: 10px;
}
.vnguide-listing-sub {
  font-size: 15px;
  color: #6b7280;
  margin-bottom: 24px;
  line-height: 1.5;
}

@media (max-width: 768px) {
  .vnguide-listing-hero { padding: 28px 0 20px; }
  .vnguide-listing-h1 {
    font-size: 18px !important;
    padding: 0 12px;
    overflow-wrap: normal;
    word-break: normal;
    max-width: 100%;
    box-sizing: border-box;
  }
  .vnguide-listing-sub { padding: 0 12px; font-size: 13px; overflow-wrap: normal; word-break: normal; }
  .vnguide-listing-hero-content { padding: 0; max-width: 100%; }
}
@media (max-width: 480px) {
  .vnguide-listing-h1 { font-size: 17px !important; line-height: 1.3 !important; padding: 0 10px; }
}

/* ========== Ad Placement: Featured Tour Carousel ========== */
.vnguide-ad-carousel {
  padding: 56px 0;
  background: linear-gradient(135deg, #fefbf1 0%, #fff 100%);
}
.vnguide-ad-carousel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 28px;
  gap: 16px;
  flex-wrap: wrap;
}
.vnguide-ad-carousel-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 20px;
}
.vnguide-ad-card {
  display: block;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none !important;
  color: #15181d !important;
  transition: all 250ms ease;
}
.vnguide-ad-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 32px rgba(15,45,94,0.1);
  border-color: #f9c20b;
  color: #0f2d5e !important;
}
.vnguide-ad-card-img-wrap {
  position: relative;
  padding-top: 66%;
  overflow: hidden;
  background: #f3f4f6;
}
.vnguide-ad-card-img-wrap img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.vnguide-ad-card-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 4px 10px;
  background: rgba(255,255,255,0.95);
  color: #6b7280;
  font-size: 11px;
  font-weight: 600;
  border-radius: 4px;
  letter-spacing: 0.02em;
  backdrop-filter: blur(4px);
}
.vnguide-ad-card-body {
  padding: 14px 16px 16px;
}
.vnguide-ad-card-location {
  font-size: 12px;
  color: #6b7280;
  margin-bottom: 6px;
}
.vnguide-ad-card-location i { color: #2e6bff; margin-right: 4px; }
.vnguide-ad-card-title {
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  margin-bottom: 10px !important;
  color: #0f2d5e !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.6em;
}
.vnguide-ad-card-meta {
  font-size: 12px;
  color: #6b7280;
  margin-bottom: 10px;
}
.vnguide-ad-card-meta i { color: #f9c20b; margin-right: 4px; }
.vnguide-ad-card-price {
  display: flex;
  align-items: baseline;
  gap: 6px;
  padding-top: 10px;
  border-top: 1px solid #f3f4f6;
}
.vnguide-ad-card-price-label {
  font-size: 11px;
  color: #6b7280;
}
.vnguide-ad-card-price-value {
  font-size: 16px;
  font-weight: 700;
  color: #f59e0b;
}

/* ========== Ad: Sponsored sidebar on destination page ========== */
.vnguide-ad-sidebar {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 24px;
}
.vnguide-ad-sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.vnguide-ad-sidebar-title {
  font-size: 15px;
  font-weight: 700;
  color: #0f2d5e;
}
.vnguide-ad-sidebar-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.vnguide-ad-sidebar-item {
  display: flex;
  gap: 12px;
  padding: 8px;
  border-radius: 8px;
  text-decoration: none !important;
  color: #15181d !important;
  transition: background 150ms;
}
.vnguide-ad-sidebar-item:hover {
  background: #f9fafb;
  color: #0f2d5e !important;
}
.vnguide-ad-sidebar-item-img {
  flex: 0 0 72px;
  width: 72px;
  height: 72px;
  border-radius: 8px;
  overflow: hidden;
  background: #f3f4f6;
}
.vnguide-ad-sidebar-item-img img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.vnguide-ad-sidebar-item-body {
  flex: 1;
  min-width: 0;
}
.vnguide-ad-sidebar-item-title {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 4px;
}
.vnguide-ad-sidebar-item-price {
  font-size: 13px;
  color: #f59e0b;
  font-weight: 700;
}

/* ========== Destination hub: 2-column layout with sponsored sidebar ========== */
.vnguide-destination-body {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 32px;
  margin-top: 16px;
}
.vnguide-destination-main { min-width: 0; }
.vnguide-destination-aside { min-width: 0; }
@media (max-width: 992px) {
  .vnguide-destination-body { grid-template-columns: 1fr; }
  .vnguide-destination-aside { order: 99; }
}

/* ========== Discovery CTA group (Gọi/Zalo/Maps/Affiliate) ========== */
.vnguide-detail-sidebar {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 20px;
  position: sticky;
  top: 88px;
}
.vnguide-detail-sidebar-header { margin-bottom: 14px; }
.vnguide-detail-sidebar-title {
  font-size: 16px;
  font-weight: 700;
  color: #0f2d5e;
  margin-bottom: 6px;
}
.vnguide-detail-sidebar-price {
  display: flex; align-items: baseline; gap: 6px;
  padding-top: 8px; border-top: 1px solid #f3f4f6;
  margin-top: 4px;
}
.vnguide-detail-sidebar-price .price-label { font-size: 12px; color: #6b7280; }
.vnguide-detail-sidebar-price .price-value { font-size: 22px; font-weight: 700; color: #f59e0b; }
.vnguide-detail-sidebar-price .price-unit { font-size: 12px; color: #6b7280; }

.vnguide-detail-hotel-ctabar {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 20px;
}
.vnguide-detail-hotel-ctabar .vnguide-cta-group {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.vnguide-cta-group {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.vnguide-cta {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  text-decoration: none !important;
  color: #15181d !important;
  background: #fff;
  transition: all 180ms ease;
  cursor: pointer;
}
.vnguide-cta:hover {
  border-color: #f9c20b;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(15,45,94,0.08);
  color: #0f2d5e !important;
}
.vnguide-cta i {
  font-size: 22px;
  width: 28px;
  text-align: center;
  flex: 0 0 28px;
}
.vnguide-cta-label {
  display: block;
  font-weight: 600;
  font-size: 15px;
  line-height: 1.2;
}
.vnguide-cta-sub {
  display: block;
  font-size: 12px;
  color: #6b7280;
  margin-top: 2px;
}
.vnguide-cta > .vnguide-cta-label + .vnguide-cta-sub,
.vnguide-cta > div {
  display: flex;
  flex-direction: column;
}
.vnguide-cta-call { border-color: #dcfce7; background: linear-gradient(180deg, #f0fdf4 0%, #fff 100%); }
.vnguide-cta-call i { color: #16a34a; }
.vnguide-cta-call:hover { border-color: #16a34a; }
/* VnGuide hotline — quảng cáo địa điểm */
.vnguide-cta-call--vnguide { border-color: #fde68a; background: linear-gradient(180deg, #fffbeb 0%, #fff 100%); }
.vnguide-cta-call--vnguide i { color: #d97706; }
.vnguide-cta-call--vnguide:hover { border-color: #f59e0b; }
/* Venue phone not yet available */
.vnguide-cta--disabled { border-color: #e5e7eb; background: #f9fafb; opacity: .55; cursor: default; pointer-events: none; }
.vnguide-cta-zalo { border-color: #dbeafe; background: linear-gradient(180deg, #eff6ff 0%, #fff 100%); }
.vnguide-cta-zalo i { color: #2563eb; }
.vnguide-cta-zalo:hover { border-color: #2563eb; }
/* VnGuide fallback zalo — muted style */
.vnguide-cta-zalo--vnguide { border-color: #e5e7eb; background: linear-gradient(180deg, #f9fafb 0%, #fff 100%); }
.vnguide-cta-zalo--vnguide i { color: #6b7280; }
.vnguide-cta-zalo--vnguide:hover { border-color: #9ca3af; }
.vnguide-cta-maps { border-color: #fef3c7; background: linear-gradient(180deg, #fffbeb 0%, #fff 100%); }
.vnguide-cta-maps i { color: #d97706; }
.vnguide-cta-maps:hover { border-color: #d97706; }

.vnguide-cta-affiliate {
  padding: 0;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
}
.vnguide-cta-summary {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
  font-weight: 600;
}
.vnguide-cta-summary::-webkit-details-marker { display: none; }
.vnguide-cta-summary i {
  font-size: 22px; color: #6366f1;
  width: 28px; text-align: center; flex: 0 0 28px;
}
.vnguide-cta-summary::after {
  content: '▼';
  margin-left: auto;
  color: #9ca3af;
  font-size: 12px;
  transition: transform 200ms;
}
.vnguide-cta-affiliate[open] .vnguide-cta-summary::after {
  transform: rotate(180deg);
}
.vnguide-cta-affiliate-list {
  display: flex;
  flex-direction: column;
  border-top: 1px solid #f3f4f6;
  padding: 8px;
}
.vnguide-cta-affiliate-item {
  display: flex;
  align-items: center;
  padding: 10px 12px;
  border-radius: 8px;
  text-decoration: none !important;
  color: #15181d !important;
  font-weight: 500;
}
.vnguide-cta-affiliate-item:hover {
  background: #f9fafb;
  color: #0f2d5e !important;
}
.vnguide-cta-affiliate-arrow {
  margin-left: auto;
  color: #9ca3af;
}

/* Sticky bottom CTA bar — mobile only */
.vnguide-cta-sticky-mobile {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 900;
  background: #fff;
  border-top: 1px solid #e5e7eb;
  box-shadow: 0 -4px 16px rgba(0,0,0,0.08);
  padding: 10px 12px env(safe-area-inset-bottom, 10px);
  gap: 8px;
}
.vnguide-cta-sticky-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 12px 16px;
  border-radius: 10px;
  text-decoration: none !important;
  font-weight: 700;
  font-size: 14px;
}
.vnguide-cta-sticky-call {
  background: #16a34a;
  color: #fff !important;
}
.vnguide-cta-sticky-zalo {
  background: #2563eb;
  color: #fff !important;
}

@media (max-width: 768px) {
  .vnguide-cta-sticky-mobile { display: flex; }
  body { padding-bottom: 70px; }
  .vnguide-detail-sidebar { position: static; }
}

/* ========== VnGuide Footer (new 4-col) ========== */
.vnguide-footer-main { color: #475569; }
.vnguide-footer-brand { max-width: 260px; }
.vnguide-footer-logo {
  display: inline-block;
  font-size: 24px;
  font-weight: 800;
  color: #0f2d5e !important;
  text-decoration: none !important;
  letter-spacing: -0.02em;
  margin-bottom: 8px;
}
.vnguide-footer-tagline {
  font-size: 14px;
  line-height: 1.5;
  color: #64748b;
  margin-bottom: 16px;
}
.vnguide-footer-contact a {
  color: #475569 !important;
  text-decoration: none !important;
  transition: color 150ms;
}
.vnguide-footer-contact a:hover { color: #0f2d5e !important; }
.vnguide-footer-contact i { color: #f9c20b; width: 16px; }
.vnguide-footer-heading {
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #0f2d5e !important;
  margin-bottom: 16px;
}
.vnguide-footer-subheading {
  font-size: 13px;
  font-weight: 600;
  color: #0f2d5e;
  margin-bottom: 10px;
  margin-top: 20px;
}
.vnguide-footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.vnguide-footer-links a {
  color: #475569 !important;
  text-decoration: none !important;
  font-size: 14px;
  transition: color 150ms;
}
.vnguide-footer-links a:hover { color: #f9c20b !important; }
.vnguide-footer-cities { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px 16px !important; }
.vnguide-footer-social {
  display: flex;
  gap: 10px;
  align-items: center;
}
.vnguide-footer-social a {
  width: 36px; height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #f1f5f9;
  color: #0f2d5e !important;
  text-decoration: none !important;
  transition: all 180ms;
}
.vnguide-footer-social a:hover {
  background: #f9c20b;
  color: #fff !important;
  transform: translateY(-2px);
}
.vnguide-footer-newsletter {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.vnguide-footer-newsletter-input {
  flex: 1 1 auto;
  min-width: 0;
  height: 38px;
  padding: 0 12px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 14px;
  background: #fff;
}
.vnguide-footer-newsletter-btn {
  height: 38px;
  padding: 0 14px;
  border: none;
  border-radius: 8px;
  background: #f9c20b;
  color: #0f2d5e;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  transition: background 150ms;
}
.vnguide-footer-newsletter-btn:hover { background: #e6b006; }

@media (max-width: 768px) {
  .vnguide-footer-main { text-align: left; }
  .vnguide-footer-newsletter { flex-direction: column; }
  .vnguide-footer-newsletter-btn { width: 100%; }
}

/* ========== VnGuide consolidated header ========== */
.vnguide-header {
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
  transition: all 200ms ease;
}
.vnguide-header.is-sticky {
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
}
.vnguide-header .header__container {
  max-width: 1400px;
  margin: 0 auto;
}
.vnguide-header-transparent {
  position: absolute;
  top: 0; left: 0; right: 0;
  z-index: 50;
  background: transparent;
  border-bottom: 1px solid rgba(255,255,255,0.2);
}
.vnguide-header-transparent:not(.is-sticky) a,
.vnguide-header-transparent:not(.is-sticky) .menu__nav a,
.vnguide-header-transparent:not(.is-sticky) .header-menu-name {
  color: #fff !important;
}
.vnguide-header-transparent.is-sticky {
  position: fixed;
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
}
.vnguide-header-transparent.is-sticky a,
.vnguide-header-transparent.is-sticky .menu__nav a {
  color: #15181d !important;
}

/* ========== Google Reviews block ========== */
.vnguide-google-reviews {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 24px;
  margin-bottom: 32px;
}
.vnguide-google-reviews-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 20px;
  gap: 16px;
  flex-wrap: wrap;
}
.vnguide-google-reviews-title {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #0f2d5e !important;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.vnguide-google-logo {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.5px;
}
.vnguide-google-reviews-summary {
  display: flex;
  align-items: center;
  gap: 10px;
}
.vnguide-google-reviews-count {
  font-size: 14px;
  color: #6b7280;
}
.vnguide-google-reviews-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 768px) {
  .vnguide-google-reviews-list { grid-template-columns: 1fr 1fr; }
}
.vnguide-google-review-card {
  padding: 16px;
  background: #f9fafb;
  border-radius: 10px;
}
.vnguide-google-review-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.vnguide-google-review-avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 40px;
}
.vnguide-google-review-avatar-fallback {
  background: #2563eb;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 16px;
}
.vnguide-google-review-author {
  flex: 1;
  min-width: 0;
}
.vnguide-google-review-name {
  font-weight: 600;
  font-size: 14px;
  color: #0f2d5e !important;
  text-decoration: none !important;
  display: block;
}
.vnguide-google-review-time {
  font-size: 12px;
  color: #6b7280;
}
.vnguide-google-review-rating {
  color: #f59e0b;
  font-size: 13px;
  letter-spacing: 2px;
}
.vnguide-google-review-text {
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: #374151 !important;
  margin: 0;
}
.vnguide-google-reviews-footer {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #f3f4f6;
  color: #6b7280;
  font-size: 12px;
}
.vnguide-google-reviews-footer a {
  color: #2563eb !important;
  text-decoration: none !important;
}
.vnguide-google-reviews-footer a:hover { text-decoration: underline !important; }

/* ========== Listing card rating bubble application ========== */
.bravo-list-item .ratings,
.listing-card .rating-box {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* ========== A11y polish (audit2 P1) ========== */
/* Restore visible focus ring — overrides legacy `outline: 0` (WCAG 2.4.7) */
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid #f9c20b !important;
  outline-offset: 2px !important;
}
/* Improve label contrast — audit2 found .text-light-1 (#697488) fails AA on white */
.form-input label,
.form-input > label.lh-1 {
  color: #4b5563 !important;
}
.bravo-contact-block .form-input select {
  width: 100%;
  min-height: 70px;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  padding: 25px 15px 0;
  background: #fff;
}
.bravo-contact-block .form-input select ~ label {
  transform: translateY(-10px);
}

.vnguide-contact-ad-page {
  padding-top: 0;
  background: #f5f7fb;
}

.vnguide-contact-ad-page .vnguide-ad-contact-hero {
  background: linear-gradient(135deg, #e8f2ff 0%, #f7fbff 100%) !important;
  border-bottom: 1px solid #dbeafe;
}

.vnguide-ad-contact-form-section {
  padding: 34px 0 48px;
  background: #f5f7fb;
}

.vnguide-ad-contact-form-section .map-form {
  margin-top: 0 !important;
}

.vnguide-ad-contact-intro {
  height: 100%;
  padding: 28px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
}

.vnguide-ad-contact-kicker {
  color: #d97706;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .4px;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.vnguide-ad-contact-intro h2 {
  margin: 0 0 10px;
  color: #0f2d5e;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 800;
}

.vnguide-ad-contact-intro p {
  margin: 0 0 18px;
  color: #4b5563;
  font-size: 15px;
  line-height: 1.65;
}

.vnguide-ad-contact-list {
  display: grid;
  gap: 10px;
}

.vnguide-ad-contact-list div {
  padding: 14px 16px;
  border: 1px solid #edf2f7;
  border-radius: 8px;
  background: #f8fafc;
}

.vnguide-ad-contact-list strong {
  display: block;
  color: #0f2d5e;
  font-size: 15px;
  margin-bottom: 4px;
}

.vnguide-ad-contact-list span {
  display: block;
  color: #6b7280;
  font-size: 13px;
  line-height: 1.5;
}

.vnguide-ad-contact-proof {
  margin-top: 16px;
  padding: 16px;
  border-radius: 8px;
  background: #0f2d5e;
}

.vnguide-ad-contact-proof span {
  display: block;
  margin-bottom: 5px;
  color: #f9c20b;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.vnguide-ad-contact-proof strong {
  display: block;
  color: #fff;
  font-size: 14px;
  line-height: 1.45;
}

.vnguide-ad-placement-map {
  padding: 42px 0 48px;
  background: #fff;
  border-top: 1px solid #e5e7eb;
  border-bottom: 1px solid #e5e7eb;
}

.vnguide-ad-placement-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  gap: 24px;
  align-items: end;
  margin-bottom: 22px;
}

.vnguide-ad-placement-head h2 {
  max-width: 780px;
  margin: 0;
  color: #07133d;
  font-size: 32px;
  line-height: 1.16;
  font-weight: 900;
  letter-spacing: 0;
}

.vnguide-ad-placement-head p {
  margin: 0;
  color: #667085;
  font-size: 15px;
  line-height: 1.6;
}

.vnguide-ad-placement-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.vnguide-ad-placement-card {
  min-height: 190px;
  padding: 20px;
  border: 1px solid rgba(15, 45, 94, .10);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 1px rgba(15, 23, 42, .03);
}

.vnguide-ad-placement-card span {
  display: inline-flex;
  min-height: 28px;
  min-width: 36px;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  border-radius: 999px;
  background: #f9c20b;
  color: #07133d;
  font-size: 12px;
  font-weight: 900;
}

.vnguide-ad-placement-card h3 {
  margin: 0 0 9px;
  color: #07133d;
  font-size: 18px;
  line-height: 1.28;
  font-weight: 900;
}

.vnguide-ad-placement-card p {
  margin: 0;
  color: #667085;
  font-size: 14px;
  line-height: 1.58;
}

.vnguide-ad-process-section {
  background: #f5f7fb;
}

@media (max-width: 991px) {
  .vnguide-ad-contact-intro { padding: 22px; }
  .vnguide-ad-placement-head { grid-template-columns: 1fr; align-items: start; }
  .vnguide-ad-placement-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575px) {
  .vnguide-ad-placement-map { padding: 30px 0; }
  .vnguide-ad-contact-hero h1,
  .vnguide-ad-contact-hero p,
  .vnguide-ad-contact-intro h2,
  .vnguide-ad-placement-head h2 {
    overflow-wrap: anywhere;
    word-break: normal;
  }
  .vnguide-ad-placement-head h2 { font-size: 24px; line-height: 1.22; }
  .vnguide-ad-placement-grid { grid-template-columns: 1fr; }
  .vnguide-ad-placement-card { min-height: 0; }
}

/* Homepage restaurant cards — Apple-inspired: one clear object, stable media, compact copy. */
.vnguide-home-space-section {
  background: #f5f5f7;
}

.vnguide-home-space-section .sectionTitle__title {
  max-width: 920px;
  color: #07133d;
  font-size: 40px;
  line-height: 1.12;
  letter-spacing: 0;
  font-weight: 800;
}

.vnguide-home-space-section .sectionTitle__text {
  margin-top: 10px !important;
  color: #667085;
  font-size: 16px;
  line-height: 1.5;
}

.vnguide-home-space-section .button.-blue-1 {
  min-height: 52px;
  border-radius: 8px;
  background: #eceef5;
  color: #c98400;
  border: 0;
}

.vnguide-home-space-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}

.vnguide-home-space-card {
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  min-height: 100%;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 8px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  box-shadow: 0 1px 1px rgba(15, 23, 42, .03);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.vnguide-home-space-card:hover {
  transform: translateY(-4px);
  border-color: rgba(15, 45, 94, .18);
  box-shadow: 0 18px 36px rgba(15, 23, 42, .10);
  text-decoration: none;
}

.vnguide-home-space-media {
  position: relative;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: #e5e7eb;
}

.vnguide-home-space-media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .35s ease;
}

.vnguide-home-space-card:hover .vnguide-home-space-media img {
  transform: scale(1.035);
}

.vnguide-home-space-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, .24), transparent 42%);
  pointer-events: none;
}

.vnguide-home-space-badges {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  max-width: calc(100% - 24px);
}

.vnguide-home-space-badges span {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(7, 19, 61, .88);
  color: #f9c20b;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
}

.vnguide-home-space-body {
  display: flex;
  min-height: 152px;
  flex-direction: column;
  padding: 18px;
}

.vnguide-home-space-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-height: 22px;
  margin-bottom: 8px;
  color: #667085;
  font-size: 13px;
  line-height: 1.35;
}

.vnguide-home-space-meta span + span::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  margin: 0 8px 2px 0;
  border-radius: 50%;
  background: #d0d5dd;
}

.vnguide-home-space-body h3 {
  margin: 0;
  color: #07133d;
  display: -webkit-box;
  font-size: 18px;
  line-height: 1.28;
  font-weight: 800;
  letter-spacing: 0;
  overflow: hidden;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.vnguide-home-space-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: auto;
  padding-top: 16px;
}

.vnguide-home-space-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: #f2f4f7;
  color: #344054;
  font-size: 12px;
  font-weight: 700;
}

.vnguide-home-space-fallback {
  display: flex;
  height: 100%;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: linear-gradient(135deg, #0f2d5e, #1e40af);
  color: #fff;
  text-align: center;
  font-weight: 800;
}

/* Homepage featured destinations: static 4-column grid, max 2 rows. */
.vnguide-home-destinations {
  background: #f5f5f7;
}

.vnguide-home-destinations .sectionTitle__title {
  color: #07133d;
  font-size: 40px;
  line-height: 1.12;
  font-weight: 800;
  letter-spacing: 0;
}

.vnguide-home-destinations .sectionTitle__text {
  max-width: 960px;
  margin: 12px auto 0 !important;
  color: #667085;
  font-size: 17px;
  line-height: 1.6;
}

.vnguide-home-destination-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}

.vnguide-home-destination-card {
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  min-height: 100%;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 8px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  box-shadow: 0 1px 1px rgba(15, 23, 42, .03);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.vnguide-home-destination-card:hover {
  transform: translateY(-4px);
  border-color: rgba(15, 45, 94, .18);
  box-shadow: 0 18px 36px rgba(15, 23, 42, .10);
  text-decoration: none;
}

.vnguide-home-destination-media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #e5e7eb;
}

.vnguide-home-destination-media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .35s ease;
}

.vnguide-home-destination-card:hover .vnguide-home-destination-media img {
  transform: scale(1.035);
}

.vnguide-home-destination-body {
  display: flex;
  min-height: 128px;
  flex-direction: column;
  padding: 18px;
}

.vnguide-home-destination-body h4 {
  display: -webkit-box;
  margin: 0 0 8px;
  overflow: hidden;
  overflow-wrap: anywhere;
  color: #07133d;
  font-size: 20px;
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: 0;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.vnguide-home-destination-body span {
  color: #667085;
  font-size: 15px;
  line-height: 1.35;
}

.vnguide-home-destination-link {
  margin-top: auto;
  padding-top: 14px;
  color: #c98400;
  font-size: 13px;
  font-weight: 800;
}

.vnguide-home-destination-fallback {
  display: flex;
  height: 100%;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #0f2d5e, #1e40af);
  color: #f9c20b;
  font-size: 44px;
  font-weight: 800;
}

@media (max-width: 1199px) {
  .vnguide-home-space-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .vnguide-home-destination-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 991px) {
  .vnguide-home-space-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vnguide-home-space-section .sectionTitle__title { font-size: 34px; }
  .vnguide-home-destination-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vnguide-home-destinations .sectionTitle__title { font-size: 34px; }
}

@media (max-width: 575px) {
  .vnguide-home-space-grid { grid-template-columns: 1fr; gap: 16px; }
  .vnguide-home-space-section .sectionTitle__title { font-size: 26px; }
  .vnguide-home-space-body { min-height: 140px; padding: 16px; }
  .vnguide-home-space-body h3 { font-size: 18px; }
  .vnguide-home-destination-grid { grid-template-columns: 1fr; gap: 16px; }
  .vnguide-home-destinations .sectionTitle__title { font-size: 26px; }
  .vnguide-home-destinations .sectionTitle__text { font-size: 15px; }
  .vnguide-home-destination-body { min-height: 112px; padding: 16px; }
  .vnguide-home-destination-body h4 { font-size: 18px; }
}

/* Homepage VnTicket cards use the same card language as restaurant/listing cards. */
.home-vnticket-section .vnguide-home-ticket-card {
  border: 1px solid rgba(255, 255, 255, .14) !important;
  border-radius: 8px !important;
  box-shadow: 0 1px 1px rgba(0, 0, 0, .10) !important;
}

.home-vnticket-section .vnguide-home-ticket-card:hover {
  box-shadow: 0 18px 36px rgba(0, 0, 0, .24) !important;
}

.home-vnticket-section .vnguide-home-ticket-media {
  aspect-ratio: 4 / 5 !important;
}

.home-vnticket-section .vnguide-home-ticket-badge {
  min-height: 28px !important;
  padding: 0 10px !important;
  border-radius: 999px !important;
  background: rgba(249, 194, 11, .96) !important;
  color: #07133d !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
}

.home-vnticket-section .vnguide-home-ticket-card h3 {
  display: -webkit-box !important;
  min-height: auto !important;
  overflow: hidden !important;
  overflow-wrap: anywhere;
  color: #07133d !important;
  font-size: 18px !important;
  line-height: 1.28 !important;
  font-weight: 800 !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

/* Shared listing thumbnails: keep image, title, meta, and CTA inside one real card. */
.vnguide-event-guide {
  padding: 34px 0 12px;
  background: #f5f5f7;
}

.vnguide-event-guide-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 22px;
}

.vnguide-event-guide-head span {
  display: block;
  margin-bottom: 7px;
  color: #c98400;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.vnguide-event-guide-head h2 {
  max-width: 760px;
  margin: 0;
  color: #07133d;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: 0;
}

.vnguide-event-guide-head a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding: 0 18px;
  border: 1px solid rgba(15, 45, 94, .14);
  border-radius: 8px;
  background: #fff;
  color: #0f2d5e;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}

.vnguide-event-guide-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.vnguide-event-guide-card {
  display: block;
  min-height: 190px;
  padding: 18px;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 8px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  box-shadow: 0 1px 1px rgba(15, 23, 42, .03);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.vnguide-event-guide-card:hover {
  transform: translateY(-3px);
  border-color: rgba(15, 45, 94, .18);
  box-shadow: 0 18px 34px rgba(15, 23, 42, .10);
  text-decoration: none;
}

.vnguide-event-guide-card span {
  display: inline-flex;
  min-height: 26px;
  align-items: center;
  margin-bottom: 18px;
  padding: 0 10px;
  border-radius: 999px;
  background: #f2f4f7;
  color: #344054;
  font-size: 11px;
  font-weight: 800;
}

.vnguide-event-guide-card h3 {
  margin: 0 0 9px;
  color: #07133d;
  font-size: 18px;
  line-height: 1.28;
  font-weight: 800;
  letter-spacing: 0;
}

.vnguide-event-guide-card p {
  margin: 0;
  color: #667085;
  font-size: 14px;
  line-height: 1.55;
}

.bravo-vnguide-list-hotel .swiper-slide {
  height: auto;
}

.bravo-vnguide-list-hotel .hotelsCard.-type-1,
.bravo-list-item .hotelsCard.-type-1,
.bravo-list-item .activityCard.-type-1,
.bravo-list-event .activityCard.-type-1 {
  height: 100%;
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 1px rgba(15, 23, 42, .03);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.bravo-vnguide-list-hotel .hotelsCard.-type-1:hover,
.bravo-list-item .hotelsCard.-type-1:hover,
.bravo-list-item .activityCard.-type-1:hover,
.bravo-list-event .activityCard.-type-1:hover {
  transform: translateY(-3px);
  border-color: rgba(15, 45, 94, .18);
  box-shadow: 0 18px 34px rgba(15, 23, 42, .10);
}

.bravo-vnguide-list-hotel .hotelsCard__image,
.bravo-list-item .hotelsCard__image,
.bravo-list-item .activityCard__image,
.bravo-list-event .activityCard__image {
  border-radius: 0 !important;
}

.bravo-vnguide-list-hotel .hotelsCard__image .ratio-1\:1::before,
.bravo-list-item .hotelsCard__image .ratio-1\:1::before,
.bravo-list-item .activityCard__image .ratio-1\:1::before,
.bravo-list-event .activityCard__image .ratio-1\:1::before {
  padding-bottom: 125%;
}

.bravo-vnguide-list-hotel .hotelsCard__image .cardImage,
.bravo-list-item .hotelsCard__image .cardImage,
.bravo-list-item .activityCard__image .cardImage,
.bravo-list-event .activityCard__image .cardImage {
  border-radius: 0 !important;
}

.bravo-vnguide-list-hotel .hotelsCard__image img,
.bravo-list-item .hotelsCard__image img,
.bravo-list-item .activityCard__image img,
.bravo-list-event .activityCard__image img {
  border-radius: 0 !important;
}

.bravo-vnguide-list-hotel .hotelsCard__content,
.bravo-list-item .hotelsCard__content,
.bravo-list-item .activityCard__content,
.bravo-list-event .activityCard__content {
  margin-top: 0 !important;
  padding: 16px;
}

.bravo-vnguide-list-hotel .hotelsCard__title span,
.bravo-list-item .hotelsCard__title span,
.bravo-list-item .activityCard__title span,
.bravo-list-event .activityCard__title span {
  display: -webkit-box;
  overflow: hidden;
  overflow-wrap: anywhere;
  background-image: none;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

@media (max-width: 991px) {
  .vnguide-event-guide-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bravo-list-item .col-12-mb {
    width: 100% !important;
  }

  .vnguide-service-list-card {
    overflow: hidden;
    padding-top: 0 !important;
    border: 1px solid rgba(15, 23, 42, .08) !important;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 1px 1px rgba(15, 23, 42, .03);
  }

  .vnguide-service-list-card > .row {
    margin: 0 !important;
  }

  .vnguide-service-list-card > .row > .col-md-auto:first-child,
  .vnguide-service-list-card > .row > .col-md,
  .vnguide-service-list-card > .row > .col-md-auto.text-right {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }

  .vnguide-service-list-card > .row > .col-md-auto:first-child {
    padding: 0 !important;
  }

  .vnguide-service-list-card > .row > .col-md {
    padding: 16px 16px 0 !important;
  }

  .vnguide-service-list-card > .row > .col-md-auto.text-right {
    padding: 0 16px 16px !important;
    text-align: left !important;
  }

  .vnguide-service-list-card .cardImage {
    width: 100% !important;
    border-radius: 0 !important;
  }

  .vnguide-service-list-card .ratio-1\:1::before {
    padding-bottom: 125%;
  }

  .vnguide-service-list-card .cardImage__content > img {
    min-height: 0 !important;
    max-height: none !important;
    border-radius: 0 !important;
  }

  .vnguide-service-list-card h3,
  .vnguide-service-list-card h4 {
    margin: 0;
    color: #07133d;
    font-size: 18px !important;
    line-height: 1.35 !important;
    font-weight: 800 !important;
    letter-spacing: 0;
  }

  .vnguide-service-list-card h3 a,
  .vnguide-service-list-card h4 a {
    color: inherit;
  }

  .vnguide-service-list-card h3 a,
  .vnguide-service-list-card h4 span {
    display: -webkit-box;
    overflow: hidden;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .vnguide-service-list-card .button {
    width: 100%;
    min-height: 46px;
    justify-content: center;
    border-radius: 8px;
    margin-top: 14px !important;
  }
}

@media (max-width: 575px) {
  .vnguide-event-guide {
    padding: 26px 0 8px;
  }

  .vnguide-event-guide-head {
    display: block;
  }

  .vnguide-event-guide-head h2 {
    font-size: 24px;
  }

  .vnguide-event-guide-head a {
    margin-top: 14px;
  }

  .vnguide-event-guide-grid {
    grid-template-columns: 1fr;
  }

  .vnguide-event-guide-card {
    min-height: 0;
  }

  .vnguide-listing-hero,
  #vnguide-event-list {
    max-width: 100vw;
    overflow-x: hidden;
  }

  .vnguide-listing-hero .container,
  #vnguide-event-list .container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .vnguide-listing-hero .bg-white,
  .vnguide-listing-hero .mainSearch,
  .vnguide-listing-hero .bravo_form,
  .vnguide-listing-hero .field-items,
  .vnguide-listing-hero .field-items > .row {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .vnguide-listing-hero .field-items > .row > [class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #vnguide-event-list .row.items-center.justify-between,
  #vnguide-event-list .row.x-gap-20 {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  #vnguide-event-list .row.items-center.justify-between > .col-auto,
  #vnguide-event-list .row.x-gap-20 > .col-auto {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #vnguide-event-list .button,
  #vnguide-event-list .vnguide-listing-toggle__btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    justify-content: center;
  }

  #vnguide-event-list .vnguide-listing-toggle {
    justify-content: flex-start !important;
    flex-wrap: wrap;
  }
}
/* Hamburger + icon-only button tap target (WCAG 2.5.5) */
button.icon-menu,
.icon-menu,
button[class*="icon-"]:not([class*="icon-arrow"]) {
  min-width: 44px;
  min-height: 44px;
  padding: 12px;
}
/* Hero tabs horizontal scroll for mobile <480px */
@media (max-width: 480px) {
  .vnguide-hero .tabs__controls,
  .form-search-all-service .tabs__controls,
  .vnguide-hero-tabs {
    overflow-x: auto;
    flex-wrap: nowrap !important;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-right: 24px;
    background: linear-gradient(to right, transparent 95%, rgba(0,0,0,0.06));
  }
  .vnguide-hero .tabs__controls::-webkit-scrollbar,
  .vnguide-hero-tabs::-webkit-scrollbar { display: none; }
}

/* Preloader auto-hide fallback (Phase 8 audit fix) — even if JS fails, splash dismisses after 1.5s */
.preloader:not(.-is-hidden) {
  animation: vnguide-preloader-autohide 0.4s 1.5s ease forwards;
}
@keyframes vnguide-preloader-autohide {
  to { opacity: 0; pointer-events: none; visibility: hidden; }
}

/* H1/H2 listing-page overflow fix mobile (Phase 8) — wrap long titles like "40 khách sạn tốt nhất tại TP. HCM (Cập nhật...)" */
@media (max-width: 576px) {
  .masthead h1,
  .vnguide-listing-h1,
  .sectionTitle__title,
  h1.text-30,
  h1.text-36,
  h1.text-48 {
    overflow-wrap: break-word;
    word-break: break-word;
    hyphens: auto;
    max-width: 100%;
  }
  /* Header full-width mobile thay vì 80% */
  .header__container { width: 100%; padding-left: 16px; padding-right: 16px; }
  .bravo_wrap { max-width: 100%; padding-left: 12px; padding-right: 12px; }
}

/* Search results page header collapse mobile (Phase 8) */
@media (max-width: 768px) {
  .vnguide-search-header,
  .search-results-header {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 16px;
  }
  .vnguide-search-header > *,
  .search-results-header > * { width: 100%; }
}

/* Contact page iframe map fallback height (Phase 8) — was rendering blank.
   Original Blade uses `.ratio.ratio-16:9` (Bootstrap 4 syntax, ":" invalid in BS5 selector).
   Force display + min-height so iframe always renders. */
.bravo-contact-block .ratio,
.bravo-contact-block .ratio[class*="ratio-16"],
.bravo-contact-block .map-ratio,
.iframe_map,
.contact-map-wrap {
  display: block;
  width: 100%;
  min-height: 420px;
  position: relative;
}
/* P10R2-F: the original `.ratio.ratio-16:9` still inherits main.css
   `.ratio-16\:9::before { padding-bottom: 56.25% }`, which on this full-bleed
   map div reserves ~810px of EMPTY height above the iframe (broken-gap bug).
   Neutralize the aspect spacer so the map is a clean fixed-height band. */
.bravo-contact-block .ratio::before,
.bravo-contact-block .ratio[class*="ratio-16"]::before {
  display: none !important;
  content: none !important;
  padding-bottom: 0 !important;
}
.bravo-contact-block .ratio,
.bravo-contact-block .ratio[class*="ratio-16"] {
  height: 460px;
  max-height: 460px;
  overflow: hidden;
}
/* P10R2-E: main.css gives `.map-form { margin-top: -680px }` matching old GoTrip 680px map.
   Our map is now 420px → 260px gap. Override margin to match new map height. */
.bravo-contact-block .map-form {
  margin-top: -420px;
}
@media (max-width: 991px) {
  .bravo-contact-block .map-form { margin-top: 40px; }
}
.bravo-contact-block iframe,
.iframe_map iframe,
.contact-map-wrap iframe {
  width: 100%;
  height: 420px;
  min-height: 420px;
  border: 0;
  display: block;
}
@media (max-width: 768px) {
  .bravo-contact-block .ratio,
  .bravo-contact-block .map-ratio,
  .iframe_map { min-height: 280px; }
  .bravo-contact-block iframe,
  .iframe_map iframe { height: 280px; min-height: 280px; }
}

/* Contributors hero contrast fix (Phase 8) — was white-on-pale-gray */
.vnguide-contributors-hero {
  background: linear-gradient(135deg, #0f2d5e 0%, #1e4a8a 100%) !important;
  color: #fff !important;
}
.vnguide-contributors-hero h1,
.vnguide-contributors-hero p,
.vnguide-contributors-hero .stat-value,
.vnguide-contributors-hero .stat-label { color: #fff !important; }

/* Location/destination hero subtitle no-truncate mobile (Phase 8) */
@media (max-width: 576px) {
  .vnguide-destination-hero .subtitle,
  .vnguide-location-hero p {
    padding-right: 16px;
    overflow-wrap: break-word;
    word-break: break-word;
  }
}

/* ===== P10R2-OVF: global mobile horizontal overflow guard ===== */
/* Reviewer R2 found ~80px right-edge overflow on ALL 8 mobile auth/legal/search pages.
   Body has width:100% but Bootstrap .container max-width + negative row margins can
   spill at narrow viewports. Force overflow-x:hidden on html/body + safe gutter on container. */
html, body { overflow-x: hidden; max-width: 100vw; }
@media (max-width: 575px) {
    .container, .container-fluid { padding-left: 16px !important; padding-right: 16px !important; }
    .row { margin-left: -8px !important; margin-right: -8px !important; }
    .row > [class^="col-"], .row > [class*=" col-"] { padding-left: 8px !important; padding-right: 8px !important; }
    /* Mobile listing H1 — aggressive reduction to avoid truncate */
    h1, .vnguide-hero-title, .listing-h1, .destination-h1, .text-30, .text-40, .text-50, .text-60 { font-size: 20px !important; line-height: 1.22 !important; word-break: break-word; overflow-wrap: break-word; hyphens: auto; }
    /* Footer brand logo + nav heading scale */
    .vnguide-footer-logo { font-size: 22px; }
    /* Listing-specific: search.blade H1 wraps "(Cập nhật Tháng X/Y)" cleanly. */
    .text-30.fw-600, .listing-page h1 { font-size: 18px !important; padding: 0 4px; }
}
@media (max-width: 480px) {
    h1, .vnguide-hero-title, .text-30, .text-40 { font-size: 18px !important; line-height: 1.25 !important; }
    .vt-hero-title { font-size: 20px !important; line-height: 1.2 !important; }
    .text-22, .text-24 { font-size: 16px !important; }
}

/* P10R2-ICON-CLEAN: project rule — NO emoji icons. Hide icomoon icons that render as
   broken bars/hamburger glyphs in current font. Inline SVG for true critical CTAs only.
   Search/sort/location icons hidden (text label alone is clear + accessible). */
.icon-arrow-top-right { display: inline-block; width: 1em; height: 1em; line-height: 1; vertical-align: middle; }
.icon-arrow-top-right::before {
    content: "" !important;
    display: inline-block;
    width: 0.85em; height: 0.85em;
    background-color: currentColor;
    -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19L19 5M9 5h10v10'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19L19 5M9 5h10v10'/%3E%3C/svg%3E");
    -webkit-mask-size: contain; mask-size: contain;
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
    -webkit-mask-position: center; mask-position: center;
    font-family: inherit !important;
    line-height: 1;
}
/* For icons that don't have clear meaning beyond decoration, hide them to avoid bar-glyph noise. */
.icon-up-down,
.icon-sort,
.icon-search:not(.icon-search-keep),
.icon-location-2,
.icon-location-pin,
.icon-home,
.icon-customize,
.icon-list,
.icon-grid {
    display: none !important;
}
/* Social login button glyphs — fa-google/fa-facebook may not load consistently. Hide bare prefix
   so the text label "Google" / "Facebook" stands alone clean. */
.bravo-theme-vnguide-login-form .fa-google,
.bravo-theme-vnguide-login-form .fa-facebook,
.bravo-theme-vnguide-login-form .fa-twitter,
.bravo-register-page .fa-google,
.bravo-register-page .fa-facebook {
    display: none !important;
}
/* P10R2-MOB-H1 + A.1.1: H1 + hero subtitle never overflow at 375. */
@media (max-width: 480px) {
    .text-30, .text-40, .listing-page h1, h1.text-30 {
        font-size: 18px !important;
        line-height: 1.25 !important;
        word-break: break-word;
        overflow-wrap: anywhere;
        hyphens: auto;
        padding-right: 8px;
    }
    .vnguide-error-title { font-size: 20px !important; padding: 0 12px; word-break: break-word; }
    .vnguide-error-message { padding: 0 12px; word-break: break-word; }
    .vnguide-hero-sub, .vt-hero-sub { padding: 0 12px; overflow-wrap: anywhere; }
    /* Hub page subtitles + listing page intros */
    section p, .container p { overflow-wrap: anywhere; }
}

/* P10R2-AUTH: login/register form overflow at narrow viewports — force container constraints. */
.bravo-login-page, .bravo-login-form-page, .bravo-register-page {
    max-width: 100%;
    overflow-x: hidden;
}
@media (max-width: 575px) {
    .bravo-login-page .col-xl-6,
    .bravo-login-page .col-lg-7,
    .bravo-login-page .col-md-9,
    .bravo-login-form-page > .row > div {
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }
    .bravo-login-page .px-50, .bravo-login-page .py-50 { padding: 24px 16px !important; }
    .bravo-login-form-page .form-input input,
    .bravo-login-form-page .form-input textarea { width: 100% !important; max-width: 100% !important; box-sizing: border-box; }
    .bravo-login-form-page button[type="submit"] { width: 100% !important; }
}

/* P10R2-MENU: ensure mobile hamburger always visible — was rendering as empty button.
   The icon-menu button uses ::before pseudo-element from icofont. With local icofont now
   loaded, glyph renders. Plus min-width/height + visible color guarantee. */
@media (max-width: 1199px) {
    [data-x="header-mobile-icons"] {
        display: flex !important;
        gap: 12px;
        align-items: center;
        padding-left: 16px;
        order: 99;
        margin-left: auto;
    }
    [data-x="header-mobile-icons"] .icon-menu {
        display: inline-flex;
        width: 40px; height: 40px;
        align-items: center;
        justify-content: center;
        background: transparent;
        border: 1px solid rgba(15, 45, 94, .15);
        border-radius: 8px;
        color: #0f2d5e !important;
    }
    .vnguide-header-transparent [data-x="header-mobile-icons"] .icon-menu {
        color: #fff !important;
        border-color: rgba(255, 255, 255, .35);
    }
    .vnguide-header-normal [data-x="header-mobile-icons"] .icon-menu {
        color: #0f2d5e !important;
    }
}

/* ===== D1: Defensive utility — GoTrip templates rely on this class ===== */
.invisible { visibility: hidden; }

/* ===== D1: Hero search form — discovery-only, no booking fields ===== */
.vnguide-hero-form { width: 100%; }

.vnguide-hero-form-inner {
    display: flex;
    align-items: center;
    background: #fff;
    border-radius: 100px;
    padding: 8px 8px 8px 24px;
    min-height: 60px;
}

.vnguide-hero-form-input { flex: 1 1 auto; min-width: 0; }

.vnguide-hero-input {
    width: 100%;
    border: none;
    outline: none;
    background: transparent;
    font-size: 15px;
    color: #15181d;
    font-family: inherit;
}

.vnguide-hero-input::placeholder { color: #6b7280; }

.vnguide-hero-btn {
    flex: 0 0 auto;
    background: #f9c20b;
    color: #0f2d5e;
    border: none;
    border-radius: 100px;
    padding: 12px 28px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 150ms;
}

.vnguide-hero-btn:hover { background: #e6b008; }

@media (max-width: 575px) {
    .vnguide-hero-form-inner {
        flex-direction: column;
        border-radius: 16px;
        padding: 16px;
        gap: 12px;
        align-items: stretch;
    }
    .vnguide-hero-btn { width: 100%; padding: 14px 0; text-align: center; }
}

/* Homepage mobile composition: keep new editorial/commerce sections inside viewport. */
@media (max-width: 575px) {
    .page-template-content,
    .page-template-content section,
    .form-search-all-service.vnguide-hero,
    .home-vnticket-section,
    .home-collections-section,
    .home-goc-nhin-section,
    .home-advertising-cta {
        max-width: 100vw;
        overflow-x: hidden;
    }

    .form-search-all-service.vnguide-hero {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
    }

    .form-search-all-service.vnguide-hero .container,
    .home-vnticket-section .container,
    .home-collections-section .container,
    .home-goc-nhin-section .container,
    .home-advertising-cta .container {
        width: calc(100vw - 32px) !important;
        max-width: calc(100vw - 32px) !important;
        margin-left: 16px !important;
        margin-right: 16px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .vnguide-hero-tabs,
    .vnguide-hero-search-box,
    .vnguide-hero-popular,
    .vnguide-hero-popular-chips {
        max-width: 100%;
    }

    .vnguide-hero-tabs .tabs__controls,
    .vnguide-hero-popular-chips {
        justify-content: flex-start !important;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 6px;
    }

    .vnguide-hero-search-box {
        border-radius: 14px !important;
    }

    .home-vnticket-section h2,
    .home-collections-section h2 {
        font-size: 24px !important;
        line-height: 1.25 !important;
        letter-spacing: 0 !important;
    }

    .home-vnticket-section .row,
    .home-collections-section .row {
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .home-vnticket-section .row > [class*="col-"],
    .home-collections-section .row > [class*="col-"] {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .home-vnticket-section p,
    .home-collections-section p {
        overflow-wrap: anywhere;
    }

    .home-vnticket-section [style*="display:flex"],
    .home-collections-section [style*="display:flex"] {
        max-width: 100%;
    }
}

/* Event listing: align the destination listing page with the new VnGuide card system. */
.vnguide-event-results {
    background: #f5f5f7;
}

.vnguide-event-results-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 22px;
}

.vnguide-event-results-head span {
    display: block;
    margin-bottom: 7px;
    color: #c98400;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.vnguide-event-results-head h2 {
    margin: 0;
    color: #07133d;
    font-size: 34px;
    line-height: 1.18;
    font-weight: 800;
    letter-spacing: 0;
}

.vnguide-event-results-head p {
    max-width: 720px;
    margin: 8px 0 0;
    color: #667085;
    font-size: 15px;
    line-height: 1.55;
}

.vnguide-event-results-head > a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    padding: 0 18px;
    border: 1px solid rgba(15, 45, 94, .14);
    border-radius: 8px;
    background: #fff;
    color: #0f2d5e;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.vnguide-event-results-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 16px;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 1px 1px rgba(15, 23, 42, .03);
}

.vnguide-event-count {
    color: #07133d;
    font-size: 16px;
    font-weight: 800;
}

.vnguide-event-toolbar-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: nowrap;
    min-width: 0;
}

.vnguide-event-sort {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.vnguide-event-sort > span {
    color: #667085;
    font-size: 14px;
    font-weight: 700;
    white-space: nowrap;
}

.vnguide-event-sort-pills {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    border-radius: 8px;
    background: #f3f5fb;
}

.vnguide-event-sort-pills a {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border-radius: 7px;
    color: #0f2d5e;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.vnguide-event-sort-pills a.is-active {
    background: #fff;
    color: #c98400;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .08);
}

.vnguide-event-filter-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    gap: 8px;
    border-radius: 8px !important;
    background: #f3f5fb !important;
    color: #c98400 !important;
    border: 0 !important;
    font-weight: 800 !important;
}

.vnguide-event-filter-count {
    display: inline-flex;
    min-width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
    border-radius: 999px;
    background: #0f2d5e;
    color: #fff;
    font-size: 12px;
    line-height: 1;
}

.vnguide-event-results .vnguide-listing-toggle {
    margin: 0 !important;
    gap: 8px !important;
}

.vnguide-listing-toggle__btn {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0 16px;
    border: 1px solid rgba(15, 45, 94, .14);
    border-radius: 8px;
    background: #fff;
    color: #0f2d5e;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
}

.vnguide-listing-toggle__btn:hover,
.vnguide-listing-toggle__btn.is-active {
    border-color: #0f2d5e;
    background: #0f2d5e;
    color: #fff;
    text-decoration: none;
}

.vnguide-event-card-grid > [class*="col-"] {
    display: flex;
}

.vnguide-event-card-grid .item-loop,
.vnguide-event-card-grid .activityCard.-type-1 {
    width: 100%;
}

.vnguide-event-card-grid .activityCard__content {
    min-height: 126px;
}

.vnguide-event-card-grid .activityCard__title {
    margin-bottom: 6px;
}

#vnguide-event-list .bravo_form_filter.filterPopup {
    display: flex;
    justify-content: flex-end;
    background: rgba(15, 23, 42, .42);
    overflow: hidden;
}

#vnguide-event-list .bravo_form_filter.filterPopup .sidebar {
    width: min(760px, calc(100vw - 32px));
    height: 100%;
    margin-left: auto;
    background: #fff;
    box-shadow: -18px 0 42px rgba(15, 23, 42, .16);
}

#vnguide-event-list .vnguide-event-filter-drawer {
    display: flex !important;
    grid-template-columns: none !important;
    flex-direction: column;
    gap: 0 !important;
    padding: 0 !important;
}

.vnguide-event-filter-header {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 22px 26px 18px;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

.vnguide-event-filter-header span {
    display: block;
    color: #c98400;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.vnguide-event-filter-header h3 {
    margin: 3px 0 0;
    color: #07133d;
    font-size: 22px;
    line-height: 1.2;
    font-weight: 800;
}

.vnguide-event-filter-header button {
    display: inline-flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(15, 45, 94, .14);
    border-radius: 8px;
    background: #fff;
    color: #0f2d5e;
}

.vnguide-event-filter-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 22px 26px;
}

.vnguide-event-filter-group {
    padding: 0 0 22px !important;
    border-top: 0 !important;
}

.vnguide-event-filter-group + .vnguide-event-filter-group {
    padding-top: 22px !important;
    border-top: 1px solid rgba(15, 23, 42, .08) !important;
}

.vnguide-event-filter-group-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.vnguide-event-filter-group-head h5 {
    margin: 0;
    color: #07133d;
    font-size: 17px;
    line-height: 1.35;
    font-weight: 800;
}

.vnguide-event-filter-group-head span {
    color: #667085;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

.vnguide-event-filter-scroll {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 14px;
    max-height: 340px;
    overflow-y: auto;
    padding-right: 8px;
}

.vnguide-event-filter-option {
    display: flex;
    min-height: 36px;
    align-items: center;
    gap: 10px;
    margin: 0;
    color: #07133d;
    font-size: 15px;
    line-height: 1.35;
    cursor: pointer;
}

.vnguide-event-filter-option span {
    min-width: 0;
}

.vnguide-event-filter-footer {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 26px 22px;
    border-top: 1px solid rgba(15, 23, 42, .08);
    background: #fff;
    box-shadow: 0 -8px 22px rgba(15, 23, 42, .05);
}

.vnguide-event-filter-footer a,
.vnguide-event-filter-footer button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
}

.vnguide-event-filter-footer a {
    padding: 0 16px;
    border: 1px solid rgba(15, 45, 94, .14);
    background: #fff;
    color: #0f2d5e;
}

.vnguide-event-filter-footer button {
    gap: 8px;
    min-width: 150px;
    padding: 0 20px;
    border: 0;
    background: #0f2d5e;
    color: #fff;
}

.vnguide-event-filter-footer button span {
    display: inline-flex;
    min-width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #f9c20b;
    color: #07133d;
    font-size: 12px;
}

@media (max-width: 991px) {
    .vnguide-event-results-head {
        display: block;
    }

    .vnguide-event-results-head h2 {
        font-size: 28px;
    }

    .vnguide-event-results-head > a {
        margin-top: 14px;
    }

    .vnguide-event-results-toolbar {
        display: block;
    }

    .vnguide-event-toolbar-actions {
        justify-content: flex-start;
        flex-wrap: wrap;
        margin-top: 12px;
    }
}

@media (max-width: 575px) {
    .vnguide-listing-hero,
    .vnguide-event-guide,
    #vnguide-event-list,
    .vnguide-event-results {
        width: 100%;
        max-width: 100vw;
        overflow-x: hidden;
    }

    .vnguide-listing-hero .container,
    .vnguide-event-guide .container,
    #vnguide-event-list .container,
    .vnguide-event-results .container {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        box-sizing: border-box;
    }

    .vnguide-listing-hero-content,
    .vnguide-event-guide-head,
    .vnguide-event-results-head,
    .vnguide-event-results-toolbar,
    .vnguide-event-toolbar-actions {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .vnguide-listing-h1,
    .vnguide-listing-sub,
    .vnguide-event-guide-head h2,
    .vnguide-event-guide-head p,
    .vnguide-event-results-head h2,
    .vnguide-event-results-head p {
        max-width: 100% !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
        white-space: normal !important;
    }

    .vnguide-event-results-toolbar {
        overflow: hidden;
    }

    .vnguide-event-results {
        padding-top: 34px !important;
    }

    .vnguide-event-results-head h2 {
        font-size: 24px !important;
        line-height: 1.25 !important;
    }

    .vnguide-event-results-head p {
        font-size: 14px;
    }

    .vnguide-event-results-toolbar,
    .vnguide-event-sort,
    .vnguide-event-filter-btn,
    .vnguide-event-results .vnguide-listing-toggle,
    .vnguide-event-results .vnguide-listing-toggle__btn {
        width: 100%;
    }

    .vnguide-event-toolbar-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .vnguide-event-sort {
        display: block;
    }

    .vnguide-event-sort > span {
        display: block;
        margin-bottom: 8px;
    }

    .vnguide-event-sort-pills {
        width: 100%;
        overflow-x: auto;
    }

    .vnguide-event-sort-pills a {
        flex: 1 0 auto;
    }

    .vnguide-event-results .vnguide-listing-toggle {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
    }

    #vnguide-event-list .vnguide-event-card-grid > .col-sm-6 {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }

    #vnguide-event-list .bravo_form_filter.filterPopup .sidebar {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
    }

    .vnguide-event-filter-header,
    .vnguide-event-filter-body,
    .vnguide-event-filter-footer {
        padding-left: 18px;
        padding-right: 18px;
    }

    .vnguide-event-filter-scroll {
        grid-template-columns: 1fr;
        max-height: 300px;
    }

    .vnguide-event-filter-footer {
        display: grid;
        grid-template-columns: 1fr 1.35fr;
    }

    .vnguide-event-filter-footer button {
        min-width: 0;
    }
}

/* Shared discovery listing pass: restaurant, stay, tour, entertainment */
.vnguide-discovery-results {
    background: #f6f7fb;
    padding-top: 56px !important;
}

.vnguide-discovery-results .container {
    max-width: 1180px;
}

.vnguide-discovery-results-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
}

.vnguide-discovery-results-head span {
    display: inline-block;
    margin-bottom: 8px;
    color: #c98400;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.vnguide-discovery-results-head h2 {
    margin: 0;
    color: #07133d;
    font-size: 34px;
    line-height: 1.15;
    font-weight: 900;
    letter-spacing: 0;
}

.vnguide-discovery-results-head p {
    max-width: 720px;
    margin: 10px 0 0;
    color: #667085;
    font-size: 15px;
    line-height: 1.65;
}

.vnguide-discovery-results-head > a {
    flex: 0 0 auto;
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    border: 1px solid rgba(15, 45, 94, .12);
    border-radius: 8px;
    background: #fff;
    color: #0f2d5e;
    font-weight: 900;
    text-decoration: none;
}

.vnguide-discovery-results-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    border: 1px solid rgba(15, 45, 94, .08);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .04);
}

.vnguide-discovery-count {
    color: #07133d;
    font-size: 17px;
    font-weight: 900;
}

.vnguide-discovery-toolbar-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
    min-width: 0;
}

.vnguide-discovery-toolbar-actions > .col-auto {
    padding: 0 !important;
    width: auto !important;
    max-width: none !important;
}

.vnguide-discovery-toolbar-actions .item {
    gap: 8px;
}

.vnguide-discovery-sort {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.vnguide-discovery-sort > span {
    color: #667085;
    font-size: 14px;
    font-weight: 700;
    white-space: nowrap;
}

.vnguide-discovery-sort-pills {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    border-radius: 8px;
    background: #f3f5fb;
}

.vnguide-discovery-sort-pills a {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border-radius: 7px;
    color: #0f2d5e;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.vnguide-discovery-sort-pills a.is-active {
    background: #fff;
    color: #c98400;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .08);
}

.vnguide-discovery-toolbar-actions .button,
.vnguide-discovery-toolbar-actions button {
    display: inline-flex !important;
    min-height: 44px !important;
    align-items: center;
    justify-content: center;
    border: 0 !important;
    border-radius: 8px !important;
    background: #f3f5fb !important;
    color: #c98400 !important;
    font-size: 14px !important;
    font-weight: 900 !important;
}

.vnguide-discovery-filter-btn {
    position: relative;
    gap: 8px;
}

.vnguide-discovery-filter-count {
    display: inline-flex;
    min-width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
    border-radius: 999px;
    background: #0f2d5e;
    color: #fff;
    font-size: 12px;
    line-height: 1;
}

.vnguide-discovery-results .vnguide-listing-toggle {
    margin: 0 !important;
    gap: 8px !important;
}

.vnguide-card-grid > [class*="col-"] {
    display: flex;
}

.vnguide-card-grid .item-loop,
.vnguide-card-grid .hotelsCard.-type-1,
.vnguide-card-grid .activityCard.-type-1,
.vnguide-card-grid .tourCard.-type-1 {
    width: 100%;
}

.vnguide-card-grid .hotelsCard.-type-1,
.vnguide-card-grid .activityCard.-type-1,
.vnguide-card-grid .tourCard.-type-1 {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(15, 45, 94, .10);
    border-radius: 8px !important;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .05);
}

.vnguide-card-grid .hotelsCard__image,
.vnguide-card-grid .activityCard__image,
.vnguide-card-grid .tourCard__image {
    overflow: hidden;
}

.vnguide-card-grid .cardImage,
.vnguide-card-grid .cardImage__content,
.vnguide-card-grid .cardImage__content a {
    border-radius: 0 !important;
}

.vnguide-card-grid .ratio-1\:1::before {
    padding-bottom: 122%;
}

.vnguide-card-grid .cardImage__content img {
    width: 100%;
    height: 100%;
    min-height: 0 !important;
    border-radius: 0 !important;
    object-fit: cover;
}

.vnguide-card-grid .vnguide-card-media-placeholder {
    display: flex;
    width: 100%;
    height: 100%;
    min-height: 100%;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 18% 18%, rgba(249, 194, 11, .28), transparent 28%),
        linear-gradient(135deg, #0f2d5e 0%, #234a87 100%);
    color: #f9c20b;
    font-size: clamp(42px, 8vw, 76px);
    font-weight: 900;
    text-transform: uppercase;
}

.vnguide-card-grid .cardImage__wishlist,
.vnguide-card-grid .service-wishlist {
    display: none !important;
}

.vnguide-card-grid .hotelsCard__content,
.vnguide-card-grid .activityCard__content,
.vnguide-card-grid .tourCard__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 18px !important;
    margin-top: 0 !important;
}

.vnguide-card-grid .hotelsCard__title,
.vnguide-card-grid .activityCard__title,
.vnguide-card-grid .tourCard__title {
    margin: 0 0 8px;
    color: #07133d;
    font-size: 18px !important;
    line-height: 1.32 !important;
    font-weight: 900 !important;
    letter-spacing: 0;
}

.vnguide-card-grid .hotelsCard__title span,
.vnguide-card-grid .activityCard__title span,
.vnguide-card-grid .tourCard__title span {
    display: -webkit-box;
    overflow: hidden;
    background-image: none !important;
    background-size: auto !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.hotelsCard.-type-1 .hotelsCard__title span,
.tourCard.-type-1 .tourCard__title span,
.activityCard.-type-1 .activityCard__title span,
.rentalCard.-type-1 .rentalCard__title span,
.rentalCard.-type-2 .rentalCard__title span,
.cruiseCard.-type-1 .cruiseCard__title span {
    background-image: none !important;
    background-size: auto !important;
    background-repeat: initial !important;
    transition: color .18s ease, text-decoration-color .18s ease;
}

.hotelsCard.-type-1:hover .hotelsCard__title span,
.tourCard.-type-1:hover .tourCard__title span,
.activityCard.-type-1:hover .activityCard__title span,
.rentalCard.-type-1:hover .rentalCard__title span,
.rentalCard.-type-2:hover .rentalCard__title span,
.cruiseCard.-type-1:hover .cruiseCard__title span {
    background-image: none !important;
    background-size: auto !important;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    text-decoration-color: currentColor;
}

.vnguide-card-grid .text-light-1 {
    color: #667085 !important;
}

.vnguide-card-grid .cardImage__leftBadge .py-5,
.vnguide-card-grid .vnguide-badge {
    border-radius: 0 6px 6px 0 !important;
    box-shadow: 0 6px 16px rgba(15, 23, 42, .12);
}

.vnguide-discovery-results .bravo_form_filter.filterPopup {
    display: flex;
    justify-content: flex-end;
    background: rgba(15, 23, 42, .28);
    overflow: hidden;
}

.vnguide-discovery-results .bravo_form_filter.filterPopup .sidebar {
    width: min(920px, calc(100vw - 32px));
    height: 100%;
    min-height: 100%;
    margin-left: auto;
    background: #fff;
    box-shadow: -18px 0 42px rgba(15, 23, 42, .16);
}

.vnguide-discovery-filter-drawer {
    display: flex !important;
    flex-direction: column;
    gap: 0 !important;
    padding: 0 !important;
}

.vnguide-discovery-filter-header {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 22px 26px 18px;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

.vnguide-discovery-filter-header span {
    display: block;
    color: #c98400;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.vnguide-discovery-filter-header h3 {
    margin: 3px 0 0;
    color: #07133d;
    font-size: 22px;
    line-height: 1.2;
    font-weight: 800;
}

.vnguide-discovery-filter-header button {
    display: inline-flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(15, 45, 94, .14);
    border-radius: 8px;
    background: #fff;
    color: #0f2d5e;
}

.vnguide-discovery-filter-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 22px 26px;
}

.vnguide-discovery-filter-body .sidebar__item,
.vnguide-discovery-filter-body .g-filter-item.sidebar__item {
    padding: 0 0 22px !important;
    margin: 0 !important;
    border-top: 0 !important;
}

.vnguide-discovery-filter-body .sidebar__item + .sidebar__item,
.vnguide-discovery-filter-body .g-filter-item.sidebar__item + .g-filter-item.sidebar__item {
    padding-top: 22px !important;
    border-top: 1px solid rgba(15, 23, 42, .08) !important;
}

.vnguide-discovery-filter-body h5 {
    margin: 0 0 12px !important;
    color: #07133d;
    font-size: 17px !important;
    line-height: 1.35;
    font-weight: 800 !important;
}

.vnguide-discovery-filter-body .sidebar-checkbox {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 14px;
    max-height: 320px;
    overflow-y: auto;
    padding-right: 8px;
}

.vnguide-discovery-filter-body .sidebar-checkbox .row,
.vnguide-discovery-filter-body .sidebar-checkbox [class*="col-"],
.vnguide-discovery-filter-body .sidebar-checkbox .d-flex {
    min-width: 0;
}

.vnguide-discovery-filter-body .sidebar-checkbox .text-15,
.vnguide-discovery-filter-body .sidebar-checkbox label,
.vnguide-discovery-filter-body .sidebar-checkbox div {
    overflow-wrap: break-word;
}

.vnguide-discovery-filter-footer {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 26px 22px;
    border-top: 1px solid rgba(15, 23, 42, .08);
    background: #fff;
    box-shadow: 0 -8px 22px rgba(15, 23, 42, .05);
}

.vnguide-discovery-filter-footer a,
.vnguide-discovery-filter-footer button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
}

.vnguide-discovery-filter-footer a {
    padding: 0 16px;
    border: 1px solid rgba(15, 45, 94, .14);
    background: #fff;
    color: #0f2d5e;
}

.vnguide-discovery-filter-footer button {
    min-width: 150px;
    padding: 0 20px;
    border: 0;
    background: #0f2d5e;
    color: #fff;
}

.vnguide-discovery-results .g-filter-item:first-child .ratio {
    display: none;
}

@media (max-width: 991px) {
    .vnguide-discovery-results-head {
        display: block;
    }

    .vnguide-discovery-results-head h2 {
        font-size: 28px;
    }

    .vnguide-discovery-results-head > a {
        margin-top: 14px;
    }

    .vnguide-discovery-results-toolbar {
        display: block;
    }

    .vnguide-discovery-toolbar-actions {
        justify-content: flex-start;
        margin-top: 12px;
    }
}

@media (max-width: 575px) {
    .vnguide-discovery-results {
        width: 100%;
        max-width: 100vw;
        overflow-x: hidden;
        padding-top: 34px !important;
    }

    .vnguide-discovery-results .container {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        box-sizing: border-box;
    }

    .vnguide-discovery-results-head h2 {
        font-size: 24px !important;
        line-height: 1.25 !important;
        max-width: 100% !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
    }

    .vnguide-discovery-results-head p {
        font-size: 14px;
        max-width: 100% !important;
        overflow-wrap: break-word !important;
    }

    .vnguide-discovery-results-toolbar,
    .vnguide-discovery-toolbar-actions,
    .vnguide-discovery-sort,
    .vnguide-discovery-filter-btn,
    .vnguide-discovery-toolbar-actions .button,
    .vnguide-discovery-toolbar-actions button,
    .vnguide-discovery-results .vnguide-listing-toggle,
    .vnguide-discovery-results .vnguide-listing-toggle__btn {
        width: 100%;
    }

    .vnguide-discovery-toolbar-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .vnguide-discovery-sort {
        display: block;
    }

    .vnguide-discovery-sort > span {
        display: block;
        margin-bottom: 8px;
    }

    .vnguide-discovery-sort-pills {
        width: 100%;
        overflow-x: auto;
    }

    .vnguide-discovery-sort-pills a {
        flex: 1 0 auto;
    }

    .vnguide-discovery-results .vnguide-listing-toggle {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
    }

    .vnguide-card-grid > .col-sm-6 {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }

    .vnguide-discovery-results .bravo_form_filter.filterPopup .sidebar {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
    }

    .vnguide-discovery-filter-header,
    .vnguide-discovery-filter-body,
    .vnguide-discovery-filter-footer {
        padding-left: 18px;
        padding-right: 18px;
    }

    .vnguide-discovery-filter-body .sidebar-checkbox {
        grid-template-columns: 1fr;
        max-height: 300px;
    }

    .vnguide-discovery-filter-footer {
        display: grid;
        grid-template-columns: 1fr 1.35fr;
    }

    .vnguide-discovery-filter-footer button {
        min-width: 0;
    }
}

/* Final local QA pass: mobile width and compact listing badges. */
.vnguide-listing-h1 {
    overflow-wrap: anywhere;
    word-break: normal;
}

/* P1 listing filter UX: shared drawer affordances, chips, large-group search. */
.vnguide-filter-chips {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-top: 14px;
    padding: 12px 14px;
    border: 1px solid rgba(15, 45, 94, .08);
    border-radius: 8px;
    background: #fff;
}

.vnguide-filter-chips__label {
    flex: 0 0 auto;
    padding-top: 7px;
    color: #667085;
    font-size: 13px;
    font-weight: 800;
}

.vnguide-filter-chips__list {
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

.vnguide-filter-chip {
    display: inline-flex;
    min-height: 34px;
    max-width: 100%;
    align-items: center;
    gap: 7px;
    padding: 0 11px;
    border: 1px solid rgba(15, 45, 94, .12);
    border-radius: 8px;
    background: #f8fafc;
    color: #0f2d5e;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.25;
    text-decoration: none;
}

.vnguide-filter-chip:hover {
    border-color: #0f2d5e;
    color: #0f2d5e;
    text-decoration: none;
}

.vnguide-filter-chip span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vnguide-filter-chip i {
    flex: 0 0 auto;
    font-size: 11px;
}

.vnguide-filter-chip--clear {
    background: #fff;
    color: #c98400;
}

.vnguide-filter-group-search {
    width: 100%;
    min-height: 40px;
    margin-bottom: 12px;
    padding: 0 12px;
    border: 1px solid rgba(15, 45, 94, .14);
    border-radius: 8px;
    background: #fff;
    color: #07133d;
    font-size: 14px;
    outline: 0;
}

.vnguide-filter-group-search:focus {
    border-color: #0f2d5e;
    box-shadow: 0 0 0 3px rgba(15, 45, 94, .10);
}

.vnguide-filter-option-hidden {
    display: none !important;
}

.vnguide-filter-more,
.vnguide-discovery-filter-body .btn-more-item,
.vnguide-event-filter-body .btn-more-item {
    display: inline-flex !important;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    margin-top: 12px;
    padding: 0 12px !important;
    border: 1px solid rgba(15, 45, 94, .12) !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #0f2d5e !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

.vnguide-discovery-filter-body .sidebar-checkbox,
.vnguide-event-filter-scroll {
    overscroll-behavior: contain;
    scrollbar-width: thin;
}

.vnguide-discovery-filter-body .sidebar-checkbox > label,
.vnguide-discovery-filter-body .sidebar-checkbox > .row,
.vnguide-event-filter-option {
    min-height: 38px;
}

.vnguide-discovery-results .bravo_form_filter.filterPopup,
#vnguide-event-list .bravo_form_filter.filterPopup {
    align-items: stretch;
    backdrop-filter: blur(2px);
}

.vnguide-discovery-results .bravo_form_filter.filterPopup .sidebar,
#vnguide-event-list .bravo_form_filter.filterPopup .sidebar {
    max-width: 100%;
}

.vnguide-discovery-sort-pills,
.vnguide-event-sort-pills {
    max-width: 100%;
}

.vnguide-discovery-sort-pills a,
.vnguide-event-sort-pills a {
    min-width: max-content;
}

.vnguide-discovery-results .bravo-pagination .text-light-1,
.vnguide-event-results .bravo-pagination .text-light-1 {
    color: #667085 !important;
    font-weight: 700;
}

@media (max-width: 767px) {
    .vnguide-filter-chips {
        display: block;
    }

    .vnguide-filter-chips__label {
        display: block;
        padding-top: 0;
        margin-bottom: 8px;
    }

    .vnguide-filter-chip {
        max-width: 100%;
    }

    .vnguide-filter-chip span {
        white-space: normal;
    }
}

@media (max-width: 575px) {
    html,
    body,
    .bravo_wrap {
        width: 100%;
        max-width: 100vw;
        overflow-x: hidden;
    }

    .vnguide-listing-hero .gotrip_form_search,
    .vnguide-listing-hero .mainSearch,
    .vnguide-listing-hero .bravo_form {
        display: block;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box;
    }

    .vnguide-listing-hero .gotrip_form_search {
        padding: 16px !important;
    }

    .vnguide-listing-hero .field-items,
    .vnguide-listing-hero .field-items > .row,
    .vnguide-listing-hero .button-item {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        box-sizing: border-box;
    }

    .vnguide-listing-hero .field-items > .row {
        display: block;
    }

    .vnguide-listing-hero .field-items > .row > [class*="col-"] {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .vnguide-listing-hero .button-item {
        margin-top: 12px;
    }

    .vnguide-listing-hero .mainSearch__submit {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        border-radius: 8px !important;
    }

    .vnguide-listing-h1 {
        max-width: 100% !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        white-space: normal !important;
    }

    .vnguide-discovery-results .bravo_form_filter.filterPopup,
    #vnguide-event-list .bravo_form_filter.filterPopup {
        align-items: flex-end;
    }

    .vnguide-discovery-results .bravo_form_filter.filterPopup .sidebar,
    #vnguide-event-list .bravo_form_filter.filterPopup .sidebar {
        height: min(88vh, 720px);
        min-height: 0;
        border-radius: 14px 14px 0 0;
    }

    .vnguide-discovery-filter-header h3,
    .vnguide-event-filter-header h3 {
        font-size: 19px;
    }

    .vnguide-discovery-filter-footer,
    .vnguide-event-filter-footer {
        padding-bottom: max(18px, env(safe-area-inset-bottom));
    }
}

.vnguide-card-grid .cardImage__leftBadge {
    top: 12px;
    left: 0;
    display: flex;
    max-width: calc(100% - 18px);
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    pointer-events: none;
}

.vnguide-card-grid .cardImage__leftBadge .py-5,
.vnguide-card-grid .cardImage__leftBadge .vnguide-badge {
    display: inline-flex !important;
    min-height: 26px !important;
    max-width: 100%;
    align-items: center;
    margin-top: 0 !important;
    padding: 0 10px !important;
    overflow: hidden;
    border-radius: 0 999px 999px 0 !important;
    font-size: 10px !important;
    line-height: 26px !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .16);
}

.vnguide-card-grid .cardImage__leftBadge .bg-yellow-1 {
    background: rgba(249, 194, 11, .96) !important;
}

.vnguide-card-grid .cardImage__leftBadge .bg-blue-1,
.vnguide-card-grid .cardImage__leftBadge .bg-blue-new {
    background: rgba(15, 45, 94, .94) !important;
    color: #fff !important;
}

.vnguide-card-grid .cardImage__leftBadge .vnguide-badge-sponsored-top {
    background: rgba(15, 45, 94, .94) !important;
    color: #f9c20b !important;
}

@media (max-width: 575px) {
    .form-search-all-service.vnguide-hero .container.vnguide-hero-inner,
    .vnguide-listing-hero .container,
    .vnguide-discovery-results .container {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        box-sizing: border-box;
    }

    .form-search-all-service.vnguide-hero .row.justify-center {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .form-search-all-service.vnguide-hero .row.justify-center > [class*="col-"] {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .vnguide-hero-title,
    .vnguide-hero-sub {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .vnguide-hero-popular {
        display: block;
    }

    .vnguide-hero-popular-label {
        margin-bottom: 10px;
    }

    .vnguide-hero-chip {
        flex: 0 0 auto;
        min-height: 42px;
        padding: 9px 15px;
        border-radius: 999px;
    }

    .vnguide-listing-hero-content {
        width: 100%;
        max-width: 100%;
    }

    .vnguide-listing-h1 {
        max-width: 100%;
        padding-left: 0 !important;
        padding-right: 0 !important;
        font-size: 18px !important;
        line-height: 1.28 !important;
    }

    .vnguide-card-grid .cardImage__leftBadge {
        top: 10px;
        max-width: calc(100% - 14px);
    }
}

/* Final mobile guard: prevent long Vietnamese headings from looking cropped in screenshots. */
@media (max-width: 575px) {
    .vnguide-contact-ad-page .vnguide-ad-contact-hero .container,
    .vnguide-contact-ad-page .vnguide-ad-contact-form-section .container,
    .vnguide-contact-ad-page .vnguide-ad-placement-map .container {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        box-sizing: border-box;
    }

    .vnguide-contact-ad-page .vnguide-ad-contact-hero,
    .vnguide-contact-ad-page .vnguide-ad-contact-form-section,
    .vnguide-contact-ad-page .vnguide-ad-placement-map {
        overflow: hidden;
    }

    .vnguide-contact-ad-page .row {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .vnguide-contact-ad-page [class*="col-"] {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .vnguide-ad-contact-intro,
    .vnguide-ad-placement-head,
    .vnguide-ad-placement-card {
        width: 100%;
        max-width: 100%;
        overflow: hidden;
    }

    .vnguide-ad-contact-hero h1 {
        max-width: 21rem;
        font-size: 22px !important;
        line-height: 1.22 !important;
    }

    .vnguide-ad-contact-hero p {
        max-width: 21rem;
        font-size: 15px !important;
        line-height: 1.5 !important;
    }

    .vnguide-ad-contact-intro h2,
    .vnguide-ad-contact-intro p,
    .vnguide-ad-placement-head h2,
    .vnguide-ad-placement-head p,
    .vnguide-ad-placement-card h3,
    .vnguide-ad-placement-card p {
        max-width: 21rem;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    .vnguide-listing-h1 {
        max-width: 21rem;
        margin-left: auto;
        margin-right: auto;
        font-size: 17px !important;
        line-height: 1.3 !important;
    }
}

/* ========== Premium Design Pass: Home pilot (scoped) ========== */
.bravo_wrap.vnguide-home-wrap {
    max-width: 100%;
}

.vnguide-home-page {
    background: #f7f8fb;
    color: #172033;
}

.vnguide-home-page .vnguide-home-bleed {
    width: 100%;
}

.vnguide-home-page .container {
    max-width: 1184px;
}

.vnguide-home-hero.vnguide-hero {
    min-height: 690px;
    padding: 112px 0 88px;
    background: #081b38;
}

.vnguide-home-hero .vnguide-hero-bg {
    background: #081b38;
}

.vnguide-home-hero .vnguide-home-hero-slide {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    opacity: 0;
    transform: scale(1.025);
    transition: opacity 1200ms ease, transform 6200ms ease;
}

.vnguide-home-hero .vnguide-home-hero-slide.is-active {
    opacity: 1;
    transform: scale(1);
}

.vnguide-home-hero .vnguide-hero-overlay {
    background:
        linear-gradient(90deg, rgba(7, 19, 61, .82) 0%, rgba(7, 19, 61, .58) 46%, rgba(7, 19, 61, .34) 100%),
        linear-gradient(180deg, rgba(7, 19, 61, .38) 0%, rgba(7, 19, 61, .74) 100%);
}

.vnguide-home-hero .vnguide-hero-inner {
    max-width: 1184px;
}

.vnguide-home-hero .vnguide-hero-text {
    max-width: 920px;
    margin: 0 auto;
}

.vnguide-home-hero-kicker,
.vnguide-home-eyebrow {
    margin-bottom: 12px;
    color: #f9c20b;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.35;
    letter-spacing: 0;
    text-transform: uppercase;
}

.vnguide-home-hero .vnguide-hero-title {
    max-width: 880px;
    margin: 0 auto 18px;
    color: #fff !important;
    font-size: 58px !important;
    line-height: 1.08 !important;
    font-weight: 800 !important;
    letter-spacing: 0;
    text-wrap: balance;
    text-shadow: 0 22px 46px rgba(0, 0, 0, .42);
}

.vnguide-home-hero .vnguide-hero-sub {
    max-width: 720px;
    color: rgba(255, 255, 255, .92) !important;
    font-size: 19px;
    line-height: 1.55;
}

.vnguide-home-hero-proof {
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 22px;
}

.vnguide-home-hero-proof span,
.vnguide-home-ticket-pills a,
.vnguide-hero-chip {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
}

.vnguide-home-hero-proof span {
    padding: 7px 13px;
    border: 1px solid rgba(255, 255, 255, .22);
    background: rgba(255, 255, 255, .10);
    color: rgba(255, 255, 255, .94);
    font-size: 13px;
    font-weight: 700;
}

.vnguide-home-hero .vnguide-hero-tabs {
    margin-top: 42px !important;
}

.vnguide-home-hero .tabs__controls {
    max-width: 900px;
    margin: 0 auto;
}

.vnguide-home-hero .tabs__button {
    min-height: 44px;
    color: rgba(255, 255, 255, .86) !important;
    font-size: 15px !important;
    line-height: 1.3;
    transition: color 180ms ease, opacity 180ms ease, border-color 180ms ease;
}

.vnguide-home-hero .tabs__button.is-tab-el-active,
.vnguide-home-hero .tabs__button:hover,
.vnguide-home-hero .tabs__button:focus-visible {
    color: #fff !important;
}

.vnguide-home-hero .vnguide-hero-search-box {
    max-width: 940px;
    margin-left: auto;
    margin-right: auto;
    border-radius: 24px !important;
    background: rgba(255, 255, 255, .96) !important;
    box-shadow: 0 24px 72px rgba(0, 0, 0, .30);
}

.vnguide-home-hero .vnguide-hero-form-inner {
    min-height: 72px;
    padding: 10px 10px 10px 22px;
    border-radius: 24px;
    gap: 12px;
}

.vnguide-home-hero .vnguide-hero-form-input {
    display: flex;
    align-items: center;
    gap: 12px;
}

.vnguide-home-hero .vnguide-hero-form-icon {
    flex: 0 0 auto;
    color: #0f2d5e;
    font-size: 20px;
}

.vnguide-home-hero .vnguide-hero-input {
    min-height: 44px;
    color: #172033;
    font-size: 16px;
    font-weight: 500;
}

.vnguide-home-hero .vnguide-hero-btn {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 18px;
    padding: 0 28px;
    color: #07133d;
    font-weight: 800;
    box-shadow: 0 10px 26px rgba(249, 194, 11, .22);
    transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.vnguide-home-hero .vnguide-hero-btn:hover,
.vnguide-home-hero .vnguide-hero-btn:focus-visible {
    background: #ffd34d;
    transform: translateY(-1px);
    box-shadow: 0 16px 32px rgba(249, 194, 11, .26);
}

.vnguide-home-hero .vnguide-hero-popular {
    margin-top: 22px !important;
}

.vnguide-home-hero .vnguide-hero-chip {
    min-height: 38px;
    padding: 0 15px;
    border-color: rgba(255, 255, 255, .34);
    background: rgba(255, 255, 255, .12);
    font-weight: 700;
}

.vnguide-home-hero-statbar {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: 860px;
    margin: 34px auto 0;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 8px;
    background: rgba(4, 15, 34, .34);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.vnguide-home-hero-statbar div {
    padding: 18px 20px;
    border-left: 1px solid rgba(255, 255, 255, .14);
    text-align: left;
}

.vnguide-home-hero-statbar div:first-child {
    border-left: 0;
}

.vnguide-home-hero-statbar strong,
.vnguide-home-hero-statbar span {
    display: block;
}

.vnguide-home-hero-statbar strong {
    color: #fff;
    font-size: 22px;
    line-height: 1.1;
    font-weight: 800;
}

.vnguide-home-hero-statbar span {
    margin-top: 6px;
    color: rgba(255, 255, 255, .78);
    font-size: 13px;
    line-height: 1.4;
}

.vnguide-home-ticket-section,
.vnguide-home-collections,
.vnguide-home-featured-destinations {
    padding: 82px 0;
}

.vnguide-home-ticket-section {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(180deg, #07133d 0%, #0f2d5e 100%);
    color: #fff;
}

.vnguide-home-collections {
    background: #f7f8fb;
}

.vnguide-home-featured-destinations {
    background: #fff;
}

.vnguide-home-section-head {
    margin-bottom: 34px;
}

.vnguide-home-section-head--center {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.vnguide-home-section-head--split {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
}

.vnguide-home-section-copy {
    max-width: 690px;
}

.vnguide-home-section-head h2 {
    margin: 0;
    color: #07133d;
    font-size: 38px;
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: 0;
    text-wrap: balance;
}

.vnguide-home-section-head p {
    max-width: 680px;
    margin: 12px 0 0;
    color: #667085;
    font-size: 16px;
    line-height: 1.65;
}

.vnguide-home-section-head--center p {
    margin-left: auto;
    margin-right: auto;
}

.vnguide-home-section-head--dark h2 {
    color: #fff;
}

.vnguide-home-section-head--dark p {
    color: rgba(255, 255, 255, .82);
}

.vnguide-home-link-button {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex: 0 0 auto;
    border: 1px solid rgba(15, 45, 94, .22);
    border-radius: 8px;
    padding: 0 18px;
    background: #fff;
    color: #0f2d5e !important;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none !important;
    transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
}

.vnguide-home-link-button:hover,
.vnguide-home-link-button:focus-visible {
    transform: translateY(-1px);
    border-color: #0f2d5e;
    background: #f3f6fb;
}

.vnguide-home-link-button--gold {
    border-color: #f9c20b;
    background: #f9c20b;
    color: #07133d !important;
}

.vnguide-home-link-button--gold:hover,
.vnguide-home-link-button--gold:focus-visible {
    background: #ffd34d;
}

.vnguide-home-ticket-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 30px;
}

.vnguide-home-ticket-pills a {
    min-height: 40px;
    padding: 0 16px;
    border: 1px solid rgba(255, 255, 255, .24);
    background: rgba(255, 255, 255, .08);
    color: #fff !important;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none !important;
    transition: background 180ms ease, transform 180ms ease, border-color 180ms ease;
}

.vnguide-home-ticket-pills a:hover,
.vnguide-home-ticket-pills a:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(249, 194, 11, .72);
    background: rgba(249, 194, 11, .14);
}

.vnguide-home-ticket-card,
.vnguide-home-collection-card,
.vnguide-home-featured-card {
    display: block;
    height: 100%;
    overflow: hidden;
    border-radius: 8px;
    text-decoration: none !important;
    transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

.vnguide-home-ticket-card,
.vnguide-home-collection-card {
    border: 1px solid rgba(15, 23, 42, .08);
    background: #fff;
    color: inherit;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
}

.vnguide-home-ticket-card:hover,
.vnguide-home-ticket-card:focus-visible,
.vnguide-home-collection-card:hover,
.vnguide-home-collection-card:focus-visible,
.vnguide-home-featured-card:hover,
.vnguide-home-featured-card:focus-visible {
    transform: translateY(-5px);
    box-shadow: 0 22px 44px rgba(15, 23, 42, .14);
}

.vnguide-home-ticket-media,
.vnguide-home-collection-media {
    position: relative;
    overflow: hidden;
    background: #e5eaf2;
}

.vnguide-home-ticket-media {
    aspect-ratio: 4 / 5;
}

.vnguide-home-collection-media {
    aspect-ratio: 4 / 5;
}

.vnguide-home-ticket-media img,
.vnguide-home-collection-media img,
.vnguide-home-featured-card img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform 360ms ease;
}

.vnguide-home-ticket-card:hover img,
.vnguide-home-ticket-card:focus-visible img,
.vnguide-home-collection-card:hover img,
.vnguide-home-collection-card:focus-visible img,
.vnguide-home-featured-card:hover img,
.vnguide-home-featured-card:focus-visible img {
    transform: scale(1.035);
}

.vnguide-home-ticket-fallback,
.vnguide-home-collection-fallback,
.vnguide-home-featured-fallback {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #0f2d5e 0%, #1d4f7a 100%);
    color: #f9c20b;
    text-align: center;
}

.vnguide-home-collection-fallback {
    padding: 24px;
    color: rgba(255, 255, 255, .94);
}

.vnguide-home-collection-fallback div div:first-child {
    margin-bottom: 8px;
    color: rgba(255, 255, 255, .70);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.vnguide-home-collection-fallback div div:last-child {
    font-size: 18px;
    line-height: 1.3;
    font-weight: 800;
}

.vnguide-home-featured-card {
    position: relative;
    min-height: 292px;
    color: #fff !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .08);
}

.vnguide-home-featured-card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(7, 19, 61, .04) 0%, rgba(7, 19, 61, .78) 86%);
}

.vnguide-home-featured-card-body {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    z-index: 1;
}

.vnguide-home-featured-card h3 {
    margin: 0 0 6px;
    color: #fff;
    font-size: 23px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: 0;
    text-shadow: 0 8px 18px rgba(0, 0, 0, .30);
}

.vnguide-home-featured-card-body div {
    color: rgba(255, 255, 255, .88);
    font-size: 13px;
    line-height: 1.4;
    font-weight: 700;
}

.vnguide-home-card-badge,
.vnguide-home-ticket-badge,
.vnguide-home-ticket-icon {
    position: absolute;
    z-index: 2;
}

.vnguide-home-card-badge,
.vnguide-home-ticket-badge {
    top: 12px;
    left: 12px;
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0 11px;
    background: rgba(255, 255, 255, .94);
    color: #0f2d5e;
    font-size: 12px;
    font-weight: 800;
}

.vnguide-home-ticket-badge {
    left: auto;
    right: 12px;
    background: #f9c20b;
    color: #07133d;
}

.vnguide-home-ticket-icon {
    top: 12px;
    left: 12px;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, .94);
    font-size: 16px;
}

.vnguide-home-ticket-body,
.vnguide-home-collection-body {
    padding: 18px;
}

.vnguide-home-ticket-meta {
    min-height: 18px;
    margin-bottom: 6px;
    color: #667085;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 700;
}

.vnguide-home-ticket-body h3,
.vnguide-home-collection-body h3 {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    color: #07133d;
    font-weight: 800;
    letter-spacing: 0;
    -webkit-box-orient: vertical;
}

.vnguide-home-ticket-body h3 {
    min-height: 48px;
    font-size: 17px;
    line-height: 1.4;
    -webkit-line-clamp: 2;
}

.vnguide-home-collection-body h3 {
    font-size: 20px;
    line-height: 1.3;
    -webkit-line-clamp: 2;
}

.vnguide-home-collection-body p {
    display: -webkit-box;
    min-height: 44px;
    margin: 10px 0 14px;
    overflow: hidden;
    color: #667085;
    font-size: 14px;
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.vnguide-home-ticket-price,
.vnguide-home-ticket-link,
.vnguide-home-card-link {
    margin-top: 12px;
    color: #0f2d5e;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 800;
}

.vnguide-home-ticket-price strong,
.vnguide-home-card-link {
    color: #b77900;
}

.vnguide-home-motion-ready [data-vnguide-home-reveal] {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 520ms ease, transform 520ms ease;
}

.vnguide-home-motion-ready [data-vnguide-home-reveal].is-inview {
    opacity: 1;
    transform: none;
}

.vnguide-home-page a:focus-visible,
.vnguide-home-page button:focus-visible,
.vnguide-home-page input:focus-visible {
    outline: 3px solid rgba(249, 194, 11, .88);
    outline-offset: 3px;
}

@media (max-width: 1199px) {
    .vnguide-home-hero.vnguide-hero {
        min-height: 650px;
        padding-top: 96px;
    }

    .vnguide-home-hero .vnguide-hero-title {
        font-size: 48px !important;
    }
}

@media (max-width: 991px) {
    .vnguide-home-hero.vnguide-hero {
        min-height: 620px;
        padding: 88px 0 68px;
    }

    .vnguide-home-hero .vnguide-hero-title {
        max-width: 680px;
        font-size: 40px !important;
    }

    .vnguide-home-hero .vnguide-hero-sub {
        font-size: 17px;
    }

    .vnguide-home-hero-statbar {
        grid-template-columns: 1fr;
        max-width: 620px;
    }

    .vnguide-home-hero-statbar div,
    .vnguide-home-hero-statbar div:first-child {
        border-left: 0;
        border-top: 1px solid rgba(255, 255, 255, .14);
    }

    .vnguide-home-hero-statbar div:first-child {
        border-top: 0;
    }

    .vnguide-home-section-head--split {
        align-items: flex-start;
        flex-direction: column;
    }

    .vnguide-home-ticket-section,
    .vnguide-home-collections,
    .vnguide-home-featured-destinations {
        padding: 68px 0;
    }
}

@media (max-width: 575px) {
    .vnguide-home-page .container,
    .vnguide-home-hero .container.vnguide-hero-inner,
    .vnguide-home-ticket-section .container,
    .vnguide-home-collections .container,
    .vnguide-home-featured-destinations .container {
        width: calc(100vw - 32px) !important;
        max-width: calc(100vw - 32px) !important;
        margin-left: 16px !important;
        margin-right: 16px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .vnguide-home-page .row {
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .vnguide-home-page .row > [class*="col-"] {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .vnguide-home-hero.vnguide-hero {
        min-height: 610px;
        padding: 50px 0 34px;
    }

    .vnguide-home-hero .vnguide-hero-title {
        max-width: 21rem;
        font-size: 30px !important;
        line-height: 1.16 !important;
    }

    .vnguide-home-hero .vnguide-hero-sub {
        max-width: 250px;
        margin-left: auto;
        margin-right: auto;
        padding: 0;
        font-size: 15px;
        line-height: 1.55;
        overflow-wrap: normal;
        white-space: normal !important;
    }

    .vnguide-home-hero-proof {
        display: none;
    }

    .vnguide-home-hero-proof span {
        width: 100%;
        max-width: 280px;
        min-height: 34px;
        justify-content: center;
        padding: 6px 10px;
        font-size: 12px;
        text-align: center;
    }

    .vnguide-home-hero .vnguide-hero-tabs {
        margin-top: 30px !important;
    }

    .vnguide-home-hero .tabs__controls {
        justify-content: flex-start !important;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        padding-bottom: 8px;
        -webkit-overflow-scrolling: touch;
    }

    .vnguide-home-hero .tabs__controls > div {
        flex: 0 0 auto;
    }

    .vnguide-home-hero .vnguide-hero-search-box {
        width: 100%;
        max-width: 100%;
        border-radius: 18px !important;
    }

    .vnguide-home-hero .vnguide-hero-form-inner {
        width: 100%;
        min-height: 0;
        padding: 14px;
        border-radius: 18px;
    }

    .vnguide-home-hero .vnguide-hero-form-input {
        width: 100%;
        min-width: 0;
    }

    .vnguide-home-hero .vnguide-hero-input {
        min-width: 0;
        font-size: 15px;
    }

    .vnguide-home-hero .vnguide-hero-btn {
        width: 100%;
        min-height: 48px;
        border-radius: 16px;
        padding: 0 16px;
    }

    .vnguide-home-hero .vnguide-hero-popular {
        align-items: flex-start;
        justify-content: flex-start;
        margin-top: 18px !important;
    }

    .vnguide-home-hero .vnguide-hero-popular-label {
        width: 100%;
    }

    .vnguide-home-hero .vnguide-hero-popular-chips {
        justify-content: flex-start !important;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        width: 100%;
        padding-bottom: 8px;
        -webkit-overflow-scrolling: touch;
    }

    .vnguide-home-hero .vnguide-hero-chip {
        flex: 0 0 auto;
    }

    .vnguide-home-hero-statbar {
        display: none;
    }

    .vnguide-home-ticket-section,
    .vnguide-home-collections,
    .vnguide-home-featured-destinations {
        padding: 54px 0;
    }

    .vnguide-home-section-head {
        margin-bottom: 26px;
    }

    .vnguide-home-section-head h2 {
        max-width: 21rem;
        font-size: 28px !important;
        line-height: 1.2;
    }

    .vnguide-home-section-head p {
        max-width: 21rem;
        font-size: 15px;
        line-height: 1.6;
    }

    .vnguide-home-link-button {
        width: 100%;
    }

    .vnguide-home-ticket-pills {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 8px;
        -webkit-overflow-scrolling: touch;
    }

    .vnguide-home-ticket-pills a {
        flex: 0 0 auto;
    }

    .vnguide-home-featured-card {
        min-height: 236px;
    }

    .vnguide-home-ticket-body h3 {
        min-height: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .vnguide-home-page *,
    .vnguide-home-page *::before,
    .vnguide-home-page *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
    }

    .vnguide-home-motion-ready [data-vnguide-home-reveal] {
        opacity: 1;
        transform: none;
    }
}
