/*
 * Hùng Vũ Hotel Booking - Frontend Compact v1.0.9
 * Class prefix hvhb- để hạn chế xung đột theme.
 * Font dùng inherit từ theme website, không ép font riêng.
 */

:root {
  --hvhb-ink: #102117;
  --hvhb-text: #33483a;
  --hvhb-muted: #64746a;
  --hvhb-line: rgba(16, 33, 23, .12);
  --hvhb-soft: #f5faf6;
  --hvhb-soft-2: #e8f4eb;
  --hvhb-white: #fff;
  --hvhb-dark: #0d1710;
  --hvhb-gold: #16803a;
  --hvhb-gold-soft: rgba(22, 128, 58, .12);
  --hvhb-danger: #b34132;
  --hvhb-success: #16803a;
  --hvhb-radius: 12px;
  --hvhb-shadow: 0 14px 38px rgba(12, 24, 15, .10);
  --hvhb-shadow-sm: 0 8px 22px rgba(12, 24, 15, .07);
}

.hvhb-single-room-page,
.hvhb-room-archive-page,
.hvhb-room-grid-wrap,
.hvhb-search-hero,
.hvhb-room-card,
.hvhb-booking-card,
.hvhb-room-detail {
  color: var(--hvhb-ink) !important;
  font-family: inherit !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
}

.hvhb-single-room-page *,
.hvhb-room-archive-page *,
.hvhb-room-grid-wrap *,
.hvhb-search-hero *,
.hvhb-room-card *,
.hvhb-booking-card *,
.hvhb-room-detail * {
  box-sizing: border-box !important;
  font-family: inherit !important;
}

.hvhb-single-room-page i[class^="fa-"],
.hvhb-single-room-page i[class*=" fa-"],
.hvhb-room-archive-page i[class^="fa-"],
.hvhb-room-grid-wrap i[class^="fa-"],
.hvhb-search-hero i[class^="fa-"],
.hvhb-booking-card i[class^="fa-"] {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  flex: 0 0 auto;
}

.hvhb-single-room-page,
.hvhb-room-archive-page {
  background: var(--hvhb-soft) !important;
  padding-bottom: 54px !important;
  overflow-x: hidden !important;
}

.hvhb-single-container {
  width: min(100%, 1180px) !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding-left: 22px !important;
  padding-right: 22px !important;
}

/* Breadcrumb + frontend edit link */
.hvhb-room-breadcrumb {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
  padding: 18px 0 14px !important;
  margin: 0 !important;
  color: var(--hvhb-muted) !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
}

.hvhb-room-breadcrumb a,
.hvhb-room-breadcrumb strong {
  color: inherit !important;
  text-decoration: none !important;
  font-weight: 600 !important;
}

.hvhb-room-breadcrumb a:hover,
.hvhb-room-breadcrumb strong {
  color: var(--hvhb-ink) !important;
}

.hvhb-edit-room-link,
.hvhb-room-card__edit {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  min-height: 30px !important;
  padding: 0 10px !important;
  border: 1px solid var(--hvhb-line) !important;
  border-radius: 999px !important;
  background: var(--hvhb-white) !important;
  color: var(--hvhb-ink) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  box-shadow: var(--hvhb-shadow-sm) !important;
}

.hvhb-edit-room-link {
  margin-left: auto !important;
}

.hvhb-edit-room-link:hover,
.hvhb-room-card__edit:hover {
  background: var(--hvhb-dark) !important;
  border-color: var(--hvhb-dark) !important;
  color: #fff !important;
}

/* Buttons */
.hvhb-btn,
.hvhb-single-room-page .hvhb-btn,
.hvhb-room-archive-page .hvhb-btn,
.hvhb-room-grid-wrap .hvhb-btn,
.hvhb-search-hero .hvhb-btn,
.hvhb-booking-card .hvhb-btn,
.hvhb-room-detail .hvhb-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  min-height: 40px !important;
  padding: 0 16px !important;
  border: 1px solid transparent !important;
  border-radius: 6px !important;
  background-image: none !important;
  box-shadow: none !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .02em !important;
  line-height: 1 !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: none !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  transition: .2s ease !important;
}

.hvhb-btn-primary {
  background: var(--hvhb-dark) !important;
  border-color: var(--hvhb-dark) !important;
  color: #fff !important;
}

.hvhb-btn-primary:hover {
  background: var(--hvhb-gold) !important;
  border-color: var(--hvhb-gold) !important;
  color: #fff !important;
  transform: translateY(-1px) !important;
}

.hvhb-btn-outline {
  background: var(--hvhb-white) !important;
  border-color: var(--hvhb-line) !important;
  color: var(--hvhb-ink) !important;
}

.hvhb-btn-outline:hover {
  background: var(--hvhb-dark) !important;
  border-color: var(--hvhb-dark) !important;
  color: #fff !important;
}

.hvhb-btn-lg { min-height: 42px !important; padding-left: 18px !important; padding-right: 18px !important; }
.hvhb-btn-full { width: 100% !important; }

/* Search */
.hvhb-search-hero {
  position: relative !important;
  margin: 0 0 30px !important;
  padding: 30px !important;
  background: var(--hvhb-dark) !important;
  color: #fff !important;
  border-radius: 0 !important;
  box-shadow: var(--hvhb-shadow) !important;
}

.hvhb-search-hero__title {
  max-width: 720px !important;
  margin: 0 0 8px !important;
  color: #fff !important;
  font-size: clamp(25px, 3vw, 38px) !important;
  font-weight: 700 !important;
  line-height: 1.18 !important;
  letter-spacing: -0.02em !important;
}

.hvhb-search-hero__subtitle {
  max-width: 620px !important;
  margin: 0 0 20px !important;
  color: rgba(255,255,255,.78) !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
}

.hvhb-search-form {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) auto !important;
  gap: 8px !important;
  align-items: stretch !important;
}

.hvhb-search-form__field,
.hvhb-booking-form label {
  display: block !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 9px 11px 7px !important;
  background: #fff !important;
  border: 1px solid var(--hvhb-line) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}

.hvhb-search-form__field:focus-within,
.hvhb-booking-form label:focus-within {
  border-color: var(--hvhb-gold) !important;
  box-shadow: 0 0 0 2px var(--hvhb-gold-soft) !important;
}

.hvhb-search-form__field label,
.hvhb-booking-form label span {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 0 4px !important;
  color: var(--hvhb-muted) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 1.25 !important;
  text-transform: none !important;
}

.hvhb-search-form__field label i,
.hvhb-booking-form label span i {
  color: var(--hvhb-gold) !important;
  font-size: 11px !important;
}

.hvhb-search-form input,
.hvhb-search-form select,
.hvhb-booking-form input,
.hvhb-booking-form select,
.hvhb-booking-form textarea {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 30px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: none !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--hvhb-ink) !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  text-transform: none !important;
}

.hvhb-search-form select {
  padding-right: 18px !important;
}

.hvhb-booking-form textarea {
  min-height: 74px !important;
  padding-top: 4px !important;
  resize: vertical !important;
}

.hvhb-search-form input::placeholder,
.hvhb-booking-form input::placeholder,
.hvhb-booking-form textarea::placeholder {
  color: rgba(33,26,22,.40) !important;
  opacity: 1 !important;
}

.hvhb-search-form__submit {
  display: flex !important;
}

.hvhb-search-form__submit .hvhb-btn {
  height: 100% !important;
  min-height: 48px !important;
}

.hvhb-trust-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px 16px !important;
  margin-top: 14px !important;
  color: rgba(255,255,255,.78) !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
}

.hvhb-trust-row span,
.hvhb-booking-card__trust span {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}

.hvhb-trust-row i,
.hvhb-booking-card__trust i {
  color: var(--hvhb-gold) !important;
}

/* Archive */
.hvhb-archive-hero {
  margin: 0 0 28px !important;
  padding: 34px !important;
  background: var(--hvhb-dark) !important;
  color: #fff !important;
  box-shadow: var(--hvhb-shadow) !important;
}

.hvhb-archive-hero span,
.hvhb-room-section__head span,
.hvhb-room-label-row span,
.hvhb-booking-card__head span,
.hvhb-room-hero-price span,
.hvhb-room-card__price small {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  margin: 0 0 7px !important;
  color: var(--hvhb-gold) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

.hvhb-archive-hero h1 {
  margin: 0 0 9px !important;
  color: #fff !important;
  font-size: clamp(28px, 3.6vw, 44px) !important;
  font-weight: 700 !important;
  line-height: 1.18 !important;
  letter-spacing: -0.02em !important;
}

.hvhb-archive-hero p {
  max-width: 680px !important;
  margin: 0 !important;
  color: rgba(255,255,255,.78) !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
}

/* Room grid/cards */
.hvhb-room-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
}

.hvhb-room-grid-wrap--cols-1 .hvhb-room-grid { grid-template-columns: 1fr !important; }
.hvhb-room-grid-wrap--cols-2 .hvhb-room-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.hvhb-room-grid-wrap--cols-3 .hvhb-room-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.hvhb-room-grid-wrap--cols-4 .hvhb-room-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }

.hvhb-room-card {
  position: relative !important;
  min-width: 0 !important;
  background: var(--hvhb-white) !important;
  border: 1px solid var(--hvhb-line) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-shadow: var(--hvhb-shadow-sm) !important;
}

.hvhb-room-card__edit {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  z-index: 4 !important;
}

.hvhb-room-card__image {
  position: relative !important;
  display: block !important;
  aspect-ratio: 16 / 10 !important;
  overflow: hidden !important;
  background: var(--hvhb-soft-2) !important;
  color: var(--hvhb-muted) !important;
  text-decoration: none !important;
}

.hvhb-room-card__image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform .35s ease !important;
}

.hvhb-room-card:hover .hvhb-room-card__image img {
  transform: scale(1.035) !important;
}

.hvhb-room-card__placeholder {
  display: grid !important;
  place-items: center !important;
  gap: 8px !important;
  width: 100% !important;
  height: 100% !important;
  color: var(--hvhb-muted) !important;
  font-size: 13px !important;
}

.hvhb-room-card__badge {
  position: absolute !important;
  left: 10px !important;
  top: 10px !important;
  z-index: 3 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  min-height: 26px !important;
  padding: 0 9px !important;
  border-radius: 999px !important;
  background: rgba(12,24,15,.92) !important;
  color: #fff !important;
  font-size: 11px !important;
  font-weight: 600 !important;
}

.hvhb-room-card__body {
  padding: 15px !important;
}

.hvhb-room-card__title {
  margin: 0 0 8px !important;
  font-size: clamp(18px, 1.8vw, 22px) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.015em !important;
}

.hvhb-room-card__title a {
  color: var(--hvhb-ink) !important;
  text-decoration: none !important;
}

.hvhb-room-card__title a:hover {
  color: var(--hvhb-gold) !important;
}

.hvhb-room-card__meta,
.hvhb-room-card__amenities {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
  margin: 0 0 9px !important;
  color: var(--hvhb-muted) !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
}

.hvhb-room-card__meta span,
.hvhb-room-card__amenities span,
.hvhb-room-hero-meta span {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
}

.hvhb-room-card__meta i,
.hvhb-room-card__amenities i,
.hvhb-room-hero-meta i {
  color: var(--hvhb-gold) !important;
  font-size: 11px !important;
}

.hvhb-room-card__footer {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding-top: 12px !important;
  border-top: 1px solid var(--hvhb-line) !important;
}

.hvhb-room-card__price strong {
  display: block !important;
  margin: 1px 0 !important;
  color: var(--hvhb-ink) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
}

.hvhb-room-card__price span {
  color: var(--hvhb-muted) !important;
  font-size: 12px !important;
}

.hvhb-room-card__actions {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.hvhb-room-card__actions .hvhb-btn {
  min-height: 36px !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
  font-size: 12px !important;
}

.hvhb-empty-state,
.hvhb-alert {
  padding: 18px !important;
  background: #fff !important;
  border: 1px solid var(--hvhb-line) !important;
  border-radius: 10px !important;
  box-shadow: var(--hvhb-shadow-sm) !important;
}

.hvhb-empty-state strong,
.hvhb-alert strong {
  display: block !important;
  margin-bottom: 5px !important;
  color: var(--hvhb-ink) !important;
  font-size: 18px !important;
}

/* Single room */
.hvhb-room-featured-cover {
  width: min(100%, 1240px) !important;
  margin: 0 auto 28px !important;
  padding: 0 22px !important;
}

.hvhb-room-featured-cover__image {
  display: block !important;
  width: 100% !important;
  height: clamp(320px, 46vh, 520px) !important;
  object-fit: cover !important;
  object-position: center !important;
  background: var(--hvhb-soft-2) !important;
  border-radius: 12px !important;
  box-shadow: var(--hvhb-shadow) !important;
}

.hvhb-room-hero-panel {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 300px !important;
  gap: 28px !important;
  align-items: end !important;
  margin: 0 0 30px !important;
  padding: 0 0 28px !important;
  border-bottom: 1px solid var(--hvhb-line) !important;
}

.hvhb-room-label-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-bottom: 8px !important;
}

.hvhb-room-label-row span {
  min-height: 26px !important;
  margin: 0 !important;
  padding: 0 10px !important;
  border-radius: 999px !important;
  background: #fff !important;
  border: 1px solid var(--hvhb-line) !important;
  font-size: 12px !important;
}

.hvhb-single-room-title {
  max-width: 760px !important;
  margin: 0 0 10px !important;
  color: var(--hvhb-ink) !important;
  font-size: clamp(30px, 4.1vw, 46px) !important;
  font-weight: 700 !important;
  line-height: 1.16 !important;
  letter-spacing: -0.025em !important;
}

.hvhb-room-hero-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  color: var(--hvhb-muted) !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
}

.hvhb-room-hero-meta span {
  min-height: 28px !important;
  padding: 4px 9px !important;
  background: #fff !important;
  border: 1px solid var(--hvhb-line) !important;
  border-radius: 999px !important;
}

.hvhb-room-hero-price {
  padding: 18px !important;
  background: #fff !important;
  border: 1px solid var(--hvhb-line) !important;
  border-radius: 12px !important;
  box-shadow: var(--hvhb-shadow-sm) !important;
}

.hvhb-room-hero-price del {
  display: block !important;
  margin: 4px 0 0 !important;
  color: var(--hvhb-muted) !important;
  font-size: 12px !important;
}

.hvhb-room-hero-price strong,
.hvhb-booking-card__head strong {
  display: block !important;
  margin: 4px 0 1px !important;
  color: var(--hvhb-ink) !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
}

.hvhb-room-hero-price small,
.hvhb-booking-card__head small {
  display: block !important;
  margin: 0 0 12px !important;
  color: var(--hvhb-muted) !important;
  font-size: 12px !important;
}

.hvhb-single-room-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 350px !important;
  gap: 34px !important;
  align-items: start !important;
}

.hvhb-single-room-main {
  min-width: 0 !important;
}

.hvhb-single-room-sidebar {
  position: sticky !important;
  top: 22px !important;
  min-width: 0 !important;
}

.hvhb-room-section {
  padding: 0 0 32px !important;
  margin: 0 0 32px !important;
  border-bottom: 1px solid var(--hvhb-line) !important;
}

.hvhb-room-section:last-child {
  margin-bottom: 0 !important;
}

.hvhb-room-section__head {
  max-width: 720px !important;
  margin: 0 0 16px !important;
}

.hvhb-room-section__head h2 {
  margin: 0 !important;
  color: var(--hvhb-ink) !important;
  font-size: clamp(22px, 2.5vw, 30px) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.018em !important;
}

/* Slider */
.hvhb-room-slider {
  position: relative !important;
}

.hvhb-room-slider__viewport {
  position: relative !important;
  overflow: hidden !important;
  background: var(--hvhb-soft-2) !important;
  border: 1px solid var(--hvhb-line) !important;
  border-radius: 12px !important;
  box-shadow: var(--hvhb-shadow-sm) !important;
  touch-action: pan-y !important;
}

.hvhb-room-slider--content .hvhb-room-slider__viewport {
  height: clamp(290px, 36vw, 450px) !important;
}

.hvhb-room-slider__track {
  display: flex !important;
  height: 100% !important;
  transition: transform .45s ease !important;
  will-change: transform !important;
}

.hvhb-room-slider__slide {
  flex: 0 0 100% !important;
  min-width: 100% !important;
  height: 100% !important;
}

.hvhb-room-slider__image {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.hvhb-room-slider__arrow {
  position: absolute !important;
  top: 50% !important;
  z-index: 5 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,.32) !important;
  border-radius: 50% !important;
  background: rgba(12,24,15,.65) !important;
  color: #fff !important;
  font-size: 14px !important;
  line-height: 1 !important;
  transform: translateY(-50%) !important;
  cursor: pointer !important;
}

.hvhb-room-slider__arrow:hover {
  background: var(--hvhb-gold) !important;
}

.hvhb-room-slider__arrow--prev { left: 12px !important; }
.hvhb-room-slider__arrow--next { right: 12px !important; }

.hvhb-room-slider__counter {
  position: absolute !important;
  right: 12px !important;
  bottom: 12px !important;
  z-index: 4 !important;
  display: inline-flex !important;
  align-items: center !important;
  min-height: 28px !important;
  padding: 0 9px !important;
  border-radius: 999px !important;
  background: rgba(12,24,15,.68) !important;
  color: #fff !important;
  font-size: 11px !important;
  font-weight: 600 !important;
}

.hvhb-room-slider__thumbs {
  display: grid !important;
  grid-auto-flow: column !important;
  grid-auto-columns: minmax(64px, 86px) !important;
  gap: 8px !important;
  margin-top: 9px !important;
  padding-bottom: 4px !important;
  overflow-x: auto !important;
}

.hvhb-room-slider__thumb {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  background: var(--hvhb-soft-2) !important;
  overflow: hidden !important;
  opacity: .72 !important;
  cursor: pointer !important;
}

.hvhb-room-slider__thumb.is-active,
.hvhb-room-slider__thumb:hover {
  opacity: 1 !important;
  border-color: var(--hvhb-gold) !important;
}

.hvhb-room-slider__thumb img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* Specs/content */
.hvhb-room-spec-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

.hvhb-room-spec-grid div,
.hvhb-room-policy-grid div {
  padding: 16px !important;
  background: #fff !important;
  border: 1px solid var(--hvhb-line) !important;
  border-radius: 12px !important;
  box-shadow: var(--hvhb-shadow-sm) !important;
}

.hvhb-room-spec-grid div > i,
.hvhb-room-policy-grid div > i {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 30px !important;
  height: 30px !important;
  margin-bottom: 8px !important;
  border-radius: 999px !important;
  background: var(--hvhb-gold-soft) !important;
  color: var(--hvhb-gold) !important;
  font-size: 13px !important;
}

.hvhb-room-spec-grid span {
  display: block !important;
  margin: 0 0 4px !important;
  color: var(--hvhb-muted) !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
}

.hvhb-room-spec-grid strong {
  display: block !important;
  color: var(--hvhb-ink) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
}

.hvhb-room-content-text {
  max-width: 820px !important;
  color: var(--hvhb-text) !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
}

.hvhb-room-content-text p,
.hvhb-room-content-text li {
  margin-bottom: 1em !important;
  font-size: 14px !important;
  line-height: 1.75 !important;
}

.hvhb-room-content-text h1,
.hvhb-room-content-text h2,
.hvhb-room-content-text h3,
.hvhb-room-content-text h4 {
  margin: 1em 0 .55em !important;
  color: var(--hvhb-ink) !important;
  font-size: 21px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
}

.hvhb-room-amenities-list {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

.hvhb-room-amenities-list span {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 44px !important;
  padding: 11px 13px !important;
  background: #fff !important;
  border: 1px solid var(--hvhb-line) !important;
  border-radius: 10px !important;
  color: var(--hvhb-text) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
}

.hvhb-room-amenities-list i {
  color: var(--hvhb-gold) !important;
  font-size: 12px !important;
}

.hvhb-room-policy-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 12px !important;
}

.hvhb-room-policy-grid strong {
  display: block !important;
  margin: 0 0 6px !important;
  color: var(--hvhb-ink) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
}

.hvhb-room-policy-grid p {
  margin: 0 !important;
  color: var(--hvhb-muted) !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
}

/* Booking card */
.hvhb-booking-card {
  background: #fff !important;
  border: 1px solid var(--hvhb-line) !important;
  border-radius: 12px !important;
  box-shadow: var(--hvhb-shadow) !important;
  overflow: hidden !important;
}

.hvhb-booking-card__head {
  padding: 18px 18px 0 !important;
}

.hvhb-booking-form {
  display: grid !important;
  gap: 11px !important;
  padding: 14px 18px 18px !important;
}

.hvhb-booking-form__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

.hvhb-booking-form__submit {
  margin-top: 2px !important;
}

.hvhb-booking-form__message {
  display: none;
  padding: 10px 12px !important;
  border-radius: 8px !important;
  border: 1px solid var(--hvhb-line) !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}

.hvhb-booking-form__message.is-success {
  display: block !important;
  background: rgba(36, 122, 89, .08) !important;
  border-color: rgba(36, 122, 89, .20) !important;
  color: var(--hvhb-success) !important;
}

.hvhb-booking-form__message.is-error {
  display: block !important;
  background: rgba(179, 65, 50, .08) !important;
  border-color: rgba(179, 65, 50, .20) !important;
  color: var(--hvhb-danger) !important;
}

.hvhb-booking-card__trust {
  display: grid !important;
  gap: 5px !important;
  color: var(--hvhb-muted) !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
}

/* Legacy compatibility */
.hvhb-room-gallery { margin: 0 0 24px !important; }
.hvhb-room-gallery-main { aspect-ratio: 16 / 10 !important; overflow: hidden !important; background: var(--hvhb-soft-2) !important; border-radius: 10px !important; }
.hvhb-room-gallery-main-img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
.hvhb-room-gallery-thumbs { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(58px, 1fr)) !important; gap: 8px !important; margin-top: 8px !important; }
.hvhb-room-gallery-thumb { padding: 0 !important; border: 1px solid transparent !important; border-radius: 7px !important; background: transparent !important; aspect-ratio: 1 / 1 !important; overflow: hidden !important; }
.hvhb-room-gallery-thumb.is-active { border-color: var(--hvhb-gold) !important; }
.hvhb-room-gallery-thumb img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
.hvhb-room-info-box { padding: 16px !important; background: #fff !important; border: 1px solid var(--hvhb-line) !important; border-radius: 10px !important; }
.hvhb-room-info-box h2 { margin: 0 0 12px !important; font-size: 20px !important; font-weight: 700 !important; }
.hvhb-room-info-list { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; }
.hvhb-room-info-list span { padding: 7px 10px !important; background: var(--hvhb-soft) !important; border-radius: 999px !important; color: var(--hvhb-text) !important; font-size: 12px !important; }

/* Responsive */
@media (max-width: 1180px) {
  .hvhb-search-form { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .hvhb-search-form__submit { grid-column: 1 / -1 !important; }
  .hvhb-search-form__submit .hvhb-btn { width: 100% !important; min-height: 42px !important; }
  .hvhb-room-grid-wrap--cols-4 .hvhb-room-grid,
  .hvhb-room-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .hvhb-room-hero-panel,
  .hvhb-single-room-layout { grid-template-columns: 1fr !important; }
  .hvhb-single-room-sidebar { position: static !important; }
  .hvhb-room-hero-price { max-width: 420px !important; }
}

@media (max-width: 820px) {
  .hvhb-single-room-page,
  .hvhb-room-archive-page { padding-bottom: 42px !important; }
  .hvhb-single-container { padding-left: 14px !important; padding-right: 14px !important; }
  .hvhb-room-breadcrumb { font-size: 11px !important; padding-top: 14px !important; }
  .hvhb-edit-room-link { margin-left: 0 !important; }

  .hvhb-search-hero,
  .hvhb-archive-hero { padding: 22px !important; margin-bottom: 24px !important; }
  .hvhb-search-hero__title,
  .hvhb-archive-hero h1 { font-size: clamp(24px, 7vw, 34px) !important; }
  .hvhb-search-hero__subtitle,
  .hvhb-archive-hero p { font-size: 13px !important; }
  .hvhb-search-form { grid-template-columns: 1fr !important; }

  .hvhb-room-grid,
  .hvhb-room-grid-wrap--cols-2 .hvhb-room-grid,
  .hvhb-room-grid-wrap--cols-3 .hvhb-room-grid,
  .hvhb-room-grid-wrap--cols-4 .hvhb-room-grid { grid-template-columns: 1fr !important; gap: 18px !important; }

  .hvhb-room-featured-cover { margin-bottom: 22px !important; padding-left: 14px !important; padding-right: 14px !important; }
  .hvhb-room-featured-cover__image { height: auto !important; aspect-ratio: 16 / 10 !important; max-height: 390px !important; border-radius: 10px !important; box-shadow: var(--hvhb-shadow-sm) !important; }

  .hvhb-room-hero-panel { gap: 18px !important; margin-bottom: 24px !important; padding-bottom: 24px !important; }
  .hvhb-single-room-title { font-size: clamp(26px, 8vw, 36px) !important; line-height: 1.18 !important; }
  .hvhb-room-hero-price { max-width: 100% !important; }
  .hvhb-room-hero-meta span { font-size: 12px !important; }

  .hvhb-single-room-layout { gap: 24px !important; }
  .hvhb-room-section { padding-bottom: 26px !important; margin-bottom: 26px !important; }
  .hvhb-room-section__head { margin-bottom: 13px !important; }
  .hvhb-room-section__head h2 { font-size: clamp(21px, 6vw, 27px) !important; }

  .hvhb-room-slider--content .hvhb-room-slider__viewport { height: auto !important; aspect-ratio: 16 / 10 !important; }
  .hvhb-room-slider__arrow { width: 32px !important; height: 32px !important; font-size: 12px !important; }
  .hvhb-room-slider__arrow--prev { left: 8px !important; }
  .hvhb-room-slider__arrow--next { right: 8px !important; }
  .hvhb-room-slider__counter { right: 8px !important; bottom: 8px !important; min-height: 26px !important; font-size: 10px !important; }
  .hvhb-room-slider__thumbs { grid-auto-columns: 58px !important; gap: 7px !important; }

  .hvhb-room-spec-grid,
  .hvhb-room-amenities-list,
  .hvhb-room-policy-grid { grid-template-columns: 1fr !important; gap: 9px !important; }
  .hvhb-room-spec-grid div,
  .hvhb-room-policy-grid div { padding: 14px !important; }
  .hvhb-room-spec-grid strong { font-size: 17px !important; }
  .hvhb-room-content-text,
  .hvhb-room-content-text p,
  .hvhb-room-content-text li { font-size: 14px !important; line-height: 1.7 !important; }

  .hvhb-booking-form__grid { grid-template-columns: 1fr !important; }
  .hvhb-booking-card__head { padding: 16px 16px 0 !important; }
  .hvhb-booking-form { padding: 13px 16px 16px !important; }

  .hvhb-room-card__footer,
  .hvhb-room-card__actions { align-items: stretch !important; flex-direction: column !important; }
  .hvhb-room-card__actions .hvhb-btn { width: 100% !important; }
}

@media (max-width: 520px) {
  .hvhb-single-container { padding-left: 12px !important; padding-right: 12px !important; }
  .hvhb-room-featured-cover { padding-left: 0 !important; padding-right: 0 !important; }
  .hvhb-room-featured-cover__image { border-radius: 0 !important; aspect-ratio: 4 / 3 !important; }

  .hvhb-single-room-title { font-size: clamp(24px, 8vw, 32px) !important; }
  .hvhb-room-label-row span,
  .hvhb-room-section__head span,
  .hvhb-booking-card__head span,
  .hvhb-room-hero-price span,
  .hvhb-search-form__field label,
  .hvhb-booking-form label span { font-size: 11px !important; }

  .hvhb-room-hero-price strong,
  .hvhb-booking-card__head strong { font-size: 22px !important; }
  .hvhb-room-card__title { font-size: 19px !important; }
  .hvhb-room-card__body { padding: 13px !important; }

  .hvhb-btn,
  .hvhb-single-room-page .hvhb-btn,
  .hvhb-room-archive-page .hvhb-btn,
  .hvhb-room-grid-wrap .hvhb-btn,
  .hvhb-search-hero .hvhb-btn,
  .hvhb-booking-card .hvhb-btn { min-height: 40px !important; padding-left: 13px !important; padding-right: 13px !important; font-size: 12px !important; }

  .hvhb-search-form input,
  .hvhb-search-form select,
  .hvhb-booking-form input,
  .hvhb-booking-form select,
  .hvhb-booking-form textarea { font-size: 14px !important; }
}

/* v1.0.8 compact clean overrides */
.hvhb-single-room-page,
.hvhb-room-archive-page,
.hvhb-room-grid-wrap,
.hvhb-search-hero,
.hvhb-room-card,
.hvhb-booking-card {
  font-size: 13px !important;
  line-height: 1.5 !important;
  font-family: inherit !important;
}

.hvhb-single-room-page *,
.hvhb-room-archive-page *,
.hvhb-room-grid-wrap *,
.hvhb-search-hero *,
.hvhb-room-card *,
.hvhb-booking-card * {
  font-family: inherit !important;
}

.hvhb-btn,
.hvhb-single-room-page .hvhb-btn,
.hvhb-room-archive-page .hvhb-btn,
.hvhb-room-grid-wrap .hvhb-btn,
.hvhb-search-hero .hvhb-btn,
.hvhb-booking-card .hvhb-btn {
  min-height: 36px !important;
  padding: 0 14px !important;
  border-radius: 5px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

.hvhb-archive-clean-head {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 18px !important;
  margin: 0 0 22px !important;
  padding: 22px 0 16px !important;
  border-bottom: 1px solid var(--hvhb-line) !important;
}

.hvhb-archive-clean-head span {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 0 5px !important;
  color: var(--hvhb-gold) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}

.hvhb-archive-clean-head h1 {
  margin: 0 !important;
  color: var(--hvhb-ink) !important;
  font-size: clamp(24px, 3vw, 34px) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.015em !important;
}

.hvhb-archive-clean-desc,
.hvhb-archive-clean-desc p {
  max-width: 720px !important;
  margin: 8px 0 0 !important;
  color: var(--hvhb-muted) !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
}

.hvhb-room-archive-page--clean .hvhb-room-card__body {
  padding: 13px !important;
}

.hvhb-room-archive-page--clean .hvhb-room-card__title {
  font-size: 18px !important;
  margin-bottom: 7px !important;
}

.hvhb-room-archive-page--clean .hvhb-room-card__footer {
  padding-top: 10px !important;
}

.hvhb-room-card__meta,
.hvhb-room-card__amenities,
.hvhb-room-hero-meta {
  font-size: 12px !important;
  gap: 6px !important;
}

.hvhb-room-card__price strong {
  font-size: 17px !important;
}

.hvhb-room-card__actions .hvhb-btn {
  min-height: 34px !important;
  padding-left: 10px !important;
  padding-right: 10px !important;
  font-size: 11.5px !important;
}

.hvhb-single-room-title {
  font-size: clamp(26px, 3.5vw, 38px) !important;
  line-height: 1.18 !important;
}

.hvhb-room-section__head h2 {
  font-size: clamp(20px, 2.1vw, 26px) !important;
  line-height: 1.28 !important;
}

.hvhb-room-section__head span,
.hvhb-room-label-row span,
.hvhb-booking-card__head span,
.hvhb-room-hero-price span,
.hvhb-room-card__price small {
  font-size: 11.5px !important;
}

.hvhb-room-hero-panel {
  grid-template-columns: minmax(0, 1fr) 280px !important;
  gap: 22px !important;
  margin-bottom: 26px !important;
  padding-bottom: 24px !important;
}

.hvhb-room-hero-price,
.hvhb-booking-card {
  border-radius: 10px !important;
}

.hvhb-room-hero-price strong,
.hvhb-booking-card__head strong {
  font-size: 21px !important;
}

.hvhb-single-room-layout {
  grid-template-columns: minmax(0, 1fr) 330px !important;
  gap: 28px !important;
}

.hvhb-room-section {
  padding-bottom: 26px !important;
  margin-bottom: 26px !important;
}

.hvhb-room-spec-grid strong,
.hvhb-room-policy-grid strong {
  font-size: 15px !important;
}

.hvhb-room-content-text,
.hvhb-room-content-text p,
.hvhb-room-content-text li,
.hvhb-room-policy-grid p {
  font-size: 13px !important;
  line-height: 1.65 !important;
}

.hvhb-room-amenities-list {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.hvhb-room-amenities-list span {
  min-height: 40px !important;
  padding: 9px 11px !important;
  font-size: 13px !important;
  border-radius: 8px !important;
}

.hvhb-room-amenities-list i {
  min-width: 15px !important;
  text-align: center !important;
  font-size: 13px !important;
}

.hvhb-booking-card__head {
  padding: 15px 15px 0 !important;
}

.hvhb-booking-form {
  gap: 9px !important;
  padding: 12px 15px 15px !important;
}

.hvhb-search-form__field,
.hvhb-booking-form label {
  padding: 8px 10px 6px !important;
  border-radius: 7px !important;
}

.hvhb-search-form input,
.hvhb-search-form select,
.hvhb-booking-form input,
.hvhb-booking-form select,
.hvhb-booking-form textarea {
  min-height: 28px !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
}

.hvhb-booking-form textarea {
  min-height: 64px !important;
}

@media (max-width: 1180px) {
  .hvhb-room-hero-panel,
  .hvhb-single-room-layout {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 820px) {
  .hvhb-archive-clean-head {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 12px !important;
    padding-top: 18px !important;
  }

  .hvhb-archive-clean-head h1 {
    font-size: clamp(23px, 7vw, 30px) !important;
  }

  .hvhb-single-room-title {
    font-size: clamp(23px, 7vw, 31px) !important;
  }

  .hvhb-room-section__head h2 {
    font-size: clamp(19px, 5.5vw, 24px) !important;
  }

  .hvhb-room-amenities-list {
    grid-template-columns: 1fr !important;
  }

  .hvhb-room-card__footer,
  .hvhb-room-card__actions {
    align-items: stretch !important;
    flex-direction: column !important;
  }
}

@media (max-width: 520px) {
  .hvhb-room-card__title {
    font-size: 18px !important;
  }

  .hvhb-room-hero-price strong,
  .hvhb-booking-card__head strong {
    font-size: 20px !important;
  }

  .hvhb-search-form input,
  .hvhb-search-form select,
  .hvhb-booking-form input,
  .hvhb-booking-form select,
  .hvhb-booking-form textarea {
    font-size: 13px !important;
  }
}


/* v1.0.9: Nhãn tiện ích nổi bật dạng 3 nhãn / hàng, kéo ngang để xem thêm */
.hvhb-room-card__amenities {
  display: grid !important;
  grid-auto-flow: column !important;
  grid-auto-columns: calc((100% - 14px) / 3) !important;
  grid-template-columns: none !important;
  grid-template-rows: 1fr !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  gap: 7px !important;
  padding: 2px 0 8px !important;
  margin: 0 0 8px !important;
  scroll-snap-type: x proximity !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: thin !important;
  scrollbar-color: var(--hvhb-gold) transparent !important;
}

.hvhb-room-card__amenities::-webkit-scrollbar {
  height: 4px !important;
}

.hvhb-room-card__amenities::-webkit-scrollbar-track {
  background: transparent !important;
}

.hvhb-room-card__amenities::-webkit-scrollbar-thumb {
  background: var(--hvhb-gold) !important;
  border-radius: 999px !important;
}

.hvhb-room-card__amenities span {
  min-width: 0 !important;
  width: 100% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 5px !important;
  height: 30px !important;
  padding: 0 9px !important;
  border-radius: 999px !important;
  background: var(--hvhb-gold-soft) !important;
  border: 1px solid rgba(22, 128, 58, .18) !important;
  color: var(--hvhb-text) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  scroll-snap-align: start !important;
}

.hvhb-room-card__amenities i {
  color: var(--hvhb-gold) !important;
  font-size: 11px !important;
  width: 13px !important;
  min-width: 13px !important;
  text-align: center !important;
}

.hvhb-room-card__badge {
  background: var(--hvhb-gold) !important;
  color: #fff !important;
}

.hvhb-room-card__title a:hover,
.hvhb-room-card__edit:hover,
.hvhb-archive-clean-title a:hover {
  color: var(--hvhb-gold) !important;
}

@media (max-width: 640px) {
  .hvhb-room-card__amenities {
    grid-auto-columns: calc((100% - 12px) / 3) !important;
    gap: 6px !important;
  }

  .hvhb-room-card__amenities span {
    height: 28px !important;
    padding: 0 7px !important;
    font-size: 11px !important;
  }
}

/* Footer CTA buttons */
.hvhb-footer-cta,
.hvhb-footer-cta * {
  box-sizing: border-box !important;
  font-family: inherit !important;
}

.hvhb-footer-cta {
  --hvhb-footer-cta-green: #16803a;
  --hvhb-footer-cta-green-dark: #0f5f2b;
  --hvhb-footer-cta-dark: #0d1710;
  --hvhb-footer-cta-line: rgba(16, 33, 23, .14);
  width: 100% !important;
  color: #fff !important;
  line-height: 1.2 !important;
}

.hvhb-footer-cta--fixed {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 99998 !important;
  padding: 9px 14px calc(9px + env(safe-area-inset-bottom)) !important;
  background: rgba(255, 255, 255, .94) !important;
  border-top: 1px solid var(--hvhb-footer-cta-line) !important;
  box-shadow: 0 -10px 28px rgba(13, 23, 16, .12) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
}

.hvhb-footer-cta--static {
  position: relative !important;
  z-index: 2 !important;
  padding: 14px 16px !important;
  background: #f5faf6 !important;
  border-top: 1px solid var(--hvhb-footer-cta-line) !important;
}

.hvhb-footer-cta__inner {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
  width: min(100%, 780px) !important;
  max-width: 780px !important;
  margin: 0 auto !important;
}

.hvhb-footer-cta__btn,
.hvhb-footer-cta a.hvhb-footer-cta__btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  min-width: 0 !important;
  min-height: 44px !important;
  padding: 0 16px !important;
  margin: 0 !important;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  background: var(--hvhb-footer-cta-dark) !important;
  background-image: none !important;
  color: #fff !important;
  box-shadow: none !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: none !important;
  white-space: nowrap !important;
  outline: none !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  transition: transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease !important;
}

.hvhb-footer-cta__btn--schedule,
.hvhb-footer-cta a.hvhb-footer-cta__btn--schedule {
  background: var(--hvhb-footer-cta-green) !important;
  border-color: var(--hvhb-footer-cta-green) !important;
  color: #fff !important;
}

.hvhb-footer-cta__btn--consult,
.hvhb-footer-cta a.hvhb-footer-cta__btn--consult {
  background: #fff !important;
  border-color: var(--hvhb-footer-cta-green) !important;
  color: var(--hvhb-footer-cta-green) !important;
}

.hvhb-footer-cta__btn:hover,
.hvhb-footer-cta a.hvhb-footer-cta__btn:hover,
.hvhb-footer-cta__btn:focus,
.hvhb-footer-cta a.hvhb-footer-cta__btn:focus {
  transform: translateY(-1px) !important;
  background: var(--hvhb-footer-cta-green-dark) !important;
  border-color: var(--hvhb-footer-cta-green-dark) !important;
  color: #fff !important;
  text-decoration: none !important;
}

.hvhb-footer-cta__btn i,
.hvhb-footer-cta a.hvhb-footer-cta__btn i {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 14px !important;
  min-width: 14px !important;
  color: inherit !important;
  font-family: "Font Awesome 6 Free" !important;
  font-size: 13px !important;
  font-style: normal !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

.hvhb-footer-cta__btn span,
.hvhb-footer-cta a.hvhb-footer-cta__btn span {
  display: inline-block !important;
  overflow: hidden !important;
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: 1 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

@media (max-width: 575px) {
  .hvhb-footer-cta--fixed {
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom)) !important;
  }

  .hvhb-footer-cta__inner {
    gap: 8px !important;
  }

  .hvhb-footer-cta__btn,
  .hvhb-footer-cta a.hvhb-footer-cta__btn {
    min-height: 42px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
  }
}

/* v1.0.11: nâng cấp block thông tin phòng, tiện ích và sticky đặt lịch */
.hvhb-room-overview-section,
.hvhb-room-amenities-section {
  position: relative !important;
  overflow: hidden !important;
  padding: 22px !important;
  margin-bottom: 26px !important;
  border: 1px solid rgba(22, 128, 58, .13) !important;
  border-radius: 18px !important;
  background:
    radial-gradient(circle at 0 0, rgba(22, 128, 58, .10), transparent 32%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,252,248,.96)) !important;
  box-shadow: 0 14px 34px rgba(10, 38, 21, .07) !important;
}

.hvhb-room-overview-section::before,
.hvhb-room-amenities-section::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 auto 0 0 !important;
  width: 4px !important;
  background: linear-gradient(180deg, #16803a, #35b466) !important;
  border-radius: 18px 0 0 18px !important;
}

.hvhb-room-overview-section .hvhb-room-section__head,
.hvhb-room-amenities-section .hvhb-room-section__head {
  max-width: 100% !important;
  margin-bottom: 18px !important;
}

.hvhb-room-overview-section .hvhb-room-section__head > span,
.hvhb-room-amenities-section .hvhb-room-section__head > span {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  min-height: 26px !important;
  padding: 0 11px !important;
  margin: 0 0 9px !important;
  border-radius: 999px !important;
  background: rgba(22, 128, 58, .10) !important;
  color: #16803a !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}

.hvhb-room-overview-section .hvhb-room-section__head h2,
.hvhb-room-amenities-section .hvhb-room-section__head h2 {
  max-width: 820px !important;
  font-size: clamp(22px, 2.4vw, 32px) !important;
  font-weight: 800 !important;
  line-height: 1.18 !important;
  letter-spacing: -0.02em !important;
}

.hvhb-room-spec-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

.hvhb-room-spec-grid div {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  min-height: 128px !important;
  padding: 18px 17px 16px !important;
  overflow: hidden !important;
  border: 1px solid rgba(22, 128, 58, .13) !important;
  border-radius: 16px !important;
  background: #fff !important;
  box-shadow: 0 10px 28px rgba(10, 38, 21, .06) !important;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease !important;
}

.hvhb-room-spec-grid div::after {
  content: "" !important;
  position: absolute !important;
  right: -28px !important;
  top: -28px !important;
  width: 78px !important;
  height: 78px !important;
  border-radius: 50% !important;
  background: rgba(22, 128, 58, .08) !important;
}

.hvhb-room-spec-grid div:hover {
  transform: translateY(-2px) !important;
  border-color: rgba(22, 128, 58, .28) !important;
  box-shadow: 0 16px 34px rgba(10, 38, 21, .10) !important;
}

.hvhb-room-spec-grid div > i {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 38px !important;
  height: 38px !important;
  margin: 0 0 14px !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, rgba(22,128,58,.16), rgba(22,128,58,.07)) !important;
  color: #16803a !important;
  font-size: 16px !important;
}

.hvhb-room-spec-grid span {
  display: block !important;
  margin: 0 0 5px !important;
  color: var(--hvhb-muted) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
}

.hvhb-room-spec-grid strong {
  display: block !important;
  color: var(--hvhb-ink) !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
}

.hvhb-room-amenities-list {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 12px !important;
}

.hvhb-room-amenities-list span {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  gap: 11px !important;
  min-height: 54px !important;
  padding: 12px 14px !important;
  border: 1px solid rgba(22, 128, 58, .13) !important;
  border-radius: 14px !important;
  background: #fff !important;
  color: var(--hvhb-ink) !important;
  font-size: 14px !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
  box-shadow: 0 8px 22px rgba(10, 38, 21, .05) !important;
  transition: transform .18s ease, border-color .18s ease, background .18s ease !important;
}

.hvhb-room-amenities-list span:hover {
  transform: translateY(-2px) !important;
  border-color: rgba(22, 128, 58, .30) !important;
  background: #fbfffc !important;
}

.hvhb-room-amenities-list i {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 30px !important;
  min-width: 30px !important;
  height: 30px !important;
  border-radius: 10px !important;
  background: rgba(22, 128, 58, .10) !important;
  color: #16803a !important;
  font-size: 14px !important;
}

.hvhb-single-room-sidebar--sticky {
  align-self: start !important;
}

@media (min-width: 1181px) {
  .hvhb-single-room-sidebar--sticky {
    position: sticky !important;
    top: 86px !important;
    z-index: 20 !important;
  }

  .admin-bar .hvhb-single-room-sidebar--sticky {
    top: 118px !important;
  }

  .hvhb-single-room-sidebar--sticky .hvhb-booking-card {
    max-height: calc(100vh - 110px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
  }

  .admin-bar .hvhb-single-room-sidebar--sticky .hvhb-booking-card {
    max-height: calc(100vh - 142px) !important;
  }
}

.hvhb-room-sticky-booking {
  display: none !important;
}

@media (max-width: 1180px) {
  .hvhb-room-spec-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .hvhb-room-amenities-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .hvhb-room-sticky-booking {
    position: fixed !important;
    left: 14px !important;
    right: 14px !important;
    bottom: calc(72px + env(safe-area-inset-bottom)) !important;
    z-index: 99980 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    min-height: 64px !important;
    padding: 10px 10px 10px 14px !important;
    border: 1px solid rgba(22, 128, 58, .18) !important;
    border-radius: 18px !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: 0 16px 46px rgba(10, 38, 21, .20) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
  }

  .hvhb-single-room-page {
    padding-bottom: 150px !important;
  }

  .hvhb-room-sticky-booking__price {
    min-width: 0 !important;
    display: grid !important;
    gap: 1px !important;
  }

  .hvhb-room-sticky-booking__price span,
  .hvhb-room-sticky-booking__price small {
    display: block !important;
    color: var(--hvhb-muted) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.15 !important;
  }

  .hvhb-room-sticky-booking__price strong {
    display: block !important;
    color: var(--hvhb-ink) !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
  }

  .hvhb-room-sticky-booking__btn,
  .hvhb-single-room-page .hvhb-room-sticky-booking__btn {
    flex: 0 0 auto !important;
    min-height: 44px !important;
    padding: 0 18px !important;
    border-radius: 999px !important;
    background: #16803a !important;
    border-color: #16803a !important;
    color: #fff !important;
    font-size: 13px !important;
    box-shadow: 0 8px 18px rgba(22, 128, 58, .24) !important;
  }
}

@media (max-width: 575px) {
  .hvhb-room-overview-section,
  .hvhb-room-amenities-section {
    padding: 17px !important;
    border-radius: 15px !important;
  }

  .hvhb-room-overview-section .hvhb-room-section__head h2,
  .hvhb-room-amenities-section .hvhb-room-section__head h2 {
    font-size: 21px !important;
  }

  .hvhb-room-spec-grid,
  .hvhb-room-amenities-list {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .hvhb-room-spec-grid div {
    min-height: auto !important;
    padding: 14px !important;
  }

  .hvhb-room-spec-grid div > i {
    width: 34px !important;
    height: 34px !important;
    margin-bottom: 10px !important;
  }

  .hvhb-room-spec-grid strong {
    font-size: 16px !important;
  }

  .hvhb-room-amenities-list span {
    min-height: 48px !important;
    padding: 10px 12px !important;
    font-size: 13px !important;
  }

  .hvhb-room-sticky-booking {
    left: 10px !important;
    right: 10px !important;
    min-height: 58px !important;
    padding: 8px 8px 8px 12px !important;
    border-radius: 15px !important;
  }

  .hvhb-room-sticky-booking__price strong {
    font-size: 16px !important;
  }

  .hvhb-room-sticky-booking__btn,
  .hvhb-single-room-page .hvhb-room-sticky-booking__btn {
    min-height: 40px !important;
    padding: 0 14px !important;
    font-size: 12px !important;
  }
}

/* v1.0.12: Thiết kế lại form đặt lịch + sticky thật hơn */
.hvhb-single-room-page {
  overflow-x: clip !important;
  overflow-y: visible !important;
}

.hvhb-single-container,
.hvhb-single-room-layout,
.hvhb-single-room-main,
.hvhb-single-room-sidebar {
  overflow: visible !important;
}

.hvhb-single-room-layout {
  position: relative !important;
  align-items: flex-start !important;
}

.hvhb-single-room-sidebar,
.hvhb-single-room-sidebar--sticky {
  align-self: flex-start !important;
  height: auto !important;
  min-height: 1px !important;
}

@media (min-width: 1181px) {
  .hvhb-single-room-sidebar--sticky {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 86px !important;
    z-index: 50 !important;
  }

  .admin-bar .hvhb-single-room-sidebar--sticky {
    top: 118px !important;
  }

  .hvhb-single-room-sidebar--sticky .hvhb-booking-card {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 86px !important;
    z-index: 51 !important;
    max-height: calc(100vh - 104px) !important;
    overflow-y: auto !important;
    scrollbar-width: thin !important;
    overscroll-behavior: contain !important;
  }

  .admin-bar .hvhb-single-room-sidebar--sticky .hvhb-booking-card {
    top: 118px !important;
    max-height: calc(100vh - 136px) !important;
  }
}

.hvhb-booking-card,
.hvhb-single-room-page .hvhb-booking-card {
  position: relative !important;
  overflow: hidden !important;
  border: 1px solid rgba(22, 128, 58, .16) !important;
  border-radius: 20px !important;
  background: #ffffff !important;
  box-shadow: 0 18px 46px rgba(9, 32, 19, .12) !important;
}

.hvhb-booking-card::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  height: 5px !important;
  background: linear-gradient(90deg, #16803a, #2dbd64, #88d66c) !important;
  z-index: 2 !important;
}

.hvhb-booking-card__head,
.hvhb-single-room-page .hvhb-booking-card__head {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding: 20px 20px 14px !important;
  background:
    radial-gradient(circle at 100% 0, rgba(45, 189, 100, .18), transparent 38%),
    linear-gradient(180deg, #f7fff8, #ffffff) !important;
  border-bottom: 1px solid rgba(22, 128, 58, .10) !important;
}

.hvhb-booking-card__pricebox {
  min-width: 0 !important;
}

.hvhb-booking-card__eyebrow,
.hvhb-booking-card__head span.hvhb-booking-card__eyebrow {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 0 8px !important;
  color: #16803a !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
}

.hvhb-booking-card__head strong,
.hvhb-single-room-page .hvhb-booking-card__head strong {
  display: block !important;
  margin: 0 !important;
  color: #0b2012 !important;
  font-size: 28px !important;
  font-weight: 850 !important;
  line-height: 1.05 !important;
  letter-spacing: -.02em !important;
}

.hvhb-booking-card__head small,
.hvhb-single-room-page .hvhb-booking-card__head small {
  display: block !important;
  margin: 4px 0 0 !important;
  color: #68766d !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}

.hvhb-booking-card__badge,
.hvhb-booking-card__head span.hvhb-booking-card__badge {
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 !important;
  padding: 7px 10px !important;
  border: 1px solid rgba(22, 128, 58, .16) !important;
  border-radius: 999px !important;
  background: #eaf8ee !important;
  color: #16803a !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.hvhb-booking-card__note {
  display: flex !important;
  align-items: flex-start !important;
  gap: 9px !important;
  margin: 14px 16px 0 !important;
  padding: 11px 12px !important;
  border: 1px solid rgba(22, 128, 58, .14) !important;
  border-radius: 14px !important;
  background: #f3fbf5 !important;
  color: #415247 !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
}

.hvhb-booking-card__note i {
  color: #16803a !important;
  margin-top: 2px !important;
}

.hvhb-booking-form,
.hvhb-single-room-page .hvhb-booking-form {
  display: grid !important;
  gap: 10px !important;
  padding: 14px 16px 17px !important;
  background: #fff !important;
}

.hvhb-booking-form__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

.hvhb-booking-form label,
.hvhb-single-room-page .hvhb-booking-form label {
  position: relative !important;
  display: block !important;
  min-height: auto !important;
  margin: 0 !important;
  padding: 10px 12px !important;
  border: 1px solid rgba(16, 33, 23, .12) !important;
  border-radius: 14px !important;
  background: #fbfdfb !important;
  box-shadow: 0 4px 14px rgba(9, 32, 19, .035) !important;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease !important;
}

.hvhb-booking-form label:hover,
.hvhb-booking-form label:focus-within {
  border-color: rgba(22, 128, 58, .36) !important;
  background: #ffffff !important;
  box-shadow: 0 8px 22px rgba(22, 128, 58, .08) !important;
}

.hvhb-booking-form label span,
.hvhb-single-room-page .hvhb-booking-form label span {
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  margin: 0 0 5px !important;
  color: #52705a !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.hvhb-booking-form label span i {
  color: #16803a !important;
  font-size: 13px !important;
}

.hvhb-booking-form input,
.hvhb-booking-form select,
.hvhb-booking-form textarea,
.hvhb-single-room-page .hvhb-booking-form input,
.hvhb-single-room-page .hvhb-booking-form select,
.hvhb-single-room-page .hvhb-booking-form textarea {
  width: 100% !important;
  min-height: 28px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #142018 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
  outline: none !important;
}

.hvhb-booking-form textarea,
.hvhb-single-room-page .hvhb-booking-form textarea {
  min-height: 68px !important;
  resize: vertical !important;
}

.hvhb-booking-form input::placeholder,
.hvhb-booking-form textarea::placeholder {
  color: rgba(20, 32, 24, .42) !important;
}

.hvhb-booking-form__submit,
.hvhb-single-room-page .hvhb-booking-form__submit {
  min-height: 48px !important;
  margin-top: 2px !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, #16803a, #24a857) !important;
  border: 0 !important;
  color: #ffffff !important;
  font-size: 14px !important;
  font-weight: 850 !important;
  letter-spacing: 0 !important;
  box-shadow: 0 12px 24px rgba(22, 128, 58, .26) !important;
}

.hvhb-booking-form__submit:hover,
.hvhb-single-room-page .hvhb-booking-form__submit:hover {
  background: linear-gradient(135deg, #0f642c, #16803a) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 14px 28px rgba(22, 128, 58, .32) !important;
}

.hvhb-booking-card__trust,
.hvhb-single-room-page .hvhb-booking-card__trust {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 7px !important;
  margin-top: 2px !important;
  color: #50645a !important;
  font-size: 12px !important;
  font-weight: 650 !important;
  line-height: 1.35 !important;
}

.hvhb-booking-card__trust span {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 7px 10px !important;
  border-radius: 999px !important;
  background: #f4fbf5 !important;
}

.hvhb-booking-card__trust i {
  color: #16803a !important;
  font-size: 13px !important;
}

.hvhb-booking-card.is-hvhb-js-fixed {
  position: fixed !important;
  z-index: 99970 !important;
}

.hvhb-booking-card.is-hvhb-js-bottom {
  position: absolute !important;
  z-index: 50 !important;
}

/* Làm lại block thông tin và tiện ích cho gọn, đẹp hơn */
.hvhb-room-overview-section,
.hvhb-room-amenities-section {
  padding: 18px !important;
  border-radius: 18px !important;
  background: linear-gradient(180deg, #ffffff, #f7fcf8) !important;
  border: 1px solid rgba(22, 128, 58, .14) !important;
  box-shadow: 0 14px 34px rgba(9, 32, 19, .06) !important;
}

.hvhb-room-overview-section .hvhb-room-section__head h2,
.hvhb-room-amenities-section .hvhb-room-section__head h2 {
  font-size: clamp(20px, 2vw, 27px) !important;
  line-height: 1.25 !important;
}

.hvhb-room-spec-grid {
  gap: 12px !important;
}

.hvhb-room-spec-grid div {
  min-height: 104px !important;
  padding: 14px !important;
  border-radius: 15px !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(245,251,246,.96)) !important;
}

.hvhb-room-spec-grid div > i {
  width: 34px !important;
  height: 34px !important;
  margin-bottom: 9px !important;
  border-radius: 999px !important;
  background: #e7f7eb !important;
}

.hvhb-room-spec-grid strong {
  font-size: 16px !important;
  line-height: 1.28 !important;
}

.hvhb-room-amenities-list {
  gap: 10px !important;
}

.hvhb-room-amenities-list span {
  min-height: 46px !important;
  padding: 10px 12px !important;
  border-radius: 14px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}

.hvhb-room-amenities-list i {
  width: 28px !important;
  min-width: 28px !important;
  height: 28px !important;
  border-radius: 999px !important;
}

/* Sticky đặt lịch trên mobile/tablet, hiển thị rõ trên cùng trang chi tiết */
@media (max-width: 1180px) {
  .hvhb-room-sticky-booking,
  .hvhb-single-room-page .hvhb-room-sticky-booking {
    position: fixed !important;
    left: 12px !important;
    right: 12px !important;
    bottom: calc(74px + env(safe-area-inset-bottom)) !important;
    z-index: 99990 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    min-height: 62px !important;
    padding: 9px 9px 9px 14px !important;
    border: 1px solid rgba(22, 128, 58, .18) !important;
    border-radius: 18px !important;
    background: rgba(255, 255, 255, .97) !important;
    box-shadow: 0 18px 46px rgba(9, 32, 19, .22) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
  }

  .hvhb-room-sticky-booking__price strong {
    color: #0b2012 !important;
    font-size: 17px !important;
  }

  .hvhb-room-sticky-booking__btn,
  .hvhb-single-room-page .hvhb-room-sticky-booking__btn {
    min-height: 43px !important;
    padding: 0 17px !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, #16803a, #24a857) !important;
    border: 0 !important;
    color: #fff !important;
    font-size: 13px !important;
    box-shadow: 0 9px 20px rgba(22, 128, 58, .27) !important;
  }

  .hvhb-single-room-page {
    padding-bottom: 158px !important;
  }
}

@media (max-width: 575px) {
  .hvhb-booking-card,
  .hvhb-single-room-page .hvhb-booking-card {
    border-radius: 17px !important;
  }

  .hvhb-booking-card__head {
    padding: 18px 16px 13px !important;
  }

  .hvhb-booking-card__head strong {
    font-size: 25px !important;
  }

  .hvhb-booking-card__badge {
    display: none !important;
  }

  .hvhb-booking-form {
    padding: 13px 14px 15px !important;
  }

  .hvhb-booking-form__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .hvhb-booking-form label {
    padding: 9px 10px !important;
    border-radius: 12px !important;
  }

  .hvhb-booking-form input,
  .hvhb-booking-form select,
  .hvhb-booking-form textarea {
    font-size: 13.5px !important;
  }

  .hvhb-booking-form__submit {
    min-height: 45px !important;
    font-size: 13px !important;
  }

  .hvhb-room-sticky-booking,
  .hvhb-single-room-page .hvhb-room-sticky-booking {
    left: 9px !important;
    right: 9px !important;
    bottom: calc(70px + env(safe-area-inset-bottom)) !important;
    min-height: 58px !important;
    padding: 8px 8px 8px 11px !important;
    border-radius: 16px !important;
  }

  .hvhb-room-sticky-booking__price span,
  .hvhb-room-sticky-booking__price small {
    font-size: 10px !important;
  }

  .hvhb-room-sticky-booking__price strong {
    font-size: 15px !important;
  }

  .hvhb-room-sticky-booking__btn,
  .hvhb-single-room-page .hvhb-room-sticky-booking__btn {
    min-height: 39px !important;
    padding: 0 13px !important;
    font-size: 12px !important;
  }
}

/* v1.0.12 sticky JS variables override */
.hvhb-single-room-sidebar--sticky .hvhb-booking-card.is-hvhb-js-fixed {
  position: fixed !important;
  top: var(--hvhb-js-top, 86px) !important;
  left: var(--hvhb-js-left, auto) !important;
  right: auto !important;
  width: var(--hvhb-js-width, auto) !important;
  max-height: var(--hvhb-js-max-height, calc(100vh - 104px)) !important;
}

.hvhb-single-room-sidebar--sticky .hvhb-booking-card.is-hvhb-js-bottom {
  position: absolute !important;
  top: var(--hvhb-js-top, auto) !important;
  left: auto !important;
  right: 0 !important;
  width: var(--hvhb-js-width, auto) !important;
  max-height: var(--hvhb-js-max-height, calc(100vh - 104px)) !important;
}

/* v1.0.13: Search form nhẹ nhàng hơn, bỏ khối đen nặng */
.hvhb-search-hero,
.hvhb-room-archive-page .hvhb-search-hero,
.hvhb-room-grid-wrap .hvhb-search-hero {
  margin: 0 0 22px !important;
  padding: 20px !important;
  background: linear-gradient(135deg, #ffffff 0%, #f3faf5 100%) !important;
  color: var(--hvhb-ink) !important;
  border: 1px solid rgba(22, 128, 58, .12) !important;
  border-radius: 16px !important;
  box-shadow: 0 10px 28px rgba(12, 24, 15, .06) !important;
  overflow: hidden !important;
}

.hvhb-search-hero::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 auto 0 0 !important;
  width: 5px !important;
  background: linear-gradient(180deg, #16803a, #54b96d) !important;
  pointer-events: none !important;
}

.hvhb-search-hero__content {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 16px !important;
  margin: 0 0 14px !important;
  padding-left: 2px !important;
}

.hvhb-search-hero__title,
.hvhb-room-archive-page .hvhb-search-hero__title,
.hvhb-room-grid-wrap .hvhb-search-hero__title {
  max-width: 680px !important;
  margin: 0 !important;
  color: var(--hvhb-ink) !important;
  font-size: clamp(20px, 2.1vw, 28px) !important;
  font-weight: 700 !important;
  line-height: 1.22 !important;
  letter-spacing: -.015em !important;
}

.hvhb-search-hero__subtitle,
.hvhb-room-archive-page .hvhb-search-hero__subtitle,
.hvhb-room-grid-wrap .hvhb-search-hero__subtitle {
  max-width: 420px !important;
  margin: 0 !important;
  color: var(--hvhb-muted) !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}

.hvhb-search-form,
.hvhb-room-archive-page .hvhb-search-form,
.hvhb-room-grid-wrap .hvhb-search-form {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(128px, 1fr)) minmax(132px, .72fr) !important;
  gap: 10px !important;
  align-items: stretch !important;
  padding: 0 !important;
  margin: 0 !important;
}

.hvhb-search-form__field,
.hvhb-room-archive-page .hvhb-search-form__field,
.hvhb-room-grid-wrap .hvhb-search-form__field {
  min-height: 54px !important;
  padding: 8px 11px 7px !important;
  background: rgba(255, 255, 255, .96) !important;
  border: 1px solid rgba(16, 33, 23, .12) !important;
  border-radius: 11px !important;
  box-shadow: 0 4px 14px rgba(12, 24, 15, .035) !important;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease !important;
}

.hvhb-search-form__field:hover,
.hvhb-room-archive-page .hvhb-search-form__field:hover,
.hvhb-room-grid-wrap .hvhb-search-form__field:hover,
.hvhb-search-form__field:focus-within,
.hvhb-room-archive-page .hvhb-search-form__field:focus-within,
.hvhb-room-grid-wrap .hvhb-search-form__field:focus-within {
  background: #fff !important;
  border-color: rgba(22, 128, 58, .38) !important;
  box-shadow: 0 0 0 3px rgba(22, 128, 58, .08) !important;
}

.hvhb-search-form__field label,
.hvhb-room-archive-page .hvhb-search-form__field label,
.hvhb-room-grid-wrap .hvhb-search-form__field label {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 0 5px !important;
  color: #466052 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.hvhb-search-form__field label i,
.hvhb-room-archive-page .hvhb-search-form__field label i,
.hvhb-room-grid-wrap .hvhb-search-form__field label i {
  color: var(--hvhb-gold) !important;
  font-size: 12px !important;
}

.hvhb-search-form input,
.hvhb-search-form select,
.hvhb-room-archive-page .hvhb-search-form input,
.hvhb-room-archive-page .hvhb-search-form select,
.hvhb-room-grid-wrap .hvhb-search-form input,
.hvhb-room-grid-wrap .hvhb-search-form select {
  min-height: 25px !important;
  height: 25px !important;
  padding: 0 !important;
  color: var(--hvhb-ink) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 25px !important;
}

.hvhb-search-form input::placeholder,
.hvhb-room-archive-page .hvhb-search-form input::placeholder,
.hvhb-room-grid-wrap .hvhb-search-form input::placeholder {
  color: rgba(16, 33, 23, .42) !important;
}

.hvhb-search-form__submit,
.hvhb-room-archive-page .hvhb-search-form__submit,
.hvhb-room-grid-wrap .hvhb-search-form__submit {
  display: flex !important;
  align-items: stretch !important;
  min-width: 0 !important;
}

.hvhb-search-form__submit .hvhb-btn,
.hvhb-search-hero .hvhb-search-form__submit .hvhb-btn,
.hvhb-room-archive-page .hvhb-search-form__submit .hvhb-btn,
.hvhb-room-grid-wrap .hvhb-search-form__submit .hvhb-btn {
  width: 100% !important;
  min-height: 54px !important;
  height: auto !important;
  padding: 0 16px !important;
  border: 0 !important;
  border-radius: 11px !important;
  background: #16803a !important;
  color: #fff !important;
  box-shadow: 0 9px 20px rgba(22, 128, 58, .18) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}

.hvhb-search-form__submit .hvhb-btn:hover,
.hvhb-search-hero .hvhb-search-form__submit .hvhb-btn:hover {
  background: #0f6c2f !important;
  box-shadow: 0 11px 24px rgba(22, 128, 58, .24) !important;
  transform: translateY(-1px) !important;
}

.hvhb-trust-row,
.hvhb-room-archive-page .hvhb-trust-row,
.hvhb-room-grid-wrap .hvhb-trust-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px 14px !important;
  margin: 13px 0 0 !important;
  padding: 0 !important;
  color: #52685b !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
}

.hvhb-trust-row span,
.hvhb-room-archive-page .hvhb-trust-row span,
.hvhb-room-grid-wrap .hvhb-trust-row span {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

.hvhb-trust-row i,
.hvhb-room-archive-page .hvhb-trust-row i,
.hvhb-room-grid-wrap .hvhb-trust-row i {
  color: var(--hvhb-gold) !important;
  font-size: 12px !important;
}

@media (max-width: 1180px) {
  .hvhb-search-form,
  .hvhb-room-archive-page .hvhb-search-form,
  .hvhb-room-grid-wrap .hvhb-search-form {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .hvhb-search-form__submit,
  .hvhb-room-archive-page .hvhb-search-form__submit,
  .hvhb-room-grid-wrap .hvhb-search-form__submit {
    grid-column: auto !important;
  }
}

@media (max-width: 820px) {
  .hvhb-search-hero,
  .hvhb-room-archive-page .hvhb-search-hero,
  .hvhb-room-grid-wrap .hvhb-search-hero {
    padding: 16px !important;
    border-radius: 14px !important;
    margin-bottom: 18px !important;
  }

  .hvhb-search-hero__content {
    display: block !important;
    margin-bottom: 12px !important;
  }

  .hvhb-search-hero__title,
  .hvhb-room-archive-page .hvhb-search-hero__title,
  .hvhb-room-grid-wrap .hvhb-search-hero__title {
    font-size: clamp(19px, 6vw, 24px) !important;
    line-height: 1.25 !important;
  }

  .hvhb-search-hero__subtitle,
  .hvhb-room-archive-page .hvhb-search-hero__subtitle,
  .hvhb-room-grid-wrap .hvhb-search-hero__subtitle {
    margin-top: 6px !important;
    font-size: 12.5px !important;
  }

  .hvhb-search-form,
  .hvhb-room-archive-page .hvhb-search-form,
  .hvhb-room-grid-wrap .hvhb-search-form {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .hvhb-search-form__submit,
  .hvhb-room-archive-page .hvhb-search-form__submit,
  .hvhb-room-grid-wrap .hvhb-search-form__submit {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 520px) {
  .hvhb-search-hero,
  .hvhb-room-archive-page .hvhb-search-hero,
  .hvhb-room-grid-wrap .hvhb-search-hero {
    padding: 13px !important;
    border-radius: 12px !important;
  }

  .hvhb-search-form,
  .hvhb-room-archive-page .hvhb-search-form,
  .hvhb-room-grid-wrap .hvhb-search-form {
    grid-template-columns: 1fr !important;
  }

  .hvhb-search-form__field,
  .hvhb-room-archive-page .hvhb-search-form__field,
  .hvhb-room-grid-wrap .hvhb-search-form__field,
  .hvhb-search-form__submit .hvhb-btn,
  .hvhb-search-hero .hvhb-search-form__submit .hvhb-btn {
    min-height: 50px !important;
    border-radius: 10px !important;
  }

  .hvhb-trust-row,
  .hvhb-room-archive-page .hvhb-trust-row,
  .hvhb-room-grid-wrap .hvhb-trust-row {
    gap: 7px 10px !important;
    font-size: 11.5px !important;
  }
}


/* v1.0.14 - Remove promo field layout + hard button isolation against theme CSS */
.hvhb-search-hero .hvhb-search-form,
.hvhb-room-archive-page .hvhb-search-form,
.hvhb-room-grid-wrap .hvhb-search-form,
body .hvhb-search-hero form.hvhb-search-form {
  grid-template-columns: repeat(4, minmax(120px, 1fr)) minmax(128px, .68fr) !important;
  align-items: stretch !important;
}

.hvhb-search-hero .hvhb-search-form__field,
.hvhb-room-archive-page .hvhb-search-form__field,
.hvhb-room-grid-wrap .hvhb-search-form__field {
  min-height: 52px !important;
  padding-top: 8px !important;
  padding-bottom: 7px !important;
}

.hvhb-search-hero .hvhb-search-form__field label,
.hvhb-room-archive-page .hvhb-search-form__field label,
.hvhb-room-grid-wrap .hvhb-search-form__field label {
  font-size: 11px !important;
  margin-bottom: 4px !important;
}

body .hvhb-search-hero .hvhb-search-form input,
body .hvhb-search-hero .hvhb-search-form select,
body .hvhb-room-archive-page .hvhb-search-form input,
body .hvhb-room-archive-page .hvhb-search-form select,
body .hvhb-room-grid-wrap .hvhb-search-form input,
body .hvhb-room-grid-wrap .hvhb-search-form select {
  font-size: 13px !important;
  min-height: 24px !important;
  height: 24px !important;
  line-height: 24px !important;
}

/* Button hard reset: keep theme font, but prevent Flatsome/theme button styles overriding layout, color and spacing. */
body .hvhb-btn,
body a.hvhb-btn,
body button.hvhb-btn,
body input.hvhb-btn,
body .hvhb-single-room-page .hvhb-btn,
body .hvhb-room-archive-page .hvhb-btn,
body .hvhb-room-grid-wrap .hvhb-btn,
body .hvhb-search-hero .hvhb-btn,
body .hvhb-booking-card .hvhb-btn,
body .hvhb-room-detail .hvhb-btn,
body .hvhb-room-card .hvhb-btn,
body .hvhb-footer-cta .hvhb-footer-cta__btn,
body .hvhb-room-sticky-booking__btn {
  all: unset !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
  min-width: 0 !important;
  min-height: 40px !important;
  height: auto !important;
  max-height: none !important;
  padding: 0 15px !important;
  margin: 0 !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  background-image: none !important;
  box-shadow: none !important;
  color: inherit !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-style: normal !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  line-height: 1.1 !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: none !important;
  text-shadow: none !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  opacity: 1 !important;
  visibility: visible !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease !important;
}

body .hvhb-btn::before,
body .hvhb-btn::after,
body .hvhb-footer-cta__btn::before,
body .hvhb-footer-cta__btn::after,
body .hvhb-room-sticky-booking__btn::before,
body .hvhb-room-sticky-booking__btn::after {
  content: none !important;
  display: none !important;
}

body .hvhb-btn i,
body .hvhb-footer-cta__btn i,
body .hvhb-room-sticky-booking__btn i {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  color: currentColor !important;
  font-size: 1em !important;
  line-height: 1 !important;
}

body .hvhb-btn-primary,
body a.hvhb-btn-primary,
body button.hvhb-btn-primary,
body .hvhb-search-hero .hvhb-btn-primary,
body .hvhb-booking-card .hvhb-btn-primary,
body .hvhb-room-card .hvhb-btn-primary {
  background: #16803a !important;
  border-color: #16803a !important;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(22, 128, 58, .18) !important;
}

body .hvhb-btn-primary:hover,
body .hvhb-btn-primary:focus,
body a.hvhb-btn-primary:hover,
body button.hvhb-btn-primary:hover,
body .hvhb-search-hero .hvhb-btn-primary:hover,
body .hvhb-booking-card .hvhb-btn-primary:hover,
body .hvhb-room-card .hvhb-btn-primary:hover {
  background: #0f6c2f !important;
  border-color: #0f6c2f !important;
  color: #fff !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 10px 22px rgba(22, 128, 58, .24) !important;
}

body .hvhb-btn-outline,
body a.hvhb-btn-outline,
body button.hvhb-btn-outline,
body .hvhb-room-card .hvhb-btn-outline,
body .hvhb-single-room-page .hvhb-btn-outline {
  background: #fff !important;
  border-color: rgba(15, 33, 24, .14) !important;
  color: #102117 !important;
  box-shadow: none !important;
}

body .hvhb-btn-outline:hover,
body .hvhb-btn-outline:focus,
body a.hvhb-btn-outline:hover,
body button.hvhb-btn-outline:hover,
body .hvhb-room-card .hvhb-btn-outline:hover,
body .hvhb-single-room-page .hvhb-btn-outline:hover {
  background: #eaf5ed !important;
  border-color: rgba(22, 128, 58, .28) !important;
  color: #0f6c2f !important;
  transform: translateY(-1px) !important;
}

body .hvhb-search-form__submit .hvhb-btn,
body .hvhb-search-hero .hvhb-search-form__submit button.hvhb-btn,
body .hvhb-search-hero form.hvhb-search-form .hvhb-search-form__submit .hvhb-btn {
  width: 100% !important;
  min-height: 52px !important;
  padding: 0 15px !important;
  border-radius: 11px !important;
  background: #16803a !important;
  border-color: #16803a !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  box-shadow: 0 9px 20px rgba(22, 128, 58, .18) !important;
}

body .hvhb-room-card__actions .hvhb-btn {
  min-height: 38px !important;
  padding: 0 13px !important;
  border-radius: 8px !important;
  font-size: 12px !important;
}

body .hvhb-booking-form__submit,
body .hvhb-booking-card button.hvhb-booking-form__submit {
  width: 100% !important;
  min-height: 46px !important;
  border-radius: 9px !important;
  background: #102117 !important;
  border-color: #102117 !important;
  color: #fff !important;
  font-size: 13px !important;
  box-shadow: 0 10px 22px rgba(16, 33, 23, .16) !important;
}

body .hvhb-booking-form__submit:hover,
body .hvhb-booking-card button.hvhb-booking-form__submit:hover {
  background: #16803a !important;
  border-color: #16803a !important;
  color: #fff !important;
}

body .hvhb-edit-room-link,
body a.hvhb-edit-room-link,
body .hvhb-room-card__edit,
body a.hvhb-room-card__edit {
  all: unset !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  min-height: 32px !important;
  padding: 0 12px !important;
  border-radius: 999px !important;
  background: #fff !important;
  border: 1px solid rgba(16, 33, 23, .12) !important;
  color: #102117 !important;
  box-shadow: 0 7px 18px rgba(12, 24, 15, .08) !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  cursor: pointer !important;
}

body .hvhb-edit-room-link:hover,
body a.hvhb-edit-room-link:hover,
body .hvhb-room-card__edit:hover,
body a.hvhb-room-card__edit:hover {
  background: #16803a !important;
  border-color: #16803a !important;
  color: #fff !important;
}

@media (max-width: 1180px) {
  .hvhb-search-hero .hvhb-search-form,
  .hvhb-room-archive-page .hvhb-search-form,
  .hvhb-room-grid-wrap .hvhb-search-form,
  body .hvhb-search-hero form.hvhb-search-form {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body .hvhb-search-form__submit {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 520px) {
  .hvhb-search-hero .hvhb-search-form,
  .hvhb-room-archive-page .hvhb-search-form,
  .hvhb-room-grid-wrap .hvhb-search-form,
  body .hvhb-search-hero form.hvhb-search-form {
    grid-template-columns: 1fr !important;
  }

  body .hvhb-btn,
  body a.hvhb-btn,
  body button.hvhb-btn,
  body .hvhb-search-form__submit .hvhb-btn {
    min-height: 42px !important;
    font-size: 12px !important;
  }
}


/* Review video inside room gallery slider */
.hvhb-room-slider__slide--video,
.hvhb-room-slider__video-frame {
  background: #06150b !important;
}

.hvhb-room-slider__video-frame {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
}

.hvhb-room-slider__iframe,
.hvhb-room-slider__video {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
  outline: 0 !important;
  background: #06150b !important;
}

.hvhb-room-slider__video {
  object-fit: contain !important;
}

.hvhb-room-slider__thumb--video {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #06150b !important;
  color: #fff !important;
}

.hvhb-room-slider__thumb--video img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  opacity: .55 !important;
}

.hvhb-room-slider__thumb--video span {
  position: relative !important;
  z-index: 2 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  background: var(--hvhb-gold) !important;
  color: #fff !important;
  font-size: 11px !important;
  box-shadow: 0 8px 18px rgba(0,0,0,.24) !important;
}

.hvhb-room-slider__thumb--video:not(:has(img))::before {
  content: "Video" !important;
  position: absolute !important;
  left: 7px !important;
  bottom: 5px !important;
  color: rgba(255,255,255,.8) !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
}
