/* =========================================================
   Nvoyages – Mobile / Tablet responsive layer
   (loaded AFTER main.css and nv-premium.css)
   ========================================================= */

img, video, iframe, svg { max-width: 100%; }
html, body { max-width: 100%; overflow-x: hidden; }
.nv-listing-card-title a, .nv-listing-card-content, .nv-footer-widget p { word-wrap: break-word; overflow-wrap: anywhere; }

/* ---------------- tablet (≤ 991px) ---------------- */
@media (max-width: 991px) {
  .pt-100, .pt-120 { padding-top: 70px !important; }
  .pb-100, .pb-120 { padding-bottom: 70px !important; }
  .mb-85 { margin-bottom: 55px !important; }
  .nv-hero-title { font-size: 48px; }
}

/* ---------------- phones (≤ 767px) ---------------- */
@media (max-width: 767px) {
  /* section spacing */
  .pt-100, .pt-120, .pt-90 { padding-top: 48px !important; }
  .pb-100, .pb-120, .pb-90 { padding-bottom: 48px !important; }
  .pt-70 { padding-top: 40px !important; }
  .pb-85, .pb-70 { padding-bottom: 40px !important; }
  .mb-85 { margin-bottom: 40px !important; }
  .mb-40 { margin-bottom: 24px !important; }

  /* header */
  .nv-header__area .logo img { max-width: 120px; height: auto; }
  .nv-header__area { padding-top: 10px; padding-bottom: 10px; }

  /* hero */
  .nv-hero-content { padding-top: 130px !important; padding-bottom: 70px !important; }
  .nv-hero-title { font-size: 34px !important; border-bottom-width: 3px; }
  .nv-hero-subtitle, .nv-hero-para { font-size: 14px; line-height: 22px; }
  .nv-hero-arrow-box button { width: 36px !important; height: 36px !important; font-size: 14px; }

  /* section headings */
  .nv-location-section-title h1,
  .nv-about-section-title h1,
  .nv-about-section-title h2 { font-size: 26px !important; line-height: 1.25 !important; }
  .nv-location-3-btn { margin-bottom: 20px !important; }

  /* buttons */
  .nv-btn { padding: 12px 22px !important; font-size: 14px !important; }

  /* property / package cards */
  .nv-listing-card-item { margin-bottom: 20px; }
  .nv-listing-card-title { font-size: 18px; line-height: 1.3; }
  .nv-listing-card-thumb img { width: 100%; height: auto; }
  .nv-listing-card-duration-tour { flex-wrap: wrap; gap: 4px 14px; }

  /* footer */
  .nv-footer-space { padding-top: 50px !important; }
  .nv-footer-widget { margin-bottom: 26px !important; }
  .nv-footer-widget-title { margin-bottom: 14px !important; }
  .nv-footer-bottom, .nv-copyright { text-align: center; }

  /* modals / booking forms */
  .modal-dialog { margin: 12px; }
  input, select, textarea, .form-control { max-width: 100%; font-size: 16px; } /* 16px stops iOS zoom-on-focus */

  /* floating back-to-top button */
  #scroll-top, .back-to-top { width: 40px; height: 40px; right: 14px; bottom: 14px; }
}

/* ---------------- small phones (≤ 575px) ---------------- */
@media (max-width: 575px) {
  .container, .container-fluid { padding-left: 16px; padding-right: 16px; }
  .row { --bs-gutter-x: 1rem; }
  .nv-hero-title { font-size: 30px !important; }
  .nv-hero-price-wrap { flex-wrap: wrap; }
  .nv-listing-2-price { font-size: 13px; }
}

/* ---------------- very small phones (≤ 380px) ---------------- */
@media (max-width: 380px) {
  .nv-hero-title { font-size: 26px !important; }
  .nv-location-section-title h1 { font-size: 22px !important; }
  .nv-header__area .logo img { max-width: 100px; }
}
