  *,
  *::before,
  *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
  }

  :root {
      --night: #0b1423;
      --deep: #112240;
      --ocean: #0e3a5e;
      --gold: #e8a042;
      --amber: #f5c878;
      --sand: #fdf6ec;
      --white: #ffffff;
      --muted: #8899aa;
      --radius: 12px;
  }

  html {
      scroll-behavior: smooth;
  }

  body {
      font-family: 'Paytone One', sans-serif;
      background: var(--sand);
      color: var(--night);
      overflow-x: hidden;
  }

  /* ── NAV ── */
  nav {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 100;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 18px 60px;
      background: transparent;
      /* background: rgba(255, 255, 255, 0.3);       */
      transition: background .4s, box-shadow .4s;
  }

  nav.scrolled {
      background: rgba(11, 20, 35, .92);
      backdrop-filter: blur(12px);
      box-shadow: 0 2px 20px rgba(0, 0, 0, .3);
  }

  /* .nav-logo {
      font-family: 'Playfair Display', serif;
      font-size: 1.5rem;
      font-weight: 900;
      color: var(--white);
      letter-spacing: .04em;
  }

  .nav-logo span {
      color: var(--gold);
  } */


  .nav-logo {
      font-family: 'Playone Tone', serif;
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: 1.5rem;
      font-weight: 900;
      color: var(--white);
      letter-spacing: .04em;
      /* Khoảng cách giữa logo ảnh và chữ */
  }

  .nav-logo .logo-img {
      height: 40px;
      /* Định dạng chiều cao cố định cho logo */
      width: auto;
      /* Tự động co giãn chiều rộng theo tỷ lệ ảnh */
      object-fit: contain;
  }

  .nav-links {
      display: flex;
      gap: 32px;
      list-style: none;
  }

  .nav-links a {
      color: rgba(255, 255, 255, .85);
      text-decoration: none;
      font-size: .875rem;
      font-weight: 500;
      letter-spacing: .04em;
      transition: color .2s;
  }

  .nav-links a:hover {
      color: var(--gold);
  }

  .nav-cta {
      background: var(--gold);
      color: var(--night) !important;
      padding: 9px 22px;
      border-radius: 100px;
      font-weight: 600 !important;
      transition: background .2s, transform .2s !important;
  }

  .nav-cta:hover {
      background: var(--amber) !important;
      transform: translateY(-1px);
  }

  /* ── HERO ── */
  #hero {
      position: relative;
      height: 100vh;
      min-height: 640px;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      overflow: hidden;
  }

  .hero-bg {
      position: absolute;
      inset: 0;
      background: linear-gradient(135deg, #0b1423 0%, #0e3a5e 50%, #1a5276 100%);
  }

  /* Animated stars */
  .stars {
      position: absolute;
      inset: 0;
      /* background-image:
          radial-gradient(1px 1px at 20% 30%, rgba(255, 255, 255, .8) 0%, transparent 100%),
          radial-gradient(1px 1px at 60% 15%, rgba(255, 255, 255, .6) 0%, transparent 100%),
          radial-gradient(1.5px 1.5px at 80% 45%, rgba(255, 255, 255, .7) 0%, transparent 100%),
          radial-gradient(1px 1px at 40% 70%, rgba(255, 255, 255, .5) 0%, transparent 100%),
          radial-gradient(1px 1px at 10% 80%, rgba(255, 255, 255, .6) 0%, transparent 100%),
          radial-gradient(2px 2px at 70% 80%, rgba(255, 255, 255, .4) 0%, transparent 100%),
          radial-gradient(1px 1px at 90% 10%, rgba(255, 255, 255, .7) 0%, transparent 100%),
          radial-gradient(1.5px 1.5px at 35% 50%, rgba(255, 255, 255, .5) 0%, transparent 100%),
          radial-gradient(1px 1px at 55% 90%, rgba(255, 255, 255, .6) 0%, transparent 100%),
          radial-gradient(1px 1px at 75% 60%, rgba(255, 255, 255, .4) 0%, transparent 100%); */
          background-image: url("https://scontent.fsgn5-9.fna.fbcdn.net/v/t39.30808-6/692346133_1563947865734277_6867636782088633349_n.jpg?stp=dst-jpg_tt6&cstp=mx2048x780&ctp=s2048x780&_nc_cat=102&ccb=1-7&_nc_sid=cc71e4&_nc_eui2=AeF6ACEbS6e_PMvSRZ1g9vYskV1G34_wh2CRXUbfj_CHYKC1sAZJ8ezEl1PGPHLniSa-iS-ZZ3TS6iHBHM1proMb&_nc_ohc=olnu7yy-up0Q7kNvwGvD3P0&_nc_oc=Adr0SU-7cpN47v-gWEpqkdZ4fwbyZ2kWnX92Axu51WVjEtFZN0xzDjH97p0HBUfXx_Q&_nc_zt=23&_nc_ht=scontent.fsgn5-9.fna&_nc_gid=Il-1yqIEzV99nNYokBz8_A&_nc_ss=7b2a8&oh=00_Af9kXR8B41_3grcwgnS3XRcQUpJF5NbLRPKVEBv7TDop5Q&oe=6A3569C0");
      animation: twinkle 4s ease-in-out infinite alternate;
  }

  @keyframes twinkle {
      from {
          opacity: .7;
      }

      to {
          opacity: 1;
      }
  }

  /* Wave bottom of hero */
  .hero-wave {
      position: absolute;
      bottom: -2px;
      left: 0;
      right: 0;
      line-height: 0;
  }

  .hero-wave svg {
      display: block;
      width: 100%;
  }

  .hero-content {
      position: relative;
      z-index: 2;
      padding: 0 20px;
  }

  .hero-eyebrow {
      font-size: .75rem;
      font-weight: 600;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 18px;
      opacity: 0;
      animation: fadeUp .8s .2s forwards;
  }

  .hero-title {
      font-family: 'Playfair Display', serif;
      font-size: clamp(2.8rem, 7vw, 5.5rem);
      font-weight: 900;
      color: var(--white);
      line-height: 1.08;
      margin-bottom: 24px;
      opacity: 0;
      animation: fadeUp .8s .4s forwards;
  }

  .hero-title em {
      color: var(--gold);
      font-style: normal;
      display: block;
  }

  .hero-sub {
      max-width: 520px;
      margin: 0 auto 40px;
      font-size: 1.05rem;
      color: rgba(255, 255, 255, .72);
      line-height: 1.7;
      opacity: 0;
      animation: fadeUp .8s .6s forwards;
  }

  .hero-actions {
      display: flex;
      gap: 16px;
      justify-content: center;
      flex-wrap: wrap;
      opacity: 0;
      animation: fadeUp .8s .8s forwards;
  }

  .btn-primary {
      background: var(--gold);
      color: var(--night);
      padding: 14px 34px;
      border-radius: 100px;
      font-weight: 700;
      font-size: .95rem;
      text-decoration: none;
      letter-spacing: .03em;
      transition: background .2s, transform .2s, box-shadow .2s;
      box-shadow: 0 4px 20px rgba(232, 160, 66, .4);
  }

  .btn-primary:hover {
      background: var(--amber);
      transform: translateY(-2px);
      box-shadow: 0 8px 28px rgba(232, 160, 66, .5);
  }

  .btn-ghost {
      border: 1.5px solid rgba(255, 255, 255, .4);
      color: var(--white);
      padding: 14px 34px;
      border-radius: 100px;
      font-weight: 500;
      font-size: .95rem;
      text-decoration: none;
      transition: border-color .2s, background .2s, transform .2s;
  }

  .btn-ghost:hover {
      border-color: var(--gold);
      background: rgba(232, 160, 66, .1);
      transform: translateY(-2px);
  }

  /* scroll indicator */
  .scroll-hint {
      position: absolute;
      bottom: 90px;
      left: 50%;
      transform: translateX(-50%);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      opacity: 0;
      animation: fadeUp .8s 1.2s forwards;
  }

  .scroll-hint span {
      font-size: .7rem;
      letter-spacing: .12em;
      color: rgba(255, 255, 255, .45);
      text-transform: uppercase;
  }

  .scroll-dot {
      width: 22px;
      height: 36px;
      border: 1.5px solid rgba(255, 255, 255, .3);
      border-radius: 100px;
      display: flex;
      justify-content: center;
      padding-top: 6px;
  }

  .scroll-dot::after {
      content: '';
      width: 4px;
      height: 8px;
      background: var(--gold);
      border-radius: 100px;
      animation: scrollBounce 1.6s ease-in-out infinite;
  }

  @keyframes scrollBounce {

      0%,
      100% {
          transform: translateY(0)
      }

      50% {
          transform: translateY(10px)
      }
  }

  @keyframes fadeUp {
      from {
          opacity: 0;
          transform: translateY(24px);
      }

      to {
          opacity: 1;
          transform: translateY(0);
      }
  }

  /* ── STATS BAND ── */
  .stats-band {
      background: var(--night);
      padding: 52px 60px;
      display: flex;
      justify-content: center;
      gap: 80px;
      flex-wrap: wrap;
  }

  .stat {
      text-align: center;
  }

  .stat-num {
      font-family: 'Playfair Display', serif;
      font-size: 2.6rem;
      font-weight: 900;
      color: var(--gold);
      display: block;
  }

  .stat-label {
      font-size: .78rem;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: var(--muted);
      margin-top: 4px;
  }

  /* ── SECTION COMMONS ── */
  section {
      padding: 96px 60px;
  }

  .section-tag {
      font-size: .7rem;
      letter-spacing: .18em;
      text-transform: uppercase;
      color: var(--gold);
      font-weight: 600;
      margin-bottom: 12px;
  }

  .section-title {
      font-family: 'Playfair Display', serif;
      font-size: clamp(2rem, 4vw, 3rem);
      font-weight: 900;
      line-height: 1.15;
      color: var(--night);
      margin-bottom: 16px;
  }

  .section-sub {
      color: var(--muted);
      max-width: 520px;
      line-height: 1.75;
      font-size: .95rem;
  }

  /* ── TOURS ── */
  #tours {
      background: var(--sand);
  }

  .tours-header {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      margin-bottom: 52px;
      flex-wrap: wrap;
      gap: 20px;
  }

  .tours-header .see-all {
      font-size: .85rem;
      font-weight: 600;
      color: var(--gold);
      text-decoration: none;
      border-bottom: 1px solid var(--gold);
      padding-bottom: 2px;
      transition: opacity .2s;
  }

  .tours-header .see-all:hover {
      opacity: .7;
  }

  .tour-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
      gap: 28px;
  }

  .tour-card {
      background: var(--white);
      border-radius: var(--radius);
      overflow: hidden;
      box-shadow: 0 2px 16px rgba(11, 20, 35, .07);
      transition: transform .3s, box-shadow .3s;
      cursor: pointer;
  }

  .tour-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 12px 40px rgba(11, 20, 35, .14);
  }

  .card-img {
      width: 100%;
      height: 210px;
      object-fit: cover;
      display: block;
      transition: transform .5s;
  }

  .tour-card:hover .card-img {
      transform: scale(1.04);
  }

  .card-img-wrap {
      overflow: hidden;
      position: relative;
  }

  .card-badge {
      position: absolute;
      top: 14px;
      left: 14px;
      background: var(--gold);
      color: var(--night);
      font-size: .65rem;
      font-weight: 700;
      letter-spacing: .1em;
      text-transform: uppercase;
      padding: 4px 10px;
      border-radius: 100px;
  }

  .card-body {
      padding: 22px 24px 26px;
  }

  .card-dest {
      font-size: .72rem;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: var(--muted);
      margin-bottom: 7px;
  }

  .card-title {
      font-family: 'Playfair Display', serif;
      font-size: 1.15rem;
      font-weight: 700;
      color: var(--night);
      margin-bottom: 12px;
      line-height: 1.3;
  }

  .card-meta {
      display: flex;
      gap: 16px;
      margin-bottom: 18px;
  }

  .card-meta-item {
      display: flex;
      align-items: center;
      gap: 5px;
      font-size: .8rem;
      color: var(--muted);
  }

  .card-meta-item svg {
      flex-shrink: 0;
  }

  .card-footer {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding-top: 16px;
      border-top: 1px solid #f0ede8;
  }

  .card-price {
      font-family: 'Playfair Display', serif;
      font-size: 1.3rem;
      font-weight: 700;
      color: var(--night);
  }

  .card-price sub {
      font-size: .65rem;
      font-family: 'Inter', sans-serif;
      font-weight: 400;
      color: var(--muted);
  }

  .card-btn {
      background: var(--night);
      color: var(--white);
      border: none;
      border-radius: 100px;
      padding: 8px 18px;
      font-size: .78rem;
      font-weight: 600;
      cursor: pointer;
      transition: background .2s;
      letter-spacing: .03em;
  }

  .card-btn:hover {
      background: var(--ocean);
  }

  /* ── WHY US ── */
  #why {
      background: var(--night);
  }

  #why .section-title {
      color: var(--white);
  }

  #why .section-sub {
      color: var(--muted);
  }

  .why-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
      gap: 32px;
      margin-top: 56px;
  }

  .why-card {
      background: rgba(255, 255, 255, .04);
      border: 1px solid rgba(255, 255, 255, .07);
      border-radius: var(--radius);
      padding: 36px 30px;
      transition: background .3s, transform .3s;
  }

  .why-card:hover {
      background: rgba(232, 160, 66, .07);
      transform: translateY(-4px);
  }

  .why-icon {
      width: 52px;
      height: 52px;
      background: rgba(232, 160, 66, .12);
      border-radius: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 22px;
      font-size: 1.5rem;
  }

  .why-card h3 {
      font-family: 'Playfair Display', serif;
      font-size: 1.1rem;
      font-weight: 700;
      color: var(--white);
      margin-bottom: 10px;
  }

  .why-card p {
      font-size: .875rem;
      color: var(--muted);
      line-height: 1.7;
  }

  /* ── DESTINATIONS ── */
  #destinations {
      background: var(--sand);
  }

  .dest-grid {
      display: grid;
      grid-template-columns: 2fr 1fr 1fr;
      grid-template-rows: 240px 240px;
      gap: 16px;
      margin-top: 52px;
  }

  .dest-card {
      position: relative;
      border-radius: var(--radius);
      overflow: hidden;
      cursor: pointer;
      transition: transform .3s;
  }

  .dest-card:first-child {
      grid-row: 1 / 3;
  }

  .dest-card:hover {
      transform: scale(.98);
  }

  .dest-card img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform .5s;
  }

  .dest-card:hover img {
      transform: scale(1.06);
  }

  .dest-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(11, 20, 35, .8) 0%, transparent 55%);
  }

  .dest-info {
      position: absolute;
      bottom: 20px;
      left: 20px;
      color: var(--white);
  }

  .dest-info h3 {
      font-family: 'Playfair Display', serif;
      font-size: 1.35rem;
      font-weight: 700;
  }

  .dest-info span {
      font-size: .78rem;
      color: rgba(255, 255, 255, .65);
  }

  /* ── TESTIMONIALS ── */
  #reviews {
      background: var(--white);
  }

  .reviews-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
      gap: 24px;
      margin-top: 52px;
  }

  .review-card {
      background: var(--sand);
      border-radius: var(--radius);
      padding: 28px 26px;
      position: relative;
  }

  .review-card::before {
      content: '"';
      position: absolute;
      top: 16px;
      right: 20px;
      font-family: 'Playfair Display', serif;
      font-size: 5rem;
      color: var(--gold);
      opacity: .2;
      line-height: 1;
  }

  .stars-row {
      display: flex;
      gap: 3px;
      margin-bottom: 14px;
  }

  .star {
      color: var(--gold);
      font-size: .9rem;
  }

  .review-text {
      font-size: .9rem;
      line-height: 1.75;
      color: #444;
      margin-bottom: 20px;
  }

  .reviewer {
      display: flex;
      align-items: center;
      gap: 12px;
  }

  .reviewer-avatar {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      background: var(--ocean);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Playfair Display', serif;
      font-size: 1rem;
      color: var(--white);
      font-weight: 700;
      flex-shrink: 0;
  }

  .reviewer-name {
      font-weight: 600;
      font-size: .88rem;
      color: var(--night);
  }

  .reviewer-loc {
      font-size: .75rem;
      color: var(--muted);
  }

  /* ── BOOKING CTA ── */
  #cta {
      background: linear-gradient(135deg, var(--ocean) 0%, var(--night) 100%);
      text-align: center;
      padding: 100px 60px;
      position: relative;
      overflow: hidden;
  }

  #cta::before {
      content: '';
      position: absolute;
      inset: 0;
      background-image:
          radial-gradient(1px 1px at 25% 40%, rgba(255, 255, 255, .4) 0%, transparent 100%),
          radial-gradient(1px 1px at 65% 20%, rgba(255, 255, 255, .3) 0%, transparent 100%),
          radial-gradient(2px 2px at 80% 70%, rgba(255, 255, 255, .35) 0%, transparent 100%),
          radial-gradient(1px 1px at 50% 85%, rgba(255, 255, 255, .3) 0%, transparent 100%);
  }

  #cta>* {
      position: relative;
  }

  #cta .section-title {
      color: var(--white);
      margin: 0 auto 16px;
  }

  #cta p {
      color: rgba(255, 255, 255, .65);
      max-width: 480px;
      margin: 0 auto 40px;
      line-height: 1.7;
  }

  /* Search bar */
  .search-bar {
      display: flex;
      max-width: 600px;
      margin: 0 auto;
      background: var(--white);
      border-radius: 100px;
      overflow: hidden;
      box-shadow: 0 8px 40px rgba(0, 0, 0, .25);
  }

  .search-bar input {
      flex: 1;
      border: none;
      outline: none;
      padding: 16px 24px;
      font-family: 'Inter', sans-serif;
      font-size: .9rem;
      color: var(--night);
  }

  .search-bar button {
      background: var(--gold);
      border: none;
      color: var(--night);
      padding: 16px 30px;
      font-weight: 700;
      font-size: .9rem;
      cursor: pointer;
      transition: background .2s;
      white-space: nowrap;
  }

  .search-bar button:hover {
      background: var(--amber);
  }

  /* ── FOOTER ── */
  footer {
      background: var(--night);
      padding: 70px 60px 40px;
      color: var(--muted);
  }

  .footer-grid {
      display: grid;
      grid-template-columns: 1.6fr 1fr 1fr 1fr;
      gap: 48px;
      margin-bottom: 56px;
  }

  .footer-brand .nav-logo {
      display: inline-block;
      margin-bottom: 16px;
  }

  .footer-brand p {
      font-size: .875rem;
      line-height: 1.75;
      max-width: 260px;
  }

  .footer-socials {
      display: flex;
      gap: 12px;
      margin-top: 20px;
  }

  .footer-social {
      width: 36px;
      height: 36px;
      border: 1px solid rgba(255, 255, 255, .12);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--muted);
      text-decoration: none;
      font-size: .8rem;
      font-weight: 700;
      transition: border-color .2s, color .2s;
  }

  .footer-social:hover {
      border-color: var(--gold);
      color: var(--gold);
  }

  .footer-col h4 {
      color: var(--white);
      font-size: .85rem;
      font-weight: 600;
      letter-spacing: .06em;
      margin-bottom: 18px;
  }

  .footer-col ul {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 10px;
  }

  .footer-col ul a {
      color: var(--muted);
      text-decoration: none;
      font-size: .85rem;
      transition: color .2s;
  }

  .footer-col ul a:hover {
      color: var(--gold);
  }

  .footer-bottom {
      border-top: 1px solid rgba(255, 255, 255, .07);
      padding-top: 28px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-wrap: wrap;
      gap: 12px;
  }

  .footer-bottom p {
      font-size: .78rem;
  }

  /* ── MOBILE ── */
  @media (max-width: 768px) {
      nav {
          padding: 16px 24px;
      }

      .nav-links {
          display: none;
      }

      section {
          padding: 72px 24px;
      }

      .stats-band {
          padding: 40px 24px;
          gap: 40px;
      }

      .dest-grid {
          grid-template-columns: 1fr 1fr;
          grid-template-rows: auto;
      }

      .dest-card:first-child {
          grid-column: 1 / -1;
          grid-row: auto;
          height: 220px;
      }

      .dest-card {
          height: 180px;
      }

      .footer-grid {
          grid-template-columns: 1fr 1fr;
      }

      .tours-header {
          flex-direction: column;
          align-items: flex-start;
      }

      footer {
          padding: 56px 24px 32px;
      }

      .search-bar {
          flex-direction: column;
          border-radius: 16px;
      }

      .search-bar button {
          border-radius: 0;
      }
  }