/* ============================================
   Propszy Infotech - Responsive CSS
   Mobile-first overrides
============================================ */

/* Hide sidebar close button by default (shown only on mobile via media query) */
.sidebar-close-btn { display: none; }


@media (max-width: 1024px) {
  .hero-visual { display: none !important; }
  .hero-content { max-width: 100% !important; text-align: center; }
  .hero-actions { justify-content: center; }
  .hero-stats { justify-content: center; }
  .footer-grid { grid-template-columns: 1fr 1fr !important; }
  .packages-grid .package-card { width: calc((100% - 28px) / 2) !important; }
  .blog-grid-home .blog-card { width: calc((100% - 28px) / 2) !important; }
}

/* ===== MOBILE (≤768px) ===== */
@media (max-width: 768px) {

  /* --- Base --- */
  * { box-sizing: border-box; }
  body { padding-bottom: 68px; }
  .container { padding: 0 16px !important; }
  .section { padding: 48px 0 !important; }
  .section-sm { padding: 32px 0 !important; }
  .section-header { margin-bottom: 32px !important; }

  /* --- Navbar --- */
  .nav-links {
    display: none !important;
    position: fixed; top: 64px; left: 0; right: 0;
    background: var(--bg-secondary);
    flex-direction: column !important;
    padding: 12px 16px 20px;
    border-bottom: 1px solid var(--border);
    gap: 2px; z-index: 999;
    max-height: calc(100vh - 64px);
    overflow-y: auto;
  }
  .nav-links.open { display: flex !important; }
  .hamburger { display: flex !important; }
  .nav-actions .btn-outline,
  .nav-actions .btn-primary { display: none !important; }
  .nav-actions .nav-cart-btn { display: flex !important; }

  /* --- Hero --- */
  .hero { padding: 80px 0 48px !important; min-height: auto !important; }
  .hero .container { display: flex !important; flex-direction: column !important; gap: 0 !important; }
  .hero-content { text-align: center !important; }
  .hero-actions { justify-content: center !important; flex-wrap: wrap !important; }
  .hero-stats { justify-content: center !important; gap: 20px !important; flex-wrap: wrap !important; }
  .hero-stat-num { font-size: 1.6rem !important; }
  .hero-badge { justify-content: center !important; }

  /* --- Grids: 2 col on mobile --- */
  .services-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
  .home-services-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
  .team-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .blog-grid { flex-direction: row !important; flex-wrap: wrap !important; }
  .blog-grid .blog-card { width: calc(50% - 7px) !important; }
  .blog-grid-home { flex-direction: row !important; flex-wrap: wrap !important; }
  .blog-grid-home .blog-card { width: calc(50% - 7px) !important; }
  .packages-grid { flex-direction: row !important; flex-wrap: wrap !important; }
  .packages-grid .package-card { width: calc(50% - 7px) !important; }
  .portfolio-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .stats-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .footer-grid { grid-template-columns: 1fr !important; gap: 24px !important; }

  /* --- Page-specific two-col layouts → stack --- */
  /* About, Services, Contact, Team detail, Blog detail, Package detail */
  .about-grid,
  .service-detail-grid,
  .contact-grid { grid-template-columns: 1fr !important; gap: 28px !important; }

  /* Inline grid styles — catch all common patterns */
  section .container > div[style*="grid-template-columns"],
  section > div[style*="grid-template-columns"],
  .dashboard-content > div[style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  /* Blog detail sidebar → below article */
  .blog-detail-layout { grid-template-columns: 1fr !important; }

  /* --- Dashboard --- */
  .sidebar {
    transform: translateX(-100%) !important;
    z-index: 200;
    box-shadow: none;
  }
  .sidebar.open {
    transform: translateX(0) !important;
    box-shadow: 4px 0 24px rgba(0,0,0,0.5) !important;
  }
  .dashboard-main { margin-left: 0 !important; }
  .dashboard-content { padding: 16px !important; }
  .dashboard-header { padding: 12px 16px !important; flex-wrap: wrap; gap: 12px; }
  .dashboard-header > div:last-child { margin-left: auto; }
  .stats-cards { grid-template-columns: repeat(2, 1fr) !important; gap: 12px !important; }
  #sidebar-toggle { display: flex !important; }
  .sidebar-close-btn { display: flex !important; align-items: center; justify-content: center; }
  
  /* CRM Dashboard specific grids */
  .dashboard-content > div[style*="grid-template-columns:repeat(5,1fr)"],
  .dashboard-content > div[style*="grid-template-columns: repeat(5, 1fr)"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  
  /* Quick action cards */
  .quick-action-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Activity logs / Recent items flex layout */
  .dashboard-content div[style*="display:flex;align-items:center;gap:12px;padding:10px 14px;"] {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 6px !important;
  }
  .dashboard-content div[style*="display:flex;align-items:center;gap:12px;padding:10px 14px;"] > span:first-of-type {
    min-width: 0 !important;
  }

  /* --- Auth --- */
  .auth-page { padding: 24px 16px !important; }
  .auth-card { padding: 28px 20px !important; max-width: 100% !important; }

  /* --- CTA --- */
  .cta-section { padding: 40px 20px !important; }
  .cta-section > div[style*="display:flex"] { flex-direction: column !important; align-items: center !important; }

  /* --- Page Banner --- */
  .page-banner { padding: 90px 0 44px !important; }
  .page-banner-title { font-size: clamp(1.5rem, 6vw, 2.2rem) !important; }
  .page-banner-sub { font-size: .95rem !important; }

  /* --- Service detail top section --- */
  .service-detail-hero { flex-direction: column !important; }

  /* --- Sticky elements → static on mobile --- */
  [style*="position:sticky"],
  [style*="position: sticky"] {
    position: static !important;
    top: auto !important;
  }

  /* --- Table overflow --- */
  .table-wrap { overflow-x: auto !important; -webkit-overflow-scrolling: touch; }
  .data-table { min-width: 600px; }

  /* --- Forms --- */
  .form-group div[style*="grid-template-columns"],
  div[style*="grid-template-columns:1fr 1fr"],
  div[style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }

  /* --- Buttons --- */
  .btn-lg { padding: 13px 24px !important; font-size: .95rem !important; }

  /* --- Footer --- */
  .footer { padding: 48px 0 24px !important; }
  .footer-bottom { flex-direction: column !important; text-align: center !important; gap: 8px !important; }
  .footer-socials { justify-content: center !important; }

  /* --- WhatsApp float --- */
  .whatsapp-float { bottom: 76px !important; right: 16px !important; width: 48px !important; height: 48px !important; font-size: 1.3rem !important; }

  /* --- Packages page filter --- */
  #pkg-filter-form { flex-direction: column !important; }
  #pkg-filter-form > div { min-width: 100% !important; }

  /* --- Checkout / Cart grid --- */
  div[style*="grid-template-columns:1fr 360px"],
  div[style*="grid-template-columns:1fr 380px"],
  div[style*="grid-template-columns:1fr 300px"],
  div[style*="grid-template-columns:1fr 320px"],
  div[style*="grid-template-columns:1fr 340px"],
  div[style*="grid-template-columns:280px 1fr"],
  div[style*="grid-template-columns:380px 1fr"] {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
  }

  /* --- Admin packages create/edit --- */
  div[style*="grid-template-columns:1fr 320px"] { display: flex !important; flex-direction: column !important; }

  /* --- Testimonials --- */
  .testimonial-inner { padding: 28px 20px !important; }

  /* --- Hero orb --- */
  .hero-orb { display: none !important; }
}

/* ===== SMALL MOBILE (≤480px) ===== */
@media (max-width: 480px) {
  .hero-actions { flex-direction: column !important; align-items: stretch !important; }
  .btn-lg { width: 100% !important; justify-content: center !important; }
  .otp-inputs { gap: 6px !important; }
  .otp-input { width: 40px !important; height: 46px !important; font-size: 1.1rem !important; }
  .team-grid { grid-template-columns: 1fr !important; }
  .portfolio-grid { grid-template-columns: 1fr !important; }
  .stats-cards { grid-template-columns: 1fr 1fr !important; }
  .package-card { width: calc(50% - 14px) !important; }
  .blog-card { width: 100% !important; }
  .nav-container { padding: 0 12px !important; }
  .nav-logo { font-size: 1.3rem !important; }
  .section-title { font-size: clamp(1.4rem, 5vw, 2rem) !important; }
  .auth-card { padding: 24px 16px !important; }
  .dashboard-content { padding: 10px !important; }
  .stats-cards { gap: 10px !important; }
  .stat-card { padding: 16px !important; }
  .stat-card-value { font-size: 1.3rem !important; }

  /* Dashboard specific mobile overrides */
  .dashboard-content > div[style*="grid-template-columns:repeat(5,1fr)"],
  .dashboard-content > div[style*="grid-template-columns: repeat(5, 1fr)"] {
    grid-template-columns: 1fr !important;
  }
  .crm-stat { flex-direction: column !important; text-align: center !important; justify-content: center !important; }
  .crm-stat-icon { margin-bottom: 8px !important; }
  .sa-stat { flex-direction: row !important; text-align: left !important; justify-content: flex-start !important; }
  .quick-action-grid { grid-template-columns: 1fr !important; }
  .dashboard-header { flex-direction: column !important; align-items: flex-start !important; }
  .dashboard-header > div:last-child { margin-left: 0 !important; width: 100% !important; justify-content: space-between !important; }
  .hero-stats { gap: 16px !important; }
  .hero-stat-num { font-size: 1.4rem !important; }
  .cta-section { padding: 32px 16px !important; }
  .page-banner { padding: 80px 0 36px !important; }
  .footer-grid { gap: 20px !important; }
  .service-card-img { height: 140px !important; }
  .blog-img { height: 180px !important; }
  .package-img { height: 160px !important; }
}

/* ===== MOBILE BOTTOM NAV ===== */
.mobile-bottom-nav {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 998;
  background: var(--bg-secondary);
  border-top: 1px solid var(--border);
  padding: 6px 0 max(6px, env(safe-area-inset-bottom));
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.mobile-bottom-nav-inner {
  display: flex;
  justify-content: space-around;
  align-items: center;
  max-width: 480px;
  margin: 0 auto;
  padding: 0 8px;
}
.mobile-nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  text-decoration: none;
  color: var(--text-muted);
  font-size: .6rem;
  font-weight: 600;
  padding: 4px 8px;
  border-radius: 10px;
  transition: var(--transition);
  min-width: 48px;
  position: relative;
}
.mobile-nav-item i { font-size: 1.15rem; transition: var(--transition); }
.mobile-nav-item.active { color: var(--violet-light); }
.mobile-nav-item.active i { color: var(--violet); transform: translateY(-2px); }
.mobile-nav-item:hover { color: var(--violet-light); }

@media (max-width: 768px) {
  .mobile-bottom-nav { display: block; }
}

/* Light mode bottom nav */
html.light-mode .mobile-bottom-nav {
  background: rgba(255,255,255,0.97);
  border-top-color: rgba(0,0,0,0.1);
}

@media (max-width: 360px) {
  .packages-grid .package-card { width: 100% !important; }
  .package-card { width: 100% !important; }
  .services-grid { grid-template-columns: 1fr !important; }
  .home-services-grid { grid-template-columns: 1fr !important; }
  .blog-grid .blog-card { width: 100% !important; }
  .blog-grid-home .blog-card { width: 100% !important; }
}

/* ============================================
   FORCE 2-COL CARDS ON MOBILE — FINAL OVERRIDE
   Overrides all conflicting rules above
============================================ */
@media (max-width: 768px) {
  /* Packages — 2 per row */
  .packages-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    flex-direction: row !important;
    gap: 12px !important;
  }
  .packages-grid .package-card,
  .package-card {
    width: calc(50% - 6px) !important;
    flex-shrink: 0 !important;
    flex-grow: 0 !important;
  }

  /* Services — 2 per row */
  .services-grid,
  .home-services-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
  }

  /* Blog cards — 2 per row */
  .blog-grid,
  .blog-grid-home {
    display: flex !important;
    flex-wrap: wrap !important;
    flex-direction: row !important;
    gap: 12px !important;
  }
  .blog-grid .blog-card,
  .blog-grid-home .blog-card,
  .blog-card {
    width: calc(50% - 6px) !important;
    flex-shrink: 0 !important;
    flex-grow: 0 !important;
  }

  /* Team — 2 per row */
  .team-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
  }
}

/* Very small screens — 1 col */
@media (max-width: 380px) {
  .packages-grid .package-card,
  .package-card { width: 100% !important; }
  .blog-grid .blog-card,
  .blog-grid-home .blog-card,
  .blog-card { width: 100% !important; }
  .services-grid,
  .home-services-grid { grid-template-columns: 1fr !important; }
  .team-grid { grid-template-columns: 1fr !important; }
}

/* ---- Package card mobile layout fix ---- */
@media (max-width: 768px) {
  .package-body { padding: 12px !important; }
  .package-category { font-size: .65rem !important; margin-bottom: 4px !important; }
  .package-title { font-size: .9rem !important; margin-bottom: 6px !important; }
  .package-desc { font-size: .75rem !important; margin-bottom: 10px !important; }
  .package-price { margin-bottom: 12px !important; flex-wrap: wrap !important; gap: 4px !important; }
  .package-price .price { font-size: 1.3rem !important; }
  .package-price .original { font-size: .78rem !important; }
  .package-price .discount { font-size: .68rem !important; }

  /* Stack actions: Details full width, then cart+wishlist side by side */
  .package-actions {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    grid-template-rows: auto auto !important;
    gap: 6px !important;
  }
  .package-actions .btn-outline {
    grid-column: 1 / -1 !important;
    justify-content: center !important;
    padding: 8px 10px !important;
    font-size: .78rem !important;
  }
  .package-actions .btn-primary,
  .package-actions .add-to-cart {
    flex: 1 !important;
    justify-content: center !important;
    padding: 8px 6px !important;
    font-size: .75rem !important;
  }
  .package-actions .wishlist-btn {
    width: 36px !important;
    height: 36px !important;
    flex-shrink: 0 !important;
  }
  .package-img { height: 140px !important; }
}

@media (max-width: 480px) {
  .package-body { padding: 10px !important; }
  .package-title { font-size: .85rem !important; }
  .package-price .price { font-size: 1.15rem !important; }
}

/* ---- Theme toggle placement ---- */
/* Desktop: show in navbar, hide in menu */
.nav-theme-toggle-item { display: none; }
#theme-toggle { display: flex; }

/* Mobile: hide from navbar, show inside menu */
@media (max-width: 768px) {
  #theme-toggle { display: none !important; }
  .nav-theme-toggle-item { display: block !important; padding: 4px 0; }
}

/* ---- CRM Leads Table — Mobile Card Layout ---- */
@media (max-width: 768px) {
  .crm-leads-table thead { display: none; }

  .crm-leads-table tbody tr {
    display: block;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    margin-bottom: 12px;
    padding: 14px;
    position: relative;
  }
  .crm-leads-table tbody tr:hover { border-color: var(--border-accent); }

  .crm-leads-table tbody td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 0;
    border: none;
    font-size: .82rem;
    border-bottom: 1px solid var(--border);
  }
  .crm-leads-table tbody td:last-child { border-bottom: none; padding-top: 10px; }

  /* Hide less important columns on mobile */
  .crm-leads-table tbody td:nth-child(1),  /* # */
  .crm-leads-table tbody td:nth-child(4),  /* Company */
  .crm-leads-table tbody td:nth-child(5),  /* Service */
  .crm-leads-table tbody td:nth-child(9),  /* Lead Date */
  .crm-leads-table tbody td:nth-child(10), /* Assign Date */
  .crm-leads-table tbody td:nth-child(11)  /* Next Follow-up */
  { display: none; }

  /* Add labels via data-label */
  .crm-leads-table tbody td::before {
    content: attr(data-label);
    font-size: .72rem;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: .5px;
    flex-shrink: 0;
    margin-right: 8px;
  }

  /* Actions row full width */
  .crm-leads-table tbody td:last-child {
    justify-content: flex-end;
    gap: 6px;
  }
  .crm-leads-table tbody td:last-child::before { display: none; }

  /* Status/Priority selects — constrained width, right-aligned in card row */
  .crm-leads-table select.form-control {
    width: auto !important;
    min-width: unset !important;
    max-width: 160px !important;
    font-size: .78rem !important;
    padding: 4px 8px !important;
    flex-shrink: 0;
  }

  /* Priority & Status td: label left, select right — properly aligned */
  .crm-leads-table tbody td:nth-child(6),  /* Priority */
  .crm-leads-table tbody td:nth-child(7)   /* Status   */
  {
    align-items: center;
    gap: 8px;
  }

  .crm-leads-table tbody td:nth-child(6)::before,
  .crm-leads-table tbody td:nth-child(7)::before {
    flex: 0 0 auto;
    min-width: 56px;
  }
}
