/* RTL & Responsive Design System */

/* Base RTL Fixes */
html,
body {
    direction: rtl;
    text-align: right;
    font-family: 'Vazirmatn', sans-serif;
    overflow-x: hidden;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    position: relative;
}

/* Container Styles */
.container {
    width: 100%;
    max-width: 100%;
    padding-right: var(--bs-gutter-x, 0.75rem);
    padding-left: var(--bs-gutter-x, 0.75rem);
    margin-right: auto !important;
    margin-left: auto !important;
}

/* Fix RTL Offsets */
.offset-1 {
    margin-right: 8.333333%;
    margin-left: 0 !important;
}

.offset-2 {
    margin-right: 16.666667%;
    margin-left: 0 !important;
}

.offset-3 {
    margin-right: 25%;
    margin-left: 0 !important;
}

.offset-4 {
    margin-right: 33.333333%;
    margin-left: 0 !important;
}

.offset-5 {
    margin-right: 41.666667%;
    margin-left: 0 !important;
}

.offset-6 {
    margin-right: 50%;
    margin-left: 0 !important;
}

/* Fix Bootstrap RTL Classes */
.ms-auto {
    margin-right: auto !important;
    margin-left: 0 !important;
}

.me-auto {
    margin-left: auto !important;
    margin-right: 0 !important;
}

.ps-3 {
    padding-right: 1rem !important;
    padding-left: 0 !important;
}

.pe-3 {
    padding-left: 1rem !important;
    padding-right: 0 !important;
}

.ms-2 {
    margin-right: 0.5rem !important;
    margin-left: 0 !important;
}

.me-2 {
    margin-left: 0.5rem !important;
    margin-right: 0 !important;
}

.ms-3 {
    margin-right: 1rem !important;
    margin-left: 0 !important;
}

.me-3 {
    margin-left: 1rem !important;
    margin-right: 0 !important;
}

@media (max-width: 991.98px) {
    .row {
        margin-right: calc(var(--bs-gutter-x) * -0.5);
        margin-left: calc(var(--bs-gutter-x) * -0.5);
    }

    .row>* {
        padding-right: calc(var(--bs-gutter-x) * 0.5);
        padding-left: calc(var(--bs-gutter-x) * 0.5);
    }

    /* Fix Mobile Specific RTL Issues */
    .text-md-end {
        text-align: right !important;
    }

    .text-md-start {
        text-align: left !important;
    }
}

/* Container Breakpoints */
@media (min-width: 576px) {
    .container {
        max-width: 540px;
    }
}

@media (min-width: 768px) {
    .container {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    .container {
        max-width: 960px;
    }
}

@media (min-width: 1200px) {
    .container {
        max-width: 1140px;
    }
}

@media (min-width: 1400px) {
    .container {
        max-width: 1320px;
    }
}

/* Mobile Menu */
@media (max-width: 991.98px) {
    .offcanvas {
        width: 280px;
        right: 0;
        left: auto;
        transform: translateX(100%);
    }

    .offcanvas.show {
        transform: translateX(0);
    }

    .mobile-nav-item {
        padding: 12px 15px;
        font-size: 0.95rem;
    }

    .mobile-submenu {
        padding-right: 1rem;
        border-right: 2px solid var(--bs-primary);
        margin-right: 1rem;
    }

    .mobile-submenu .list-group-item {
        padding: 10px 20px;
        font-size: 0.9rem;
        border: none;
    }

    .list-group-flush {
        border-radius: 0;
    }

    .list-group-flush .list-group-item {
        border-right: 0;
        border-left: 0;
    }

    .transition-icon {
        transition: transform 0.3s ease;
    }

    [aria-expanded="true"] .transition-icon {
        transform: rotate(180deg);
    }
}

/* Header & Navigation */
@media (max-width: 991.98px) {
    .gradient-header {
        padding: 10px 0;
    }

    .navbar-brand {
        max-width: 180px;
    }

    .navbar-brand .fs-4 {
        font-size: 1.1rem !important;
    }

    .navbar-brand .small {
        font-size: 0.7rem;
    }

    .top-contact-bar {
        display: none;
    }
}

/* Hero Section */
@media (max-width: 991.98px) {
    .hero-content {
        text-align: center;
        padding: 40px 20px;
    }

    .hero-title {
        font-size: 2rem;
        margin-bottom: 1rem;
    }

    .hero-text {
        font-size: 1rem;
        margin-bottom: 1.5rem;
    }

    .hero-feature-item {
        justify-content: center;
        margin-bottom: 1rem;
    }

    .search-form {
        margin: 0 auto;
        max-width: 100%;
        padding: 20px !important;
    }
}

/* Stats Section */
@media (max-width: 991.98px) {
    .stats-section {
        padding: 40px 0;
    }

    .counter-box {
        margin-bottom: 20px;
        padding: 15px;
    }

    .counter-value {
        font-size: 1.8rem;
    }

    .counter-box i {
        font-size: 1.5rem;
    }
}

/* Partners Section */
@media (max-width: 991.98px) {
    .partner-logo {
        height: 80px;
        margin-bottom: 20px;
    }

    .partner-logo img {
        max-height: 60px;
    }
}

/* Routes Section */
@media (max-width: 991.98px) {
    .routes-section {
        padding: 40px 0;
    }

    .route-column-title {
        font-size: 1.2rem;
        margin-bottom: 15px;
    }

    .route-link {
        font-size: 0.9rem;
        padding: 8px 0;
    }
}

/* Form Elements */
@media (max-width: 991.98px) {

    .form-control,
    .form-select {
        padding: 10px 15px;
        font-size: 0.95rem;
    }

    .form-label {
        font-size: 0.9rem;
        margin-bottom: 0.5rem;
    }

    .btn {
        padding: 8px 20px;
        font-size: 0.95rem;
    }

    .btn-lg {
        padding: 10px 25px;
        font-size: 1rem;
    }
}

/* Footer */
@media (max-width: 991.98px) {
    .footer-card {
        margin-bottom: 30px;
    }

    .footer-card-title {
        font-size: 1.2rem;
        margin-bottom: 15px;
    }

    .footer-links a {
        font-size: 0.9rem;
        padding: 8px 0;
    }

    .social-links,
    .payment-methods {
        justify-content: center;
        margin-top: 20px;
    }

    .footer-bottom {
        text-align: center;
    }

    .designer {
        margin-top: 10px;
    }
}

/* Extra Small Devices (phones, 575.98px and down) */
@media (max-width: 575.98px) {
    .container {
        padding-right: 15px;
        padding-left: 15px;
    }

    .hero-title {
        font-size: 1.8rem;
    }

    .hero-text {
        font-size: 0.9rem;
    }

    .search-form {
        padding: 15px !important;
    }

    .counter-box {
        padding: 10px;
    }

    .counter-value {
        font-size: 1.5rem;
    }

    .partner-logo {
        height: 60px;
    }

    .partner-logo img {
        max-height: 40px;
    }

    .mobile-nav-item {
        padding: 10px;
        font-size: 0.9rem;
    }

    .btn {
        padding: 6px 15px;
        font-size: 0.9rem;
    }

    .footer-card {
        padding: 15px;
    }
}

/* Utility Classes for Responsive Design */
@media (max-width: 991.98px) {
    .text-center-md {
        text-align: center !important;
    }

    .mt-md-3 {
        margin-top: 1rem !important;
    }

    .mb-md-3 {
        margin-bottom: 1rem !important;
    }

    .py-md-4 {
        padding-top: 1.5rem !important;
        padding-bottom: 1.5rem !important;
    }
}

@media (max-width: 575.98px) {
    .text-center-sm {
        text-align: center !important;
    }

    .mt-sm-2 {
        margin-top: 0.5rem !important;
    }

    .mb-sm-2 {
        margin-bottom: 0.5rem !important;
    }

    .py-sm-3 {
        padding-top: 1rem !important;
        padding-bottom: 1rem !important;
    }
}

/* Animation Optimizations for Mobile */
@media (max-width: 991.98px) {
    .hover-card:hover {
        transform: translateY(-5px);
    }

    .btn-animated:hover {
        transform: translateY(-2px);
    }

    .float-animation {
        animation: none;
    }
}