/* ==========================================================================
   Krishna Utsab Resort — responsive overrides.
   Mobile phones, tablets, laptops, desktops. No horizontal overflow.
   ========================================================================== */

@media (max-width: 1199.98px) {
  .gallery-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 991.98px) {
  .section { padding: 54px 0; }
  .ku-navbar .navbar-collapse {
    background: #fff; border: 1px solid var(--ku-line); border-radius: var(--radius);
    margin-top: .6rem; padding: .6rem .8rem; box-shadow: var(--shadow);
  }
  .ku-navbar .nav-link { border-radius: var(--radius-sm); }
  .ku-navbar .nav-cta { margin-top: .4rem; }
  /* Hero overlay: use a solid emerald mobile menu so links stay readable */
  .has-hero .ku-navbar .navbar-collapse {
    background: var(--ku-emerald-900); border-color: rgba(255,255,255,.15);
  }
  .has-hero .ku-navbar .navbar-collapse .nav-link { color: rgba(255,255,255,.92); }
  .has-hero .ku-navbar .navbar-collapse .nav-link:hover,
  .has-hero .ku-navbar .navbar-collapse .nav-link.active { color: #fff; background: rgba(255,255,255,.12); }
  .has-hero .ku-navbar .navbar-collapse .btn-outline-ku { border-color: rgba(255,255,255,.6); color: #fff; }
  .booking-bar { margin-top: -60px; }
  .stats-strip { grid-template-columns: repeat(2, 1fr); }
  .ku-hero { min-height: clamp(520px, 82vh, 760px); }
  .hs-content { padding: calc(var(--nav-h) + 22px) 0 92px; }
  .hs-footer { bottom: 78px; }
  .hs-arrow { width: 48px; height: 48px; }
  .hs-title { font-size: clamp(2rem, 6vw, 3rem); }
  .doc { padding: 1.6rem 1.4rem; }
  .doc .doc-meta { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 767.98px) {
  .section { padding: 42px 0; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-item.large { grid-column: span 2; grid-row: span 1; aspect-ratio: 4 / 3; }
  .booking-bar { margin-top: 0; border-radius: var(--radius); }
  .ku-hero { min-height: clamp(500px, 78vh, 700px); }
  .hs-content { padding: calc(var(--nav-h) + 16px) 0 52px; }
  .hs-footer { bottom: 18px; gap: .55rem; }
  .hs-arrow { width: 42px; height: 42px; }
  .hs-arrow svg { width: 18px; height: 18px; }
  .hs-title { font-size: clamp(1.85rem, 7.4vw, 2.5rem); }
  .hero-badges { gap: .5rem 1rem; font-size: .85rem; }
  .title-lg { font-size: 1.7rem; }
  .room-option { flex-wrap: wrap; }
  .room-option img { width: 100%; height: 150px; }
  .room-option .ro-price { margin-left: auto; }
  .doc .doc-head { flex-direction: column; }
  .doc .doc-title { text-align: left; }
  .doc .doc-meta { grid-template-columns: 1fr; }
  .doc .watermark { font-size: 3rem; }
  .booking-steps { gap: .3rem; }
  .booking-steps .step .lbl { display: none; }
  .ku-footer .foot-bottom { flex-direction: column; }
}

@media (max-width: 575.98px) {
  .container-ku { padding: 0 14px; }
  .hs-arrow { width: 38px; height: 38px; }
  .hs-arrow svg { width: 16px; height: 16px; }
  .hs-title { font-size: clamp(1.7rem, 8vw, 2.2rem); }
  .gallery-grid { grid-template-columns: 1fr; }
  .gallery-item.large { grid-column: span 1; }
  .stats-strip { grid-template-columns: 1fr 1fr; }
  .amenity-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
  .doc { padding: 1.2rem 1rem; }
  .doc .watermark { font-size: 2.2rem; }
  .kpi-card .kpi-val { font-size: 1.4rem; }
  table.responsive-stack thead { display: none; }
  table.responsive-stack tr { display: block; border: 1px solid var(--ku-line); border-radius: var(--radius-sm); margin-bottom: .7rem; padding: .4rem .6rem; background: #fff; }
  table.responsive-stack td { display: flex; justify-content: space-between; gap: 1rem; border: 0; padding: .35rem 0; }
  table.responsive-stack td::before { content: attr(data-label); font-weight: 700; color: var(--ku-muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; }
}

/* Touch-friendly targets */
@media (hover: none) {
  .btn { padding-top: .7rem; padding-bottom: .7rem; }
  .ku-card:hover { transform: none; }
}
