/* ============================================================
   JHOUSE — RESPONSIVE OVERRIDES
   Bootstrap handles grid/column breakpoints via utility classes.
   This file only overrides custom component sizes at breakpoints.

   Breakpoints (max-width):
     @media (max-width: 991.98px)  — mobile / tablet
     @media (max-width: 767.98px)  — mobile
     @media (max-width: 575.98px)  — small mobile

   Min-width used ONLY for nav reveal (992px+) and
   wide-screen container cap (1400px+, 1920px+).
   ============================================================ */

/* ── 1400px+ — Wider section padding ── */
@media (min-width: 1400px) {
  .section {
    padding: 108px 0;
  }
}

/* ── 1920px+ — Cap container width ── */
@media (min-width: 1920px) {
  .container {
    max-width: 1440px;
  }
}

/* ============================================================
   max-width: 991.98px  (Tablet & Mobile)
   ============================================================ */

@media (max-width: 991.98px) {

  /* Hide desktop dropdown trigger in offcanvas context */
  .nav-dropdown-menu {
    display: none !important;
  }

  .site-nav .nav-dropdown-wrap {
    display: none;
  }

  /* Hero */
  .hero-title {
    font-size: clamp(2.2rem, 8vw, 3.5rem);
  }

  .hero-content {
    padding: 100px 20px 60px;
  }

  /* Sections */
  .section {
    padding: 72px 0;
  }

  .section-sm {
    padding: 52px 0;
  }

  /* Stats */
  .stats-bar {
    padding: 40px 0;
  }

  /* Split section → 1 column */
  .split-section {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .split-section.reverse {
    direction: ltr;
  }



  /* Room card */
  .room-card {
    height: 380px;
  }

  /* Page hero */
  .page-hero-section {
    min-height: 320px;
    padding-bottom: 40px;
  }

  .page-hero-content {
    padding-top: 100px;
  }

  .page-hero-title {
    font-size: clamp(1.75rem, 5vw, 2.5rem);
  }

  #dorm-hero {
    min-height: auto;
    padding-top: 110px;
    padding-bottom: 56px;
  }

  .dorm-hero-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .dorm-awards-row {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 24px;
  }

  .dorm-awards-row .awards-img-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    width: 100%;
  }

  .dorm-awards-row .award-img-wrap {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
  }

  /* Footer */
  .footer-links {
    columns: 1;
  }

  /* CTA */
  .cta-banner {
    padding: 56px 0;
  }
}

/* ============================================================
   max-width: 767.98px  (Mobile)
   ============================================================ */

@media (max-width: 767.98px) {
  :root {
    --header-height: var(--header-height-sm);
  }

  body {
    font-size: 15px;
  }

  .site-header {
    height: var(--header-height-sm);
  }

  .site-header .header-inner {
    padding: 0 10px;
  }

  .site-logo .logo-img {
    height: 56px;
  }

  .btn-book-now {
    padding: 9px 18px;
    font-size: 0.78rem;
  }

  .nav-toggle {
    padding: 8px 4px;
  }

  /* Hero */
  .hero-title {
    font-size: clamp(2rem, 9vw, 3rem);
  }

  .hero-subtitle {
    font-size: var(--text-base);
  }

  .hero-trust {
    gap: 16px;
  }

  /* Sections */
  .section {
    padding: 56px 0;
  }

  .section-sm {
    padding: 40px 0;
  }

  /* Stats */
  .stat-number {
    font-size: var(--text-3xl);
  }

  .stat-item {
    padding: 12px;
  }

  .stat-label {
    font-size: 0.78rem;
    line-height: 1.35;
  }

  /* Page hero */
  .page-hero-section {
    min-height: 280px;
  }

  .page-hero-title {
    font-size: var(--text-2xl);
  }

  #dorm-hero {
    padding-top: 96px;
    padding-bottom: 48px;
  }

  .dorm-hero-cta-head {
    flex-direction: column;
    align-items: flex-start;
  }

  /* Scroll-top + WhatsApp */
  .whatsapp-float {
    bottom: 20px;
    right: 16px;
    width: 50px;
    height: 50px;
  }

  .scroll-top-btn {
    bottom: 78px;
    right: 14px;
  }

  /* Section title */
  .section-title {
    font-size: var(--text-2xl);
  }

  .section-subtitle {
    font-size: 0.95rem;
    line-height: 1.65;
  }

  #about-preview .split-section {
    gap: 28px;
  }

  #about-preview p {
    font-size: 0.92rem;
    line-height: 1.7;
  }

  #about-preview .check-item {
    align-items: flex-start;
    font-size: 0.82rem;
    line-height: 1.45;
  }

  #about-preview .check-item i {
    margin-top: 4px;
    flex-shrink: 0;
  }

  #about-preview .btn-primary-jh,
  #about-preview .btn-outline-navy {
    min-width: 156px;
    justify-content: center;
    padding: 12px 20px;
    font-size: 0.9rem;
  }

  /* Gallery */
  .gallery-grid {
    grid-template-columns: 1fr 1fr;
  }

  .gallery-grid.grid-12 {
    grid-template-columns: repeat(3, 1fr);
  }

  /* Team cards */
  .team-card-img {
    height: 240px;
  }

  /* Footer bottom */
  .footer-bottom {
    flex-direction: column;
    text-align: center;
  }

  /* Split image */


  /* Mobile nav full width */
  .offcanvas.mobile-nav {
    width: 100vw !important;
  }

  /* Awards */
  .award-img-wrap {
    width: 110px;
    height: 65px;
  }

  #media .recognition-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  #amenities .row {
    --bs-gutter-x: 0.85rem;
    --bs-gutter-y: 0.85rem;
  }

  .amenity-card {
    min-height: 112px;
    padding: 18px 10px;
    justify-content: center;
  }

  .amenity-card span {
    font-size: 0.78rem;
    line-height: 1.28;
  }
}

/* ============================================================
   max-width: 575.98px  (Small Mobile)
   ============================================================ */

@media (max-width: 575.98px) {
  .section {
    padding: 48px 0;
  }

  .section-sm {
    padding: 36px 0;
  }

  .dorm-awards-row .awards-img-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .section-label,
  .section-label-amber {
    font-size: 0.72rem;
    letter-spacing: 0.08em;
  }

  /* Hero & CTA Banner stack */
  .hero-actions,
  .cta-banner .d-flex {
    flex-direction: column;
    align-items: center;
  }

  .hero-actions .btn-hero-primary,
  .hero-actions .btn-hero-secondary,
  .hero-actions .btn-primary-jh,
  .hero-actions .btn-outline-jh,
  .cta-banner .btn-primary-jh,
  .cta-banner .btn-outline-jh {
    width: 100%;
    max-width: 280px;
    justify-content: center;
  }

  /* Section title */
  .section-title {
    font-size: var(--text-xl);
    line-height: 1.25;
  }

  /* Stats */
  .stat-number {
    font-size: var(--text-2xl);
  }

  .stats-bar {
    padding: 28px 0;
  }

  .stat-item {
    min-height: 82px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  /* Page hero */
  .page-hero-section {
    min-height: 240px;
    padding-bottom: 32px;
  }

  .page-hero-title {
    font-size: var(--text-xl);
  }

  #dorm-hero {
    padding-top: 88px;
    padding-bottom: 40px;
  }

  .dorm-hero-cta-body,
  .dorm-hero-cta-foot {
    padding-left: 20px;
    padding-right: 20px;
  }

  /* Room cards */
  .room-card {
    height: 300px;
  }

  .room-card-title {
    font-size: var(--text-base);
  }

  /* Feature cards */
  .feature-card {
    padding: 24px 20px;
  }

  /* Contact cards */
  .contact-card {
    padding: 28px 20px;
  }

  /* Split section image */


  .split-img-wrap {
    border-radius: var(--radius-lg);
  }

  .split-img-badge {
    right: 14px;
    bottom: 14px;
    padding: 12px 14px;
    border-radius: var(--radius-md);
  }

  .split-img-badge .number {
    font-size: var(--text-2xl);
  }

  #about-preview .row.g-3 {
    --bs-gutter-x: 0.9rem;
    --bs-gutter-y: 0.9rem;
  }

  #about-preview .d-flex.gap-3 {
    gap: 12px !important;
  }

  #about-preview .btn-primary-jh,
  #about-preview .btn-outline-navy {
    width: 100%;
    min-width: 0;
  }

  /* Blog cards */
  .blog-card-img-wrap {
    height: 180px;
  }

  /* Gallery — single column */
  .gallery-grid {
    grid-template-columns: 1fr;
  }

  .gallery-grid.grid-12 {
    grid-template-columns: 1fr 1fr;
  }

  /* Amenity icon */
  .amenity-icon {
    width: 44px;
    height: 44px;
    font-size: 18px;
  }

  .amenity-card {
    min-height: 104px;
    border-radius: var(--radius-md);
  }

  /* Awards image grid */
  .award-img-wrap {
    width: 100px;
    height: 60px;
  }

  /* Trust items small */
  .trust-item {
    font-size: 0.75rem;
  }

  /* Social link buttons — wrap */
  .social-link-btn {
    padding: 10px 14px;
    font-size: 0.82rem;
  }
}

/* ── Touch Device — Disable hover lifts ── */
@media (hover: none) {

  .room-card:hover,
  .feature-card:hover,
  .blog-card:hover,
  .team-card:hover,
  .contact-card:hover,
  .award-badge:hover,
  .amenity-card:hover,
  .room-type-card:hover {
    transform: none;
    box-shadow: var(--shadow-card);
  }

  .room-card:hover .room-card-img,
  .blog-card:hover .blog-card-img-wrap img,
  .team-card:hover .team-card-img img {
    transform: none;
  }
}

/* ── Print ── */
@media print {

  .site-header,
  .whatsapp-float,
  .scroll-top-btn,
  .nav-toggle,
  .mobile-nav,
  .offcanvas-backdrop {
    display: none !important;
  }

  body {
    font-size: 12pt;
    color: #000;
  }

  .page-hero-section {
    min-height: auto;
    padding: 40px 0;
  }
}