/* ============================
   GLOBAL MOBILE / TABLET TWEAKS
   ============================ */

/* Prevent horizontal overflow everywhere */
html, body {
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
}

/* Touch targets minimum 44px */
@media (pointer: coarse) {
  a, button, input[type="submit"], .btn, .button-red, .button-grey, .nav-link {
    min-height: 44px;
  }
}

/* 1024px: tablet */
@media (max-width: 1024px) {
  .dashboard-alerts-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .quick-access-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .stats-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .checkout-container {
    grid-template-columns: 1fr !important;
  }
  .checkout-sidebar {
    order: -1 !important;
  }
  .providers-grid {
    grid-template-columns: 1fr !important;
  }
  .public-page {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}

/* Desktop hamburger hidden */
.mobile-menu-toggle {
  display: none;
}

/* 992px: tablet + mobile nav */
@media (max-width: 992px) {
  .mobile-menu-toggle {
    display: block !important;
  }
  .site-header__nav:not(.mobile-open) {
    display: none;
  }
}

/* ========== 768px: phone + small tablet ========== */
@media (max-width: 768px) {

  /* Global containers */
  .container,
  .main,
  .home-main,
  .admin-main,
  .user-page-wrapper,
  .public-page-wrapper {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .admin-main {
    padding-top: 70px !important;
    padding-bottom: 30px !important;
  }

  .public-page {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .admin-page-wrapper {
    padding: 12px !important;
  }

  .admin-main--wide,
  .admin-main--narrow {
    max-width: 100% !important;
  }

  .public-content-wrapper {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 8px;
    padding-right: 8px;
  }

  .faq-page-wrapper {
    max-width: 100%;
    margin: 16px auto 40px;
    padding: 0 8px;
  }

  /* Hero */
  .home-hero,
  .home-hero-title,
  .home-hero-lead {
    padding: 16px;
  }
  .home-hero-title {
    font-size: 1.4rem;
  }

  /* Product grids */
  .products-grid,
  .home-products-grid {
    grid-template-columns: 1fr !important;
    gap: 12px;
  }
  .product-card,
  .home-product-card {
    padding: 10px;
    max-width: 100% !important;
  }
  .product-layout {
    display: block !important;
  }
  .product-layout .product-media {
    margin-bottom: 16px;
  }
  .product-price { font-size: 1.1rem; }
  .product-description, .product-short { font-size: 0.9rem; }

  /* FAQ */
  .home-faq-section, .home-faq-static, .home-faq-static-list, .home-faq-list {
    padding-left: 0; padding-right: 0;
  }
  .home-faq-q, .home-faq-static-q { font-size: 0.95rem; }
  .home-faq-a, .home-faq-static-a { font-size: 0.85rem; }
  .faq-red-btn { padding: 10px 18px; font-size: 14px; }

  /* Tables: horizontal scroll */
  .admin-main table,
  .files-page table,
  .table,
  .payments-table,
  .users-table,
  .orders-table,
  .admin-orders-table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .admin-main th, .admin-main td,
  .files-page th, .files-page td,
  .table th, .table td {
    white-space: nowrap;
    font-size: 0.85rem;
    padding: 8px 6px;
  }

  /* Header mobile */
  .site-header__bar, .header-content {
    flex-wrap: nowrap;
    gap: 8px;
    position: relative;
  }
  .mobile-menu-toggle {
    display: block !important;
    background: transparent;
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 4px;
    color: var(--theme-header-text);
    font-size: 1.5rem;
    cursor: pointer;
    padding: 8px 10px;
    order: 2;
    z-index: 1001;
    line-height: 1;
    min-width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .mobile-menu-toggle:hover { background: rgba(255,255,255,0.1); }
  .mobile-menu-toggle.active { background: rgba(255,255,255,0.2); }

  .site-header__nav {
    position: absolute;
    top: 100%;
    left: 0; right: 0;
    background: var(--theme-header-bg);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    flex-direction: column;
    gap: 0; padding: 0;
    z-index: 1000;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
    display: none;
  }
  .site-header__nav.mobile-open {
    display: flex;
    max-height: 500px;
    padding: 8px 0;
  }
  .site-header__nav .nav-link {
    padding: 12px 20px;
    font-size: 0.95rem;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    width: 100%;
    display: block;
    text-align: left;
  }
  .site-header__nav .nav-link:last-child { border-bottom: none; }
  .site-header__nav .nav-link:hover { background: rgba(255,255,255,0.1); text-decoration: none; }

  .lang-dropdown { order: 3; }

  /* Dashboard alerts */
  .dashboard-alerts-grid {
    grid-template-columns: 1fr !important;
    gap: 12px;
  }
  .dashboard-alert {
    padding: 14px;
    min-height: auto !important;
  }
  .dashboard-alert h3 { font-size: 1rem; }
  .dashboard-alert p { font-size: 0.85rem; }

  /* Quick access */
  .quick-access-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px;
  }
  .quick-access-card {
    padding: 10px 12px !important;
    min-height: 60px !important;
  }
  .quick-access-icon { font-size: 1.2rem; margin-bottom: 2px; }
  .quick-access-title { font-size: 0.82rem; }
  .quick-access-desc { font-size: 0.72rem; display: none; }

  /* Stats */
  .stats-grid, .dashboard-stats {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px;
  }
  .stat-card { padding: 12px !important; }

  /* Forms */
  .form-group { margin-bottom: 14px; }
  .form-group label { font-size: 0.85rem; margin-bottom: 5px; }
  .form-group input[type="text"],
  .form-group input[type="password"],
  .form-group input[type="email"],
  .form-group input[type="number"],
  .form-group select,
  .form-group textarea {
    font-size: 16px !important; /* prevents iOS zoom on focus */
    padding: 10px 12px;
  }

  /* Buttons full width on mobile */
  .button-red, .button-grey, .btn, .btn-primary {
    padding: 11px 20px;
    font-size: 0.9rem;
    width: 100%;
    margin-bottom: 8px;
  }
  .form-actions {
    flex-direction: column;
    gap: 10px;
  }
  .form-actions .button-red,
  .form-actions .button-grey,
  .form-actions .btn { width: 100%; }
  .form-grid-2 { grid-template-columns: 1fr; }

  /* Cards */
  .card { padding: 14px; margin-bottom: 12px; }
  .card h2, .card h3 { font-size: 1.1rem; }

  .tables-grid { grid-template-columns: 1fr !important; gap: 12px; }
  .table-card { padding: 12px; }
  .actions { flex-direction: column; gap: 8px; }
  .actions .btn { width: 100%; }

  .order-meta-grid { grid-template-columns: 1fr !important; gap: 12px; }
  .contact-form { padding: 16px; }
  .customer-dashboard { padding: 16px; }
  .dashboard-welcome h1 { font-size: 1.5rem; }

  .site-header, .header-inner {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  /* Payments page */
  .payments-page { padding: 12px !important; }
  .providers-grid { grid-template-columns: 1fr !important; }
  .provider-card { padding: 14px; }
  .provider-actions { flex-direction: column; gap: 8px; }
  .tab-btn { padding: 10px 14px; font-size: 0.85rem; }

  /* Payment method selector (checkout) */
  .pm-option { padding: 12px; gap: 10px; }
  .pm-name { font-size: 0.88rem; }
  .pm-desc { font-size: 0.75rem; }
  .pay-btn { padding: 14px; font-size: 0.95rem; }

  /* Config page */
  .config-page { padding: 12px !important; }

  /* Auth pages */
  .auth-wrapper { margin: 20px auto; padding: 0 12px; }
  .auth-container { padding: 24px 18px 28px; }

  /* Settings blocks */
  .settings-block { padding: 16px !important; margin-bottom: 14px; }

  /* Site settings page adjustments */
  .save-button-container { position: static !important; }

  /* Checkout page */
  .checkout-container { grid-template-columns: 1fr !important; gap: 16px; }
  .checkout-card { padding: 16px; }
  .checkout-card-title { font-size: 1.05rem; }

  /* Result pages */
  .result-page { margin: 20px auto; }
  .result-card { padding: 32px 20px; }
  .result-icon { font-size: 3rem; }
  .result-title { font-size: 1.2rem; }
  .result-btns { flex-direction: column; }
  .result-btn { width: 100%; justify-content: center; }

  /* User dashboard */
  .user-dashboard-grid { grid-template-columns: 1fr !important; }
  .user-sidebar { display: none; }
}

/* ========== 480px: small phones ========== */
@media (max-width: 480px) {
  .home-hero-title { font-size: 1.2rem; }
  .home-products-title { font-size: 1.05rem; }
  .product-card-title { font-size: 0.9rem; }
  .btn-link { font-size: 0.8rem; padding: 5px 8px; }
  .faq-page-header h1 { font-size: 1.3rem; }

  .dashboard-header h2 { font-size: 1.1rem; }
  .dashboard-header p { font-size: 0.82rem; }

  /* Quick access: still 2 columns but smaller */
  .quick-access-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px;
  }
  .quick-access-card {
    padding: 8px 10px !important;
    min-height: 50px !important;
  }
  .quick-access-icon { font-size: 1rem; }
  .quick-access-title { font-size: 0.78rem; }

  /* Stats single column */
  .dashboard-stats {
    grid-template-columns: 1fr !important;
  }

  .form-group input, .form-group select, .form-group textarea {
    font-size: 16px !important;
    padding: 9px 12px;
  }
  .button-red, .button-grey, .btn {
    padding: 9px 16px;
    font-size: 0.85rem;
  }
  .card { padding: 12px; }
  .table th, .table td { font-size: 0.75rem; padding: 6px 4px; }

  .site-logo img { max-height: 28px; }
  .brand-name { font-size: 0.85rem; }
  .lang-btn { padding: 6px 8px; font-size: 0.85rem; }
  .lang-code { display: none; }

  /* Header bar even more compact */
  .site-header__bar, .header-content {
    padding: 10px 8px !important;
  }

  /* Admin main less top padding */
  .admin-main { padding-top: 60px !important; }

  .page-header h1, .page-header h2 { font-size: 1.15rem !important; }

  /* Tab buttons */
  .tab-btn, .tab-nav button { font-size: 0.78rem; padding: 8px 10px; }

  /* Provider cards */
  .provider-card { padding: 12px; }
  .provider-name { font-size: 0.88rem; }
  .provider-currencies { font-size: 0.72rem; }

  /* Payment toggle rows */
  .toggle-row { flex-wrap: wrap; }

  /* Checkout */
  .checkout-card { padding: 12px; }
  .order-summary-item { font-size: 0.85rem; }
  .pm-option { padding: 10px; }

  /* Footer */
  footer.site-footer { padding: 14px 0 !important; }
  footer.site-footer .site-footer__inner { padding: 0 12px !important; }
  footer.site-footer .site-footer__text { font-size: 0.8rem !important; }
}

/* ========== 360px: very small phones ========== */
@media (max-width: 360px) {
  .quick-access-grid {
    grid-template-columns: 1fr !important;
    gap: 6px;
  }
  .admin-main { padding: 56px 8px 20px !important; }
  .brand-name { font-size: 0.78rem; }
  .site-logo img { max-height: 24px; }
}

/* ========== Footer mobile fix ========== */
@media (max-width: 640px) {
  footer.site-footer .site-footer__inner {
    flex-direction: column !important;
    text-align: center !important;
    gap: 10px !important;
  }
}
