/* =============================================
   RENTRABIT - Responsive Styles
   ============================================= */

/* Large Desktop */
@media (max-width: 1399px) {
    .footer-grid { grid-template-columns: 1.5fr 1fr 1fr 1fr 1.2fr; gap: 2rem; }
}

/* Desktop */
@media (max-width: 1199px) {
    .main-nav { gap: 1.5rem; }
    .nav-phone span { display: none; }
    .hero-stats { grid-template-columns: repeat(2, 1fr); }
    .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; gap: 2.5rem; }
    .footer-grid > *:nth-child(4),
    .footer-grid > *:nth-child(5) { grid-column: span 1; }
    .detail-meta-grid { grid-template-columns: repeat(2, 1fr); }
    .amenities-grid { grid-template-columns: repeat(2, 1fr); }
    .gallery-grid { grid-template-columns: repeat(3, 1fr); grid-template-rows: 200px 200px; }
}

/* Tablet */
@media (max-width: 991px) {
    :root {
        --space-3xl: 5rem;
        --space-2xl: 4rem;
    }

    .main-nav, .nav-phone { display: none; }
    .menu-toggle { display: inline-flex; }

    .hero { min-height: auto; padding: 140px 0 80px; }
    .hero-title { font-size: clamp(2rem, 7vw, 3.5rem); }
    .hero-stats { gap: 1.5rem; padding-top: 2rem; margin-top: 2rem; }

    .search-card { flex-wrap: wrap; padding: 1rem; }
    .search-tab { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.08); flex: 1 1 100%; }
    .search-submit { width: 100%; height: 50px; border-radius: 12px; margin-top: 8px; }

    .cta-banner { padding: 3rem 2rem; }

    .detail-gallery { grid-template-columns: 1fr; }
    .detail-thumbs { grid-template-rows: none; grid-template-columns: repeat(2, 1fr); }
    .detail-info-head { flex-direction: column; }
    .detail-price-block { text-align: left; }

    .filter-sidebar { position: static; margin-bottom: 2rem; }

    .gallery-grid { grid-template-columns: repeat(2, 1fr); grid-template-rows: 180px 180px 180px; }
    .gallery-item.wide { grid-column: span 2; }

    .footer-grid { grid-template-columns: repeat(2, 1fr); gap: 2.5rem; }
    .footer-brand { grid-column: span 2; }

    .trust-strip-inner { justify-content: center; text-align: center; }
    .trust-logos { gap: 2rem; justify-content: center; }
}

/* Mobile */
@media (max-width: 767px) {
    :root {
        --space-3xl: 4rem;
        --space-2xl: 3rem;
        --space-xl: 2.5rem;
    }

    .section-header { margin-bottom: 2.5rem; }
    .section-title { font-size: 1.75rem; }
    .section-lead { font-size: 1rem; }

    .hero-cta { gap: 12px; }
    .btn { padding: 12px 22px; font-size: 0.875rem; }
    .btn-lg { padding: 14px 26px; font-size: 0.9375rem; }

    .hero-stats { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .stat-number { font-size: 1.75rem; }
    .stat-label { font-size: 0.75rem; }

    .loc-card-title { font-size: 1.5rem; }
    .cat-card { padding: 1.5rem; }

    .testi-card { padding: 1.75rem; }
    .testi-text { font-size: 1rem; }

    .price-card { padding: 1.75rem; }
    .price-amount { font-size: 2.5rem; }

    .cta-banner { padding: 2.5rem 1.5rem; border-radius: var(--radius-lg); text-align: center; }

    .detail-meta-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
    .amenities-grid { grid-template-columns: 1fr; }
    .detail-title { font-size: 1.75rem; }
    .detail-price { font-size: 2rem; }

    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: 140px 140px 140px 140px;
        gap: 0.75rem;
    }
    .gallery-item.wide, .gallery-item.tall { grid-column: span 1; grid-row: span 1; }

    .filter-bar { padding: 1rem; }
    .filter-toolbar { width: 100%; flex-wrap: wrap; }

    .page-header { padding: 140px 0 70px; }

    .footer-grid { grid-template-columns: 1fr; gap: 2.5rem; padding-bottom: 3rem; }
    .footer-brand { grid-column: span 1; }
    .footer-bottom { flex-direction: column; text-align: center; }

    .float-whatsapp { width: 54px; height: 54px; font-size: 1.5rem; bottom: 18px; right: 18px; }
    .sticky-cta { display: none; }

    .modal-card { max-height: 95vh; }
    .modal-head, .modal-body { padding: 1.5rem; }
    .modal-title { font-size: 1.5rem; }

    .map-side { padding: 1.75rem; }
    .feature-card { padding: 1.75rem; }
}

@media (max-width: 480px) {
    h1, .h-display { font-size: 2rem; }
    .hero-title { font-size: 2.25rem; line-height: 1.05; }
    .hero-sub { font-size: 1rem; }
    .hero-badge { font-size: 0.75rem; padding: 6px 14px 6px 6px; }
    .hero-badge .pill { font-size: 0.65rem; padding: 3px 10px; }

    .stat-number { font-size: 1.5rem; }

    .nav-wrap { gap: 1rem; }
    .brand { font-size: 1.25rem; }
    .brand-mark { width: 36px; height: 36px; font-size: 1rem; }

    .float-card { padding: 1rem; }
    .search-card { padding: 0.75rem; }
    .search-tab { padding: 12px 16px; }
}
