/**
 * Tesla Store - Mobile responsive overrides (max-width: 768px)
 * Desktop layout unchanged. Only improves mobile view.
 */

@media (max-width: 768px) {
    /* Prevent horizontal scroll */
    html, body {
        overflow-x: hidden !important;
        width: 100% !important;
    }

    /* Typography - scaled down, readable */
    .content-wrapper h1,
    h1 { font-size: 1.4rem !important; line-height: 1.3 !important; }

    .content-wrapper h2,
    h2 { font-size: 1.25rem !important; line-height: 1.3 !important; }

    .content-wrapper h3,
    h3 { font-size: 1.1rem !important; }

    .content-wrapper h4,
    h4 { font-size: 1.05rem !important; }

    .content-wrapper h5,
    h5 { font-size: 1rem !important; }

    .content-wrapper h6,
    h6 { font-size: 0.95rem !important; }

    .content-wrapper p,
    .card-body p,
    p { font-size: 0.9375rem !important; line-height: 1.5 !important; }

    .lead { font-size: 0.9375rem !important; }
    .display-1 { font-size: 1.5rem !important; }
    .display-4 { font-size: 1.25rem !important; }
    .small, small { font-size: 0.8125rem !important; }

    /* Containers - full width, reduced padding */
    .container,
    .container-fluid {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .content-wrapper .container.my-5,
    .content-wrapper .container.my-4 {
        margin-top: 0.75rem !important;
        margin-bottom: 1.25rem !important;
    }

    /* Rows - no overflow */
    .row {
        margin-left: -6px !important;
        margin-right: -6px !important;
    }

    .row > [class*="col-"] {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    /* Flexbox - wrap where needed */
    .d-flex:not(.flex-nowrap):not(.mobile-nowrap) {
        flex-wrap: wrap !important;
    }

    .justify-content-between {
        gap: 0.5rem;
    }

    /* Form controls - full width, touch-friendly */
    .form-control,
    .form-select,
    select.form-control,
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="number"],
    input[type="tel"],
    input[type="url"],
    textarea.form-control {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 44px !important;
        font-size: 16px !important; /* Prevents iOS zoom on focus */
        padding: 0.6rem 0.75rem !important;
        box-sizing: border-box !important;
    }

    textarea.form-control {
        min-height: 88px !important;
    }

    .form-label {
        font-size: 0.9375rem !important;
        margin-bottom: 0.35rem !important;
    }

    .input-group {
        width: 100% !important;
        max-width: 100% !important;
        flex-wrap: nowrap !important;
    }

    .input-group .form-control {
        flex: 1 1 auto !important;
        min-width: 0 !important;
    }

    .input-group .btn {
        flex-shrink: 0 !important;
    }

    /* Buttons - min 44px height */
    .btn {
        min-height: 44px !important;
        min-width: 44px !important;
        padding: 0.6rem 1rem !important;
        font-size: 0.9375rem !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .btn-sm {
        min-height: 44px !important;
        padding: 0.5rem 0.875rem !important;
        font-size: 0.875rem !important;
    }

    .btn-lg {
        min-height: 48px !important;
        padding: 0.75rem 1.25rem !important;
    }

    .btn-block, .w-100.btn {
        width: 100% !important;
    }

    /* Cards */
    .card {
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .card-body {
        padding: 0.875rem !important;
    }

    .card-header {
        padding: 0.75rem 0.875rem !important;
        font-size: 0.9375rem !important;
    }

    .card-header h4,
    .card-header h5,
    .card-header .mb-0 {
        font-size: 1rem !important;
    }

    /* Images - responsive */
    img {
        max-width: 100% !important;
        height: auto !important;
        object-fit: contain !important;
    }

    .card-img-top,
    .product-card img,
    .category-card img {
        max-width: 100% !important;
        height: auto !important;
        object-fit: cover !important;
    }

    /* Tables - already card-style in layout; ensure no overflow */
    .table-responsive {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        margin-left: -12px !important;
        margin-right: -12px !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .table-mobile-friendly .input-group {
        width: 100% !important;
        max-width: 100% !important;
    }

    .table-mobile-friendly .input-group input[readonly] {
        max-width: 50px !important;
    }

    .cart-quantity-group {
        width: 100% !important;
        max-width: 100% !important;
    }

    .cart-quantity-group .form-control {
        flex: 1 !important;
        min-width: 0 !important;
        max-width: none !important;
    }

    /* Modals - full width on mobile */
    .modal-dialog {
        margin: 0.5rem !important;
        max-width: calc(100% - 1rem) !important;
        width: 100% !important;
    }

    .modal-content {
        max-width: 100% !important;
        border-radius: 12px !important;
    }

    .modal-body {
        padding: 1rem !important;
        font-size: 0.9375rem !important;
    }

    .modal-header {
        padding: 0.75rem 1rem !important;
    }

    .modal-header .modal-title {
        font-size: 1.1rem !important;
    }

    .modal-footer {
        padding: 0.75rem 1rem !important;
        flex-wrap: wrap !important;
        gap: 0.5rem !important;
    }

    .modal-footer .btn {
        flex: 1 1 auto !important;
        min-width: 120px !important;
    }

    /* Dropdowns */
    .dropdown-menu {
        max-width: calc(100vw - 24px) !important;
    }

    .form-select {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Alerts */
    .alert {
        padding: 0.75rem 0.875rem !important;
        font-size: 0.9375rem !important;
    }

    /* Login / Auth pages */
    .login-container .container {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .login-container .card-body {
        padding: 1.25rem !important;
    }

    .login-header {
        padding: 1rem 1.25rem !important;
    }

    .login-header h2 {
        font-size: 1.25rem !important;
    }

    /* Checkout / Forms with rows */
    #checkoutForm .row .col-md-6,
    #checkoutForm .row .col-md-8,
    #checkoutForm .row .col-md-4 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    #checkoutForm .card-body {
        padding: 0.875rem !important;
    }

    /* Products filters */
    .filters-card .card-body {
        padding: 0.875rem !important;
    }

    .filters-card .form-select,
    .filters-card .form-control {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Product detail page - ensure Add to Cart is above FABs and tappable */
    .product-detail-section {
        padding: 0.75rem 0 7rem !important; /* bottom padding so Add to Cart is not covered by floating buttons */
    }

    .product-detail-section .main-image img,
    .product-detail-section #mainProductImage {
        max-height: 280px !important;
        width: 100% !important;
        object-fit: contain !important;
    }

    .product-detail-section .thumbnail-gallery {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .product-detail-section .thumbnail-item {
        min-width: 64px !important;
    }

    /* Add to Cart / primary action buttons - always tappable on mobile */
    .product-detail-section .d-grid.gap-2,
    .product-detail-section .btn-primary.btn-lg,
    .product-detail-section button[onclick*="addToCart"] {
        position: relative !important;
        z-index: 10 !important;
    }

    .product-detail-section .btn-primary.btn-lg,
    .product-detail-section .add-to-cart-btn,
    .product-detail-section button[onclick*="addToCart"],
    .content-wrapper .btn-primary[href*="products"] {
        cursor: pointer !important;
        touch-action: manipulation !important; /* removes 300ms tap delay */
        -webkit-tap-highlight-color: rgba(0,0,0,0.1) !important;
    }

    .product-detail-section .add-to-cart-actions {
        margin-bottom: 1rem !important;
    }

    .product-detail-section .product-quantity-group {
        width: 100% !important;
        max-width: 160px !important;
    }

    /* Footer */
    .amazon-footer .container {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .amazon-footer .row.g-4 {
        margin-left: -6px !important;
        margin-right: -6px !important;
    }

    .amazon-footer .row.g-4 > [class*="col-"] {
        padding-left: 6px !important;
        padding-right: 6px !important;
        margin-bottom: 1rem !important;
    }

    .amazon-footer-heading {
        font-size: 0.9375rem !important;
    }

    .amazon-footer-links a,
    .amazon-footer-text,
    .amazon-footer-copy {
        font-size: 0.875rem !important;
    }

    /* Section spacing */
    section {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .py-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
    .py-4 { padding-top: 1.25rem !important; padding-bottom: 1.25rem !important; }
    .pt-5 { padding-top: 1.5rem !important; }
    .pb-5 { padding-bottom: 1.5rem !important; }
    .my-5 { margin-top: 1rem !important; margin-bottom: 1.25rem !important; }
    .mb-4 { margin-bottom: 1rem !important; }
    .mb-5 { margin-bottom: 1.25rem !important; }

    /* Back to top */
    .amazon-footer-backtotop a {
        min-height: 44px !important;
        padding: 0.6rem 1rem !important;
        font-size: 0.9375rem !important;
    }

    /* Pagination */
    .pagination {
        flex-wrap: wrap !important;
        gap: 0.35rem !important;
        justify-content: center !important;
    }

    .pagination .page-link {
        min-height: 44px !important;
        min-width: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0.5rem !important;
    }

    /* Store profile page */
    .store-profile-section {
        padding-top: 70px !important;
        padding-bottom: 1.5rem !important;
    }
    .store-banner {
        height: 120px !important;
    }
    .store-info {
        padding: 1rem 1rem !important;
    }
    .store-logo-wrap { margin-top: -40px !important; }
    .store-logo {
        width: 70px !important;
        height: 70px !important;
    }
    .store-name { font-size: 1.25rem !important; }
    .store-products-title,
    .store-feedbacks-title {
        font-size: 1.15rem !important;
        margin-top: 1.5rem !important;
    }
    .feedback-item {
        padding: 0.75rem 1rem !important;
    }
}

/* Extra small (optional) */
@media (max-width: 576px) {
    .container,
    .container-fluid {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .content-wrapper h1,
    h1 { font-size: 1.25rem !important; }

    .content-wrapper h2,
    h2 { font-size: 1.15rem !important; }

    .card-body {
        padding: 0.75rem !important;
    }

    .modal-dialog {
        margin: 0.35rem !important;
        max-width: calc(100% - 0.75rem) !important;
    }
}
