/* ── HOTEL DETAIL RESPONSIVE ─────────────────── */
@media (max-width: 1024px) {
  .hotel-detail-body,
  .pkg-detail-body { grid-template-columns: 1fr !important; }
  .hotel-detail-body > div:last-child,
  .pkg-detail-body > div:last-child { position: static !important; }
}
@media (max-width: 768px) {
  .hotel-detail-body,
  .pkg-detail-body { padding: 32px 20px !important; }
}

/* ── SEARCH FORM ─────────────────────────────── */
.search-form { display: flex; border: 1px solid var(--sand-dark); }
.search-field { flex: 1; padding: 10px 14px; border: none; outline: none; font-family: var(--font-body); font-size: 13px; background: var(--cream); }
.search-submit { background: var(--terra); color: #fff; border: none; padding: 10px 16px; cursor: pointer; font-size: 14px; transition: background .2s; }
.search-submit:hover { background: var(--terra-dark); }

/* ── PAGINATION ──────────────────────────────── */
.page-numbers { display: inline-flex; gap: 4px; }
.page-numbers li a,
.page-numbers li span {
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px;
  border: 1px solid var(--sand-dark);
  font-size: 13px; color: var(--charcoal-mid);
  text-decoration: none; transition: all .2s;
}
.page-numbers li .current,
.page-numbers li a:hover { background: var(--terra); border-color: var(--terra); color: #fff; }
.page-numbers li .prev, .page-numbers li .next { width: auto; padding: 0 16px; }

/* ── NO RESULTS ──────────────────────────────── */
.no-results { grid-column: 1/-1; text-align: center; padding: 48px; color: var(--text-muted); font-size: 15px; }

/* ── ADMIN BAR TOPBAR FIX ────────────────────── */
body.admin-bar .site-topbar { top: 32px; position: relative; }

/* ── HOTEL STARS ─────────────────────────────── */
.hotel-stars { color: #FFB800; letter-spacing: 2px; }

/* ── PKG RIBBON ──────────────────────────────── */
.pkg-ribbon {
  position: absolute; top: 16px; right: 16px;
  background: var(--charcoal); color: #fff;
  font-size: 9px; letter-spacing: .15em; text-transform: uppercase; padding: 5px 10px;
}

/* ── CONTACT PANEL TABS ──────────────────────── */
.contact-panel { animation: fadeIn .3s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

/* ── PRINT ───────────────────────────────────── */
@media print {
  .site-topbar, .site-header, .wa-float, nav, footer { display: none !important; }
  .page-banner { background: #ccc !important; }
}

/* ── RESPONSIVE GRIDS FOR DETAIL PAGES ───────── */
@media (max-width: 900px) {
  .hotel-detail-body > div:first-child > div[style*="grid-template-columns:repeat(4"] { grid-template-columns: repeat(2,1fr) !important; }
  .hotel-detail-body > div:first-child > div[style*="grid-template-columns:repeat(3"] { grid-template-columns: repeat(2,1fr) !important; }
  .hotel-detail-body > div:first-child > div[style*="grid-template-columns:1fr 1fr 1fr"] { grid-template-columns: 1fr 1fr !important; grid-template-rows: auto !important; }
  .hotel-detail-body > div:first-child > div[style*="grid-template-columns:260px"] { grid-template-columns: 1fr !important; }
  div[style*="grid-template-columns:repeat(5,1fr)"] { grid-template-columns: repeat(2,1fr) !important; }
  div[style*="grid-template-columns:repeat(4,1fr)"] { grid-template-columns: repeat(2,1fr) !important; }
  .footer-grid { grid-template-columns: 1fr 1fr !important; gap: 28px !important; }
}
@media (max-width: 480px) {
  div[style*="grid-template-columns:repeat(2,1fr)"] { grid-template-columns: 1fr !important; }
  div[style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; }
}
/* ==========================================================================
   VRN HOSPITALITY — MOBILE RESPONSIVE FIXES
   ========================================================================== */

/* ─── SAFETY NET: prevent any element from forcing horizontal scroll ───── */
html, body { max-width: 100%; overflow-x: hidden; }

@media (max-width: 900px) {

  /* ============================================================
     1. GENERIC INLINE GRID COLLAPSE
     Catches every raw style="grid-template-columns:..." used
     across home / about / mission / contact / partner / hotel /
     package templates and stacks it to a single column.
     ============================================================ */
  [style*="grid-template-columns:repeat(5,1fr)"] { grid-template-columns: repeat(2,1fr) !important; }
  [style*="grid-template-columns:repeat(4,1fr)"] { grid-template-columns: repeat(2,1fr) !important; }
  [style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns: 1fr !important; }
  [style*="grid-template-columns:1fr 1fr"]       { grid-template-columns: 1fr !important; }
  [style*="grid-template-columns:1fr 1.4fr"]     { grid-template-columns: 1fr !important; }
  [style*="grid-template-columns:1fr 320px"]     { grid-template-columns: 1fr !important; }

  /* Exceptions — keep these tighter grids as-is on mobile (short content) */
  [style*="grid-template-columns:1fr 1fr"][style*="gap:10px"]      { grid-template-columns: repeat(2,1fr) !important; } /* contact page destination chips */
  [style*="grid-template-columns:repeat(3,1fr)"][style*="gap:1px"] { grid-template-columns: repeat(3,1fr) !important; } /* partner hero mini-stats */
  [style*="grid-template-columns:repeat(3,1fr)"][style*="gap:12px"]{ grid-template-columns: repeat(2,1fr) !important; } /* hotel amenities */

  /* Hotel photo gallery (1fr 1fr 1fr grid with 220px rows + spanning tile) */
  [style*="grid-template-rows:220px 220px"] {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto !important;
  }
  [style*="grid-template-rows:220px 220px"] > div {
    height: 200px !important;
    grid-row: auto !important;
  }

  /* ============================================================
     2. HOTEL / PACKAGE DETAIL PAGE — main content + sidebar
     ============================================================ */
  .hotel-detail-body,
  .pkg-detail-body {
    grid-template-columns: 1fr !important;
    padding: 40px 20px !important;
    gap: 32px !important;
  }
  /* both detail-page sidebars use inline position:sticky;top:140px */
  [style*="position:sticky;top:140px"] {
    position: static !important;
    top: auto !important;
    margin-top: 8px !important;
  }
  /* hero gallery banner: height:88vh;min-height:540px */
  [style*="height:88vh"] {
    height: auto !important;
    min-height: 420px !important;
    padding-bottom: 24px !important;
  }
  [style*="padding:48px;display:flex;justify-content:space-between;align-items:flex-end"] {
    padding: 20px !important;
  }
  /* sticky info bar under hero (name / phone / website button) */
  [style*="top:68px;z-index:90"] {
    height: auto !important;
    min-height: 56px !important;
    flex-wrap: wrap !important;
    padding: 10px 20px !important;
    gap: 8px !important;
    row-gap: 10px !important;
  }

  /* ============================================================
     3. HOMEPAGE
     ============================================================ */
  .home-hero {
    height: auto !important;
    min-height: 0 !important;
    padding-top: 88px !important;
    padding-bottom: 40px !important;
  }
  .home-hero [style*="padding:0 48px 80px"] {
    padding: 0 20px 40px !important;
    max-width: 100% !important;
  }
  /* destination photo tiles (repeat(4,1fr) -> repeat(2,1fr) already handled above) */
  [style*="height:380px"] { height: 220px !important; }

  /* enquiry band (home) */
  .enquiry-band-left { padding: 48px 20px !important; }
  [style*="padding:72px 56px"] { padding: 40px 20px !important; }

  /* ============================================================
     4. ABOUT US / MISSION & VISION — split sections, badges
     ============================================================ */
  [style*="min-height:520px"] { min-height: 240px !important; }
  [style*="right:-24px"]  { right: 12px !important; }
  [style*="left:-24px"]   { left: 12px !important; }
  [style*="padding:72px 64px"] { padding: 40px 20px !important; }
  [style*="padding:80px 64px"] { padding: 40px 20px !important; }
  [style*="padding:48px 36px"] { padding: 28px 20px !important; }
  [style*="padding:88px 48px"] { padding: 48px 20px !important; }
  [style*="padding:80px 48px"] { padding: 48px 20px !important; }
  [style*="padding:96px 48px"] { padding: 48px 20px !important; }
  [style*="padding:72px 48px"] { padding: 40px 20px !important; }
  [style*="padding:56px 48px"] { padding: 32px 20px !important; }
  [style*="padding:56px 48px 88px"] { padding: 32px 20px 40px !important; }

  /* ============================================================
     5. CONTACT PAGE
     ============================================================ */
  [style*="min-height:70vh"] { min-height: auto !important; }

  /* ============================================================
     6. PARTNER WITH US PAGE
     ============================================================ */
  [style*="min-height:88vh"] { min-height: auto !important; }
  /* hide the connecting line between the 4-step process circles */
  [style*="left:10%;right:10%"] { display: none !important; }

  /* ============================================================
     7. GENERAL SECTION PADDING SAFETY (any section still wide)
     ============================================================ */
  section[style*="padding:64px 48px"],
  div[style*="padding:64px 48px"] { padding: 40px 20px !important; }
}

@media (max-width: 480px) {
  [style*="grid-template-columns:repeat(5,1fr)"] { grid-template-columns: repeat(2,1fr) !important; }
  [style*="grid-template-columns:repeat(4,1fr)"] { grid-template-columns: 1fr !important; }
  .hotel-detail-body, .pkg-detail-body { padding: 32px 16px !important; }
}
/* ── FOOTER — COMPACT ON MOBILE ─────────────────────────── */
@media (max-width: 768px) {
  .site-footer { padding: 40px 20px 20px !important; }

  /* Brand block full width, Company + Quick Links side by side, Contact full width below */
  .footer-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 24px 20px !important;
    margin-bottom: 28px !important;
  }
  .footer-brand { grid-column: 1 / -1; }
  .footer-contact { grid-column: 1 / -1; }

  .footer-brand p { max-width: 100% !important; margin-top: 8px !important; }
  .footer-social { margin-top: 14px !important; }
  .footer-social a { width: 32px !important; height: 32px !important; font-size: 12px !important; }

  .footer-col h5 { margin-bottom: 10px !important; }
  .footer-col ul li { margin-bottom: 6px !important; }
  .footer-col ul li a { font-size: 12.5px !important; }

  /* Contact block — tighten address/phone/email spacing */
  .footer-contact-block { margin-bottom: 10px !important; gap: 8px !important; }
  .footer-contact-icon { width: 15px !important; height: 15px !important; }
  .footer-contact-text strong { font-size: 12px !important; margin-bottom: 2px !important; }
  .footer-contact-text p { font-size: 12px !important; line-height: 1.5 !important; }
  .footer-address-gap { margin-top: 6px !important; }

  .footer-bottom {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 6px !important;
    padding-top: 16px !important;
    font-size: 10.5px !important;
  }
}

@media (max-width: 420px) {
  .footer-grid { grid-template-columns: 1fr !important; }
  .footer-brand, .footer-contact, .footer-col { grid-column: 1 / -1 !important; }
}