/* Hotels composition — approved desktop reference: 1536 × 1024. */
body.page .mn-hotels-hero {
  min-height: 227px;
  --min-height: 227px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--mn-navy);
  color: var(--mn-white);
  padding: 0 !important;
}
body.page .mn-hotels-hero > .e-con-inner { position: relative; min-height: 227px; padding: 0 !important; }
body.page .mn-hotels-hero .elementor-widget-heading,
body.page .mn-hotels-hero .elementor-widget-text-editor,
body.page .mn-hotels-hero .elementor-widget-mn-hotel-finder { position: absolute; left: 316px; width: auto; }
body.page .mn-hotels-hero .elementor-widget-heading { top: 42px; }
body.page .mn-hotels-hero .elementor-widget-text-editor { top: 92px; }
body.page .mn-hotels-hero .elementor-widget-mn-hotel-finder { position: absolute !important; z-index: 2 !important; top: 133px !important; left: 112px !important; width: 900px !important; }
body.page .mn-hotels-hero h1 { margin: 0; color: var(--mn-gold); font-family: var(--mn-font-serif); font-size: 34px; line-height: 1.15; font-weight: 500; }
body.page .mn-hotels-hero .elementor-widget-text-editor,
body.page .mn-hotels-hero .elementor-widget-text-editor p { margin: 0; color: var(--mn-white); font-size: 15px; line-height: 1.45; }
body.page .mn-hotels-hero .mn-hotel-finder {
  display: grid;
  grid-template-columns: 260px 250px 235px minmax(130px, 1fr);
  align-items: center;
  width: 900px;
  min-height: 74px;
  margin: 0;
  padding: 8px;
  border-radius: 13px;
  background: var(--mn-white);
  box-shadow: 0 8px 24px rgba(2, 18, 35, .18);
}
body.page .mn-hotels-hero .mn-hotel-finder label { min-width: 0; padding: 4px 20px; border-right: 1px solid var(--mn-border); }
body.page .mn-hotels-hero .mn-hotel-finder label span { display: block; color: var(--mn-muted); font-size: 11px; line-height: 1.2; }
body.page .mn-hotels-hero .mn-hotel-finder select { width: 100%; min-height: 32px; padding: 0 20px 0 0; border: 0; background-color: var(--mn-white); color: var(--mn-text); font-size: 13px; font-weight: 600; }
body.page .mn-hotels-hero .mn-hotel-finder__near-me { display: none !important; }
body.page .mn-hotels-hero .mn-hotel-finder .mn-button {
  justify-self: stretch;
  min-height: 40px;
  margin: 0 8px;
  padding-inline: 16px;
  border-color: var(--mn-gold) !important;
  border-radius: 6px;
  background-color: var(--mn-gold) !important;
  color: var(--mn-white) !important;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

body.page .mn-hotels-intents { min-height: 63px; padding: 0 !important; --min-height: 63px; --padding-top: 14px; --padding-right: 0; --padding-bottom: 5px; --padding-left: 0; }
body.page .mn-hotels-intents > .e-con-inner { box-sizing: border-box; min-height: 63px; padding: 14px 0 6px !important; }
body.page .mn-hotels-intents .elementor-widget-mn-hotel-quick-intents,
body.page .mn-hotels-intents .elementor-widget-container,
body.page .mn-hotels-intents .mn-widget-component { width: 100%; max-width: none; }
body.page .mn-hotels-intent-toolbar { display: flex; align-items: center; justify-content: space-between; width: 100%; }
body.page .mn-hotels-intents .mn-hotel-quick-intents {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  width: 920px;
  height: 43px;
  overflow: hidden;
  border: 1px solid var(--mn-border);
  border-radius: 999px;
  background: var(--mn-white);
}
body.page .mn-hotels-intents .mn-hotel-quick-intents__item { display: flex; align-items: center; justify-content: center; gap: 9px; min-width: 0; padding: 0 8px; color: var(--mn-text); font-size: 12px; text-align: center; text-decoration: none; white-space: nowrap; }
body.page .mn-hotels-intents .mn-hotel-quick-intents__item span { color: var(--mn-gold-dark); font-size: 20px; line-height: 1; }
body.page .mn-hotels-intents .mn-hotel-quick-intents__item.is-selected { color: var(--mn-gold-dark); font-weight: 700; }
body.page .mn-hotels-sort { position: relative; top: 2px; display: flex; align-items: center; gap: 10px; margin-right: 20px; color: var(--mn-text); font-size: 12px; white-space: nowrap; }
body.page .mn-hotels-sort select { width: 140px; height: 38px; padding: 0 36px 0 13px; border: 1px solid var(--mn-border); border-radius: 7px; background-color: var(--mn-white); color: var(--mn-text); font-size: 12px; }

body.page .mn-hotels-results-layout { padding: 0 !important; --padding-top: 8px; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; }
body.page .mn-hotels-results-layout > .e-con-inner { display: grid; grid-template-columns: 204px 860px 303px; gap: 20px; align-items: start; justify-content: start; padding: 7px 0 0 !important; }
body.page .elementor-element-mn-hotels-filter-column,
body.page .elementor-element-mn-hotels-results-column,
body.page .elementor-element-mn-hotels-rail,
body.page .elementor-element-mn-hotels-filter-column > .e-con-inner,
body.page .elementor-element-mn-hotels-results-column > .e-con-inner,
body.page .elementor-element-mn-hotels-rail > .e-con-inner { padding: 0 !important; }
body.page .mn-hotels-filter .mn-widget-heading { display: none; }
body.page .mn-hotels-filter-toggle { display: none; }
body.page aside.mn-hotels-filter { padding: 0 !important; }
body.page .mn-hotels-filter .mn-filter__controls {
  box-sizing: border-box;
  display: block;
  height: 577px;
  padding: 16px !important;
  overflow: hidden;
  border: 1px solid var(--mn-border);
  border-radius: 8px;
  background: var(--mn-white);
}
body.page .mn-hotels-filter h2 { margin: 0 0 22px; color: var(--mn-text); font-family: var(--mn-font-sans); font-size: 16px; line-height: 1.2; font-weight: 700; }
body.page .mn-hotels-filter h3,
body.page .mn-hotels-filter legend { margin: 0 0 14px; padding: 0; color: var(--mn-text); font-size: 12px; line-height: 1.2; font-weight: 700; }
body.page .mn-hotels-price-filter { margin: 0 0 19px; padding: 0 0 19px; border-bottom: 1px solid var(--mn-border); }
body.page .mn-hotels-price-filter__track { position: relative; height: 16px; margin: 2px 3px 5px; }
body.page .mn-hotels-price-filter__track::before { position: absolute; top: 7px; right: 0; left: 0; height: 2px; background: var(--mn-gold); content: ''; }
body.page .mn-hotels-price-filter__track::after,
body.page .mn-hotels-price-filter__track span::after { position: absolute; top: 2px; width: 12px; height: 12px; border: 1px solid var(--mn-gold); border-radius: 50%; background: var(--mn-white); content: ''; }
body.page .mn-hotels-price-filter__track::after { left: 0; }
body.page .mn-hotels-price-filter__track span::after { right: 0; }
body.page .mn-hotels-price-filter p { display: flex; justify-content: space-between; margin: 0; color: var(--mn-muted); font-size: 10px; }
body.page .mn-hotels-filter fieldset { display: grid; gap: 9px; margin: 0 0 16px; padding: 0 0 18px; border: 0; border-bottom: 1px solid var(--mn-border); }
body.page .mn-hotels-filter fieldset:last-of-type { border-bottom: 0; }
body.page .mn-hotels-filter fieldset label { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--mn-text); font-size: 11px; line-height: 1.2; }
body.page .mn-hotels-filter input[type='radio'] { width: 13px; height: 13px; margin: 0; border-radius: 2px; accent-color: var(--mn-gold); }
body.page .mn-hotels-filter .mn-button { display: none; }

body.page .mn-hotels-results { min-height: 0; }
body.page .mn-hotels-results .mn-widget-heading { margin: 7px 0 12px; color: var(--mn-text); font-family: var(--mn-font-sans); font-size: 18px; line-height: 23px; font-weight: 700; }
body.page .mn-hotels-results .mn-hotel-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; column-gap: 16px !important; row-gap: 15px !important; }
body.page .mn-hotels-results .mn-near-me-card { min-width: 0; }
body.page .mn-hotels-results .mn-hotel-card { position: relative; display: grid; grid-template-rows: 136px 130px; height: 266px; overflow: hidden; border: 1px solid var(--mn-border); border-radius: 7px; background: var(--mn-white); box-shadow: 0 2px 7px rgba(4, 27, 50, .04); }
body.page .mn-hotels-results .mn-hotel-card::before { position: absolute; z-index: 2; top: 10px; right: 10px; color: var(--mn-white); font-size: 25px; line-height: 1; text-shadow: 0 1px 4px rgba(0, 0, 0, .35); content: '♡'; }
body.page .mn-hotels-results .mn-card__image { width: 100%; height: 136px; object-fit: cover; }
body.page .mn-hotels-results .mn-card__body { position: relative; box-sizing: border-box; height: 130px; padding: 11px 12px; }
body.page .mn-hotels-results .mn-card__destination,
body.page .mn-hotels-results .mn-card__body > p:not(.mn-card__base-price),
body.page .mn-hotels-results .mn-card__body > .mn-meta { display: none; }
body.page .mn-hotels-results .mn-card h3 { overflow: hidden; margin: 0 0 11px; color: var(--mn-text); font-size: 16px; line-height: 21px; font-weight: 700; white-space: nowrap; text-overflow: ellipsis; }
body.page .mn-hotels-results .mn-card h3 a { color: inherit; text-decoration: none; }
body.page .mn-hotels-results .mn-amenity-badges { display: flex; gap: 12px; overflow: hidden; margin: 0; padding: 0; list-style: none; white-space: nowrap; }
body.page .mn-hotels-results .mn-amenity-badge { position: relative; padding: 0 0 0 14px; border: 0; background: transparent; color: var(--mn-muted); font-size: 10px; }
body.page .mn-hotels-results .mn-amenity-badge::before { position: absolute; left: 0; content: '♧'; }
body.page .mn-hotels-results .mn-card__base-price { position: absolute; bottom: 10px; left: 12px; margin: 0; color: var(--mn-muted); font-size: 9px; line-height: 1.1; }
body.page .mn-hotels-results .mn-card__base-price span { display: block; margin-bottom: 3px; }
body.page .mn-hotels-results .mn-card__base-price strong { color: var(--mn-text); font-size: 15px; line-height: 1; }
body.page .mn-hotels-results .mn-card__base-price small { color: var(--mn-text); font-size: 9px; }
body.page .mn-hotels-results .mn-card .mn-button { position: absolute; right: 12px; bottom: 10px; min-height: 27px; padding: 5px 10px; border-color: var(--mn-gold); border-radius: 4px; color: var(--mn-gold-dark); font-size: 8px; line-height: 1.2; white-space: nowrap; }

body.page .mn-hotels-rail > .e-con-inner { display: flex; flex-direction: column; gap: 10px; --gap: 10px; }
body.page .mn-hotels-rail .mn-map-panel,
body.page .mn-hotels-rail .mn-support-panel,
body.page .mn-hotels-rail-offer { box-sizing: border-box; overflow: hidden; border: 1px solid var(--mn-border); border-radius: 8px; background: var(--mn-white); }
body.page .mn-hotels-rail .elementor-element-mn-hotels-map > .elementor-widget-container { box-sizing: border-box; height: 247px; padding: 14px; border: 1px solid var(--mn-border); border-radius: 8px; background: var(--mn-white); }
body.page .mn-hotels-rail .elementor-element-mn-hotels-map .mn-widget-heading { margin: 0 0 10px; color: var(--mn-text); font-family: var(--mn-font-sans); font-size: 16px; line-height: 20px; font-weight: 700; }
body.page .mn-hotels-rail .mn-map-panel { height: 189px; padding: 0; border: 0; border-radius: 0; }
body.page .mn-hotels-rail .mn-map-panel h2,
body.page .mn-hotels-rail .mn-support-panel h2,
body.page .mn-hotels-rail-offer h2 { margin: 0 0 10px; color: var(--mn-text); font-family: var(--mn-font-sans); font-size: 16px; line-height: 20px; font-weight: 700; }
body.page .mn-hotels-rail .mn-map-panel__canvas {
  min-height: 189px;
  border-radius: 7px;
  background:
    linear-gradient(32deg, transparent 0 44%, rgba(255, 255, 255, .92) 45% 48%, transparent 49% 100%),
    linear-gradient(104deg, transparent 0 31%, rgba(255, 255, 255, .9) 32% 35%, transparent 36% 100%),
    linear-gradient(166deg, transparent 0 63%, rgba(222, 234, 239, .95) 64% 69%, transparent 70% 100%),
    repeating-linear-gradient(90deg, rgba(210, 220, 216, .32) 0 1px, transparent 1px 44px),
    repeating-linear-gradient(0deg, rgba(210, 220, 216, .28) 0 1px, transparent 1px 38px),
    #f2f2ed;
}
body.page .mn-hotels-rail .mn-map-panel__markers { position: absolute; inset: 0; display: block; }
body.page .mn-hotels-rail .mn-map-panel__marker { position: absolute; }
body.page .mn-hotels-rail .mn-map-panel__marker:nth-child(1) { top: 18%; left: 36%; }
body.page .mn-hotels-rail .mn-map-panel__marker:nth-child(2) { top: 40%; left: 53%; }
body.page .mn-hotels-rail .mn-map-panel__marker:nth-child(3) { top: 66%; left: 44%; }
body.page .mn-hotels-rail .mn-map-panel__marker:nth-child(4) { top: 78%; left: 29%; }
body.page .mn-hotels-rail .mn-map-panel__marker:nth-child(5) { top: 55%; left: 71%; }
body.page .mn-hotels-rail .mn-map-panel__marker > span { background: var(--mn-gold-dark); }
body.page .mn-hotels-rail .mn-map-panel__marker:nth-child(2) > span { background: #4f86bd; }
body.page .mn-hotels-rail .mn-map-panel__list { display: none; }
body.page .mn-hotels-rail .mn-map-panel__empty { min-height: 160px; }
body.page .mn-hotels-rail .mn-support-panel { height: 138px; padding: 13px 16px; color: var(--mn-text); }
body.page .mn-hotels-rail .elementor-element-mn-hotels-support .mn-widget-heading { display: none; }
body.page .mn-hotels-rail .mn-support-panel h2 { margin-bottom: 5px; font-size: 14px; }
body.page .mn-hotels-rail .mn-support-panel > p { margin: 0 0 5px; color: var(--mn-muted); font-size: 10px; line-height: 1.25; }
body.page .mn-hotels-rail .mn-support-panel .mn-support-panel__contact { display: flex; gap: 7px; color: var(--mn-text); }
body.page .mn-hotels-rail .mn-support-panel a { color: inherit; text-decoration: none; }
body.page .mn-hotels-rail .mn-support-panel .mn-button { min-height: 25px; margin-top: 1px; padding: 5px 22px; background: var(--mn-gold-dark); color: var(--mn-white); font-size: 8px; text-transform: uppercase; }
body.page .mn-hotels-rail-offer { height: 162px; padding: 0 !important; --min-height: 162px; --padding-top: 12px; --padding-right: 14px; --padding-bottom: 12px; --padding-left: 14px; }
body.page .mn-hotels-rail-offer > .e-con-inner { display: block; padding: 12px 14px !important; }
body.page .mn-hotels-rail-offer .elementor-widget-heading { display: inline-block; width: 100%; }
body.page .mn-hotels-rail-offer .elementor-widget-heading::after { float: right; color: var(--mn-gold-dark); font-size: 9px; content: 'Xem tất cả'; }
body.page .mn-hotels-rail-offer .mn-offer-grid { display: block; }
body.page .mn-hotels-rail-offer .mn-offer-card { display: grid; grid-template-columns: 68px minmax(0, 1fr); height: 93px; overflow: hidden; border: 1px solid var(--mn-border); border-radius: 5px; box-shadow: none; }
body.page .mn-hotels-rail-offer .mn-card__image { width: 68px; height: 93px; object-fit: cover; }
body.page .mn-hotels-rail-offer .mn-card__body { min-width: 0; padding: 8px 10px; }
body.page .mn-hotels-rail-offer .mn-eyebrow,
body.page .mn-hotels-rail-offer .mn-offer-card__date { display: none; }
body.page .mn-hotels-rail-offer .mn-offer-card h3 { overflow: hidden; margin: 0 0 5px; font-size: 12px; line-height: 15px; white-space: nowrap; text-overflow: ellipsis; }
body.page .mn-hotels-rail-offer .mn-offer-card p { overflow: hidden; max-height: 27px; margin: 0 0 4px; color: var(--mn-muted); font-size: 9px; line-height: 13px; }
body.page .mn-hotels-rail-offer .mn-offer-card .mn-button { min-height: 0; padding: 0; border: 0; background: transparent; color: var(--mn-gold-dark); font-size: 8px; text-transform: uppercase; }

body.page .mn-hotels-trust { padding: 0 !important; --padding-top: 0; --padding-right: 0; --padding-bottom: 8px; --padding-left: 0; }
body.page .mn-hotels-trust > .e-con-inner { padding: 0 0 7px !important; }
body.page .mn-hotels-trust .mn-offers-page { padding-top: 0; }
body.page .mn-hotels-trust .mn-trust-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); min-height: 66px; margin: 0; padding: 9px 18px; border: 1px solid var(--mn-border); border-radius: 24px; background: var(--mn-white); }
body.page .mn-hotels-trust .mn-trust-strip > div { display: flex; align-items: center; gap: 12px; padding: 0 14px; }
body.page .mn-hotels-trust .mn-trust-strip > div > span { color: var(--mn-gold-dark); font-size: 28px; line-height: 1; }
body.page .mn-hotels-trust .mn-trust-strip p { display: grid; gap: 3px; margin: 0; color: var(--mn-text); font-size: 11px; line-height: 1.15; }
body.page .mn-hotels-trust .mn-trust-strip strong { font-size: 12px; }
body.page .mn-hotels-trust .mn-trust-strip small { color: var(--mn-muted); font-size: 10px; }

@media (max-width: 1499px) {
  body.page .mn-hotels-results-layout > .e-con-inner { grid-template-columns: 190px minmax(0, 1fr) 260px; gap: 14px; }
  body.page .mn-hotels-intents .mn-hotel-quick-intents { width: min(76vw, 920px); overflow-x: auto; }
}
@media (max-width: 1024px) {
  body.page .mn-hotels-hero .elementor-widget-heading,
  body.page .mn-hotels-hero .elementor-widget-text-editor { left: 5%; }
  body.page .mn-hotels-hero .elementor-widget-mn-hotel-finder { left: 5%; width: 90%; }
  body.page .mn-hotels-hero .mn-hotel-finder { grid-template-columns: repeat(3, minmax(0, 1fr)) 150px; width: 100%; }
  body.page .mn-hotels-results-layout > .e-con-inner { grid-template-columns: 220px minmax(0, 1fr); }
  body.page .mn-hotels-rail { grid-column: 1 / -1; }
  body.page .mn-hotels-rail > .e-con-inner { grid-template-columns: 1fr 1fr 1fr; }
}
@media (max-width: 767px) {
  body.page .mn-hotels-hero { min-height: 420px; --min-height: 420px; }
  body.page .mn-hotels-hero > .e-con-inner { min-height: 420px; }
  body.page .mn-hotels-hero .elementor-widget-heading,
  body.page .mn-hotels-hero .elementor-widget-text-editor,
  body.page .mn-hotels-hero .elementor-widget-mn-hotel-finder { position: static; width: 100%; }
  body.page .mn-hotels-hero .mn-hotel-finder,
  body.page .mn-hotels-results-layout > .e-con-inner { grid-template-columns: 1fr; }
  body.page .mn-hotels-hero .mn-hotel-finder { width: 100%; }
  body.page .mn-hotels-intents { min-height: auto; }
  body.page .mn-hotels-intent-toolbar { display: block; }
  body.page .mn-hotels-intents .mn-hotel-quick-intents { display: flex; width: 100%; overflow-x: auto; }
  body.page .mn-hotels-intents .mn-hotel-quick-intents__item { flex: 0 0 auto; min-width: 112px; }
  body.page .mn-hotels-sort { justify-content: flex-end; margin-top: 8px; }
  body.page .mn-hotels-filter-toggle { display: inline-flex; margin-bottom: 10px; }
  body.page .mn-hotels-filter .mn-button { display: inline-flex; }
  body.page .mn-hotels-results .mn-hotel-grid { grid-template-columns: 1fr !important; }
  body.page .mn-hotels-rail > .e-con-inner { grid-template-columns: 1fr; }
  body.page .mn-hotels-trust .mn-trust-strip { grid-template-columns: 1fr 1fr; }
}
