/**
 * @file
 * Trang /travel-offers theo Figma 279:5963.
 * So do lay tu docs/figma-travel-offers-spec.md. Moi selector nam duoi
 * .vnat-app[data-page="travel-offers"] (compound: data-page nam tren chinh .vnat-app).
 */

.vnat-app[data-page="travel-offers"] {
  --vn-primary: #951c1f;
  --vn-main: #a5190e;
  --vn-ink: #0c2340;
  --vn-ink-sub: #333;
  --vn-line: #e5e7eb;
  --vn-badge-bg: #fff2f1;
  --vn-poster-line: #fda618;
  --vn-card-grad: linear-gradient(132.8deg, #a5190e 0%, #4a0803 100%);
  --vn-page-top: #f5ede6;
  --vn-radius-chip: 999px;
  --vn-radius-sm: 2px;
  --vn-radius-btn: 6px;
  --vn-radius-card: 8px;
  --vn-radius-media: 12px;
  --vn-radius-section: 16px;
  --vn-font: 'SVN-Gotham', sans-serif;

  font-family: var(--vn-font);
  color: var(--vn-ink);
}

.vnat-app[data-page="travel-offers"] *,
.vnat-app[data-page="travel-offers"] *::before,
.vnat-app[data-page="travel-offers"] *::after {
  box-sizing: border-box;
}

/* Theme dat font trang tri cho h1-h3; :where do uu tien 0 nen moi rule that deu thang */
.vnat-app[data-page="travel-offers"] :where(h1, h2, h3, p, span, b, a, button, article, header, div) {
  font-family: inherit;
}

/* main.css khong scope nen [hidden] de bi ghi de; lop 3 phai la display:none */
.vnat-app[data-page="travel-offers"] [hidden] {
  display: none !important;
}

/* Section 279:5965 — padding doc 36, nen kem nhat dan ra trang */
.vnat-app[data-page="travel-offers"] .tvo-section {
  position: relative;
  overflow: hidden;
  padding: 36px 0;
  background: linear-gradient(180deg, var(--vn-page-top) 0, #fff 880px);
}

/* Blob 279:6992 / 279:6991 — hoa sen o hai goc tren, ban phai lat ngang */
.vnat-app[data-page="travel-offers"] .tvo-section::before,
.vnat-app[data-page="travel-offers"] .tvo-section::after {
  content: '';
  position: absolute;
  top: 0;
  width: 665px;
  height: 444.295px;
  background: url(../images/booking/travel-offers-blossom.webp) no-repeat center / cover;
  mix-blend-mode: multiply;
  opacity: 0.12;
  pointer-events: none;
}

.vnat-app[data-page="travel-offers"] .tvo-section::before {
  left: 0;
}

.vnat-app[data-page="travel-offers"] .tvo-section::after {
  right: 0;
  transform: scaleX(-1);
}

/* Container 279:5983 + banner 279:5966 cung mot cot 1240, gap doc 16 */
.vnat-app[data-page="travel-offers"] .tvo-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 1240px;
  max-width: 100%;
  margin: 0 auto;
}

/* Khoi tieu de 279:6019 — 43 + 12 + 10 = 65; theme cu gan nen trang cho moi <header> */
.vnat-app[data-page="travel-offers"] .tvo-head {
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: none;
}

.vnat-app[data-page="travel-offers"] .tvo-head__title {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -1.28px;
  color: var(--vn-primary);
}

/* Figma cat leading phu de (text-box-trim); bu bang margin am de moi trinh duyet ra cung mot hop */
.vnat-app[data-page="travel-offers"] .tvo-head__sub {
  margin: -5.5px 0 -5.5px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -0.42px;
  color: var(--vn-ink-sub);
}

/* Hang chip + Sort 284:6043 — cao 40 */
.vnat-app[data-page="travel-offers"] .tvo-filters {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 40px;
}

/* Nhom 6 chip 279:7110 — be rong do noi dung quyet dinh, tong ra dung 649 */
.vnat-app[data-page="travel-offers"] .tvo-chips {
  display: flex;
  align-items: center;
  gap: 8px;
}

.vnat-app[data-page="travel-offers"] .tvo-chip {
  display: inline-flex;
  align-items: center;
  height: 36px;
  padding: 8px 16px;
  border: 1px solid var(--vn-line);
  border-radius: var(--vn-radius-chip);
  background: #fff;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: -0.42px;
  color: var(--vn-ink);
  white-space: nowrap;
  cursor: pointer;
}

.vnat-app[data-page="travel-offers"] .tvo-chip.is-on {
  border-color: var(--vn-primary);
  background: var(--vn-primary);
  color: #fff;
}

/* Nut Sort 279:7105 — 147x40, chevron can giua doc */
.vnat-app[data-page="travel-offers"] .tvo-sort {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: 147px;
  height: 40px;
  padding: 4px 8px;
  border: 1px solid var(--vn-line);
  border-radius: var(--vn-radius-btn);
  background: #fff;
  color: var(--vn-ink);
  cursor: default;
}

.vnat-app[data-page="travel-offers"] .tvo-sort__label {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: -0.42px;
  white-space: nowrap;
}

.vnat-app[data-page="travel-offers"] .tvo-sort__label b {
  font-weight: 700;
}

.vnat-app[data-page="travel-offers"] .tvo-sort__chevron {
  width: 12px;
  height: 7.1007px;
  background: url(../images/booking/icon-sort-chevron.svg) no-repeat center / 12px 7.1007px;
}

/* Luoi 279:6027 — 4 cot 301, gap 12, wrap nhieu hang */
.vnat-app[data-page="travel-offers"] .tvo-grid {
  display: grid;
  grid-template-columns: repeat(4, 301px);
  gap: 12px;
}

.vnat-app[data-page="travel-offers"] .tvo-card__link {
  display: block;
  width: 301px;
  color: inherit;
  text-decoration: none;
}

/* The 279:6853 — cao dung 439 = 325 anh + 114 than */
.vnat-app[data-page="travel-offers"] .tvo-card {
  display: flex;
  flex-direction: column;
  width: 301px;
  border-radius: var(--vn-radius-card);
}

/* Vung anh 279:6854 — anh mo 20% + gradient do + hoa van, poster o giua */
.vnat-app[data-page="travel-offers"] .tvo-card__media {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 325px;
  padding: 36px 24px;
  border-radius: var(--vn-radius-media);
  background: var(--vn-card-grad);
  overflow: hidden;
}

.vnat-app[data-page="travel-offers"] .tvo-card__blur {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.2;
}

.vnat-app[data-page="travel-offers"] .tvo-card__pattern {
  position: absolute;
  inset: 0;
  background: url(../images/booking/travel-offers-card-pattern.webp) no-repeat bottom center / cover;
  opacity: 0.35;
}

/* Poster 279:6880 — 189,75 x 253, ti le 3:4, vien vang */
.vnat-app[data-page="travel-offers"] .tvo-card__poster {
  position: relative;
  width: 189.75px;
  height: 253px;
  border: 1px solid var(--vn-poster-line);
  border-radius: var(--vn-radius-media);
  overflow: hidden;
}

.vnat-app[data-page="travel-offers"] .tvo-card__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Than 279:6860 — padding doc 12, noi dung 90, gap doc 6 */
.vnat-app[data-page="travel-offers"] .tvo-card__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  height: 114px;
  padding: 12px 0;
}

.vnat-app[data-page="travel-offers"] .tvo-card__date {
  margin: 0;
  height: 17px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.42px;
  color: var(--vn-main);
}

/* R1: 2 dong x 16 x 1,2 = 38; min-height giu the cao 439 ca khi ten chi 1 dong */
.vnat-app[data-page="travel-offers"] .tvo-card__name {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
  min-height: 38px;
  max-height: 38px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.48px;
  color: #000;
}

/* Hang badge 279:6872 — giu dung 23px ke ca khi rong, neu khong the vo khoi 439 */
.vnat-app[data-page="travel-offers"] .tvo-card__badges {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 23px;
  overflow: hidden;
}

.vnat-app[data-page="travel-offers"] .tvo-card__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px;
  border-radius: var(--vn-radius-sm);
  background: var(--vn-badge-bg);
  font-size: 10px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -0.3px;
  color: var(--vn-main);
  white-space: nowrap;
}

/* Trang thai rong thay luoi; giu chieu cao gan the de trang khong nhay */
.vnat-app[data-page="travel-offers"] .tvo-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 439px;
  border-radius: var(--vn-radius-card);
}

.vnat-app[data-page="travel-offers"] .tvo-empty__text {
  margin: 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -0.48px;
  color: var(--vn-ink-sub);
}

/* Skeleton giu dung khung 301x439 de luoi khong nhay khi doi chip */
.vnat-app[data-page="travel-offers"] .tvo-skeleton {
  background: linear-gradient(90deg, #efeae5 25%, #f7f3ef 37%, #efeae5 63%);
  background-size: 400% 100%;
  animation: tvo-shimmer 1.4s ease infinite;
}

.vnat-app[data-page="travel-offers"] .tvo-card--skeleton .tvo-card__media {
  background: none;
}

.vnat-app[data-page="travel-offers"] .tvo-sk {
  display: block;
  border-radius: var(--vn-radius-sm);
}

.vnat-app[data-page="travel-offers"] .tvo-sk--date {
  width: 96px;
  height: 17px;
}

.vnat-app[data-page="travel-offers"] .tvo-sk--name {
  width: 100%;
  height: 38px;
}

.vnat-app[data-page="travel-offers"] .tvo-sk--badges {
  width: 112px;
  height: 23px;
}

@keyframes tvo-shimmer {
  0% { background-position: 100% 50%; }
  100% { background-position: 0 50%; }
}

/* Banner AI 279:5966 — 1240x97, tai dung khoi cua /esim */
.vnat-app[data-page="travel-offers"] .tvo-banner {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 24px;
  border-radius: var(--vn-radius-section);
  background: #faf2ea;
  box-shadow: inset 0 0 0 1px #fff;
}

.vnat-app[data-page="travel-offers"] .tvo-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: var(--vn-radius-section);
  background: url(../images/booking/esim-banner-texture.webp) top left / 1512px 400px;
  mix-blend-mode: multiply;
  opacity: 0.5;
  pointer-events: none;
}

.vnat-app[data-page="travel-offers"] .tvo-banner__text {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 333px;
  flex: 0 0 auto;
}

.vnat-app[data-page="travel-offers"] .tvo-banner__title {
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.96px;
  color: var(--vn-primary);
}

.vnat-app[data-page="travel-offers"] .tvo-banner__sub {
  margin: -5px 0 -6px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -0.42px;
  color: var(--vn-ink-sub);
}

.vnat-app[data-page="travel-offers"] .tvo-banner__cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  padding: 10px 24px;
  border: 0;
  border-radius: 10px;
  background: var(--vn-primary);
  font-size: 14px;
  font-weight: 700;
  line-height: 28.8px;
  letter-spacing: -0.42px;
  color: #fff;
  cursor: pointer;
}

.vnat-app[data-page="travel-offers"] .tvo-banner__cta-icon {
  width: 16px;
  height: 16px;
  background: url(../images/booking/icon-arrow-up-right.svg) center / 9.6px 9.6px no-repeat;
}

.vnat-app[data-page="travel-offers"] .tvo-banner__deco {
  position: absolute;
  right: 0;
  top: -31px;
  width: 172px;
  height: 128px;
  pointer-events: none;
}

.vnat-app[data-page="travel-offers"] .tvo-banner__photo {
  position: absolute;
  border: 2.638px solid #fff;
  border-radius: 1.758px;
  box-shadow: 0 6.647px 7.913px 1.108px rgba(0, 0, 0, 0.15);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.vnat-app[data-page="travel-offers"] .tvo-banner__photo--a {
  left: 5px;
  top: 26px;
  width: 81.444px;
  height: 81.444px;
  transform: rotate(-6deg);
  background-image: url(../images/booking/esim-banner-photo-1.webp);
}

.vnat-app[data-page="travel-offers"] .tvo-banner__photo--b {
  left: 55.925px;
  top: 17.855px;
  width: 88.941px;
  height: 88.941px;
  transform: rotate(6deg);
  background-image: url(../images/booking/esim-banner-photo-2.webp);
}

.vnat-app[data-page="travel-offers"] .tvo-banner__tape {
  position: absolute;
  left: 70.949px;
  top: 5.838px;
  width: 69.514px;
  height: 24.161px;
  transform: rotate(8.21deg);
  background: url(../images/booking/esim-banner-tape.webp) center / contain no-repeat;
}

@media (max-width: 1279px) {
  .vnat-app[data-page="travel-offers"] .tvo-wrap {
    width: auto;
    padding: 0 16px;
  }

  .vnat-app[data-page="travel-offers"] .tvo-grid {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  }

  .vnat-app[data-page="travel-offers"] .tvo-card {
    width: auto;
  }

  .vnat-app[data-page="travel-offers"] .tvo-card__link {
    width: auto;
  }

  .vnat-app[data-page="travel-offers"] .tvo-filters {
    height: auto;
    flex-wrap: wrap;
    gap: 12px;
  }

  .vnat-app[data-page="travel-offers"] .tvo-chips {
    flex-wrap: wrap;
  }

  .vnat-app[data-page="travel-offers"] .tvo-banner {
    flex-direction: column;
    align-items: stretch;
  }

  .vnat-app[data-page="travel-offers"] .tvo-banner__text {
    width: auto;
  }

  .vnat-app[data-page="travel-offers"] .tvo-banner__deco {
    display: none;
  }
}

@media (max-width: 767px) {
  .vnat-app[data-page="travel-offers"] .tvo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 16px;
  }

  .vnat-app[data-page="travel-offers"] .tvo-card,
  .vnat-app[data-page="travel-offers"] .tvo-card__link {
    width: auto;
    min-width: 0;
    height: auto;
  }

  .vnat-app[data-page="travel-offers"] .tvo-card__media {
    height: 180px;
    padding: 18px 12px;
  }

  .vnat-app[data-page="travel-offers"] .tvo-card__poster {
    width: min(100px, 72%);
    height: auto;
    aspect-ratio: 3 / 4;
  }

  .vnat-app[data-page="travel-offers"] .tvo-card__body {
    height: auto;
    min-height: 108px;
  }

  .vnat-app[data-page="travel-offers"] .tvo-card__date {
    height: auto;
    min-height: 17px;
    font-size: 12px;
  }

  .vnat-app[data-page="travel-offers"] .tvo-card__name {
    min-height: 34px;
    max-height: 34px;
    font-size: 14px;
    letter-spacing: -0.42px;
  }

  .vnat-app[data-page="travel-offers"] .tvo-card__badges {
    flex-wrap: wrap;
    min-height: 0;
    max-height: 46px;
  }

  .vnat-app[data-page="travel-offers"] .tvo-card__badge {
    font-size: 9px;
    line-height: 13px;
  }
}
