/* Mobile Responsive Enhancements for GORI Tours */

/* Navbar Mobile Improvements */
@media (max-width: 991.98px) {
    /* Navbar Brand Adjustments */
    .navbar-brand h1 {
        font-size: 1.5rem !important;
        letter-spacing: 2px !important;
        margin: 0 !important;
    }
    
    .navbar-brand img {
        max-height: 35px !important;
    }
    
    /* Navbar Toggler Improvements */
    .navbar-toggler {
        border: 2px solid var(--bs-primary) !important;
        padding: 8px 12px !important;
        font-size: 1.2rem !important;
    }
    
    .navbar-toggler:focus {
        box-shadow: 0 0 0 0.2rem rgba(19, 53, 123, 0.25) !important;
    }
    
    /* Navbar Collapse Menu */
    .navbar-collapse {
        background: rgba(255, 255, 255, 0.98) !important;
        border-radius: 10px !important;
        margin-top: 10px !important;
        padding: 15px !important;
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1) !important;
    }
    
    .navbar-nav .nav-link {
        padding: 12px 15px !important;
        margin: 5px 0 !important;
        border-radius: 8px !important;
        font-size: 1rem !important;
        font-weight: 500 !important;
        text-align: center !important;
        border: 1px solid transparent !important;
        transition: all 0.3s ease !important;
    }
    
    .navbar-nav .nav-link:hover,
    .navbar-nav .nav-link.active {
        background-color: var(--bs-primary) !important;
        color: var(--bs-white) !important;
        border-color: var(--bs-primary) !important;
        transform: translateY(-2px) !important;
    }
    
    /* Book Now Button in Mobile */
    .navbar .btn-primary {
        margin-top: 15px !important;
        width: 100% !important;
        padding: 12px !important;
        font-size: 1rem !important;
        font-weight: 600 !important;
    }
}

/* Carousel Mobile Improvements */
@media (max-width: 768px) {
    /* Carousel Container */
    .carousel-header {
        height: 100vh !important;
        min-height: 600px !important;
    }
    
    .carousel-inner .carousel-item {
        min-height: 100vh !important;
        height: 100vh !important;
    }
    
    .carousel-inner .carousel-item img {
        height: 100vh !important;
        object-fit: cover !important;
        object-position: center !important;
    }
    
    /* Carousel Caption Mobile */
    .carousel-caption {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        padding: 20px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.4)) !important;
    }
    
    .carousel-caption .p-3 {
        max-width: 100% !important;
        padding: 20px !important;
        margin: 0 !important;
    }
    
    /* Carousel Text Mobile */
    .carousel-caption h4 {
        font-size: 1rem !important;
        letter-spacing: 1px !important;
        margin-bottom: 15px !important;
        line-height: 1.4 !important;
    }
    
    .carousel-caption h1 {
        font-size: 2.5rem !important;
        line-height: 1.2 !important;
        margin-bottom: 20px !important;
        font-weight: 800 !important;
    }
    
    .carousel-caption p {
        font-size: 0.9rem !important;
        line-height: 1.5 !important;
        margin-bottom: 25px !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 4 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
    }
    
    /* Carousel Button Mobile */
    .carousel-caption .btn {
        padding: 12px 25px !important;
        font-size: 0.9rem !important;
        font-weight: 600 !important;
        border-radius: 25px !important;
    }
    
    /* Background Title Mobile */
    .carousel-background-title {
        font-size: 2.5rem !important;
        letter-spacing: 2px !important;
        opacity: 0.3 !important;
        line-height: 1 !important;
        word-break: break-word !important;
        text-align: center !important;
        padding: 0 10px !important;
    }
    
    /* Carousel Controls Mobile */
    .carousel-control-prev,
    .carousel-control-next {
        width: 15% !important;
    }
    
    .carousel-control-prev-icon,
    .carousel-control-next-icon {
        width: 30px !important;
        height: 30px !important;
        background-size: 50% !important;
    }
    
    /* Carousel Indicators Mobile */
    .carousel-indicators {
        bottom: 20px !important;
        margin-bottom: 0 !important;
    }
    
    .carousel-indicators [data-bs-target] {
        width: 8px !important;
        height: 8px !important;
        border-radius: 50% !important;
        margin: 0 3px !important;
        background-color: rgba(255, 255, 255, 0.6) !important;
        border: none !important;
    }
    
    .carousel-indicators .active {
        background-color: var(--bs-primary) !important;
        transform: scale(1.2) !important;
    }
}

/* Tablet Responsive (768px - 991px) */
@media (min-width: 768px) and (max-width: 991.98px) {
    .carousel-caption h1 {
        font-size: 3rem !important;
    }
    
    .carousel-caption h4 {
        font-size: 1.1rem !important;
    }
    
    .carousel-caption p {
        font-size: 1rem !important;
    }
    
    .carousel-background-title {
        font-size: 4rem !important;
        letter-spacing: 3px !important;
    }
    
    .navbar-brand h1 {
        font-size: 1.8rem !important;
        letter-spacing: 3px !important;
    }
}

/* Small Mobile Devices (max-width: 480px) */
@media (max-width: 480px) {
    .carousel-caption h1 {
        font-size: 2rem !important;
    }
    
    .carousel-caption h4 {
        font-size: 0.9rem !important;
        letter-spacing: 0.5px !important;
    }
    
    .carousel-caption p {
        font-size: 0.85rem !important;
        -webkit-line-clamp: 3 !important;
    }
    
    .carousel-background-title {
        font-size: 1.8rem !important;
        letter-spacing: 1px !important;
    }
    
    .navbar-brand h1 {
        font-size: 1.3rem !important;
        letter-spacing: 1px !important;
    }
    
    .navbar-brand img {
        max-height: 30px !important;
    }
    
    .carousel-caption .btn {
        padding: 10px 20px !important;
        font-size: 0.85rem !important;
    }
}

/* Landscape Mobile Orientation */
@media (max-height: 500px) and (orientation: landscape) {
    .carousel-header {
        height: 100vh !important;
    }
    
    .carousel-caption .p-3 {
        padding: 10px !important;
    }
    
    .carousel-caption h1 {
        font-size: 1.8rem !important;
        margin-bottom: 10px !important;
    }
    
    .carousel-caption h4 {
        font-size: 0.8rem !important;
        margin-bottom: 8px !important;
    }
    
    .carousel-caption p {
        font-size: 0.75rem !important;
        -webkit-line-clamp: 2 !important;
        margin-bottom: 15px !important;
    }
    
    .carousel-background-title {
        font-size: 1.5rem !important;
    }
}

/* Fix for iOS Safari viewport issues */
@supports (-webkit-touch-callout: none) {
    .carousel-header {
        height: -webkit-fill-available !important;
    }
    
    .carousel-inner .carousel-item {
        height: -webkit-fill-available !important;
    }
    
    .carousel-inner .carousel-item img {
        height: -webkit-fill-available !important;
    }
    
    /* iOS Safari breadcrumb background fix */
    .bg-breadcrumb {
        background-attachment: scroll !important;
        -webkit-background-size: cover !important;
        background-size: cover !important;
    }
}

/* Improve touch interactions */
@media (hover: none) and (pointer: coarse) {
    .carousel-item:hover::before {
        background: rgba(255, 255, 255, 0.5) !important;
    }
    
    .carousel-item:hover .carousel-background-title {
        opacity: 0.3 !important;
        transform: none !important;
    }
    
    .carousel-caption {
        opacity: 1 !important;
        transform: translateY(0) !important;
    }
}

/* Performance optimizations for mobile */
@media (max-width: 768px) {
    .carousel-item img {
        will-change: transform;
        backface-visibility: hidden;
    }
    
    .carousel-background-title {
        will-change: opacity, transform;
        backface-visibility: hidden;
    }
    
    .carousel-caption {
        will-change: opacity, transform;
        backface-visibility: hidden;
    }
}

/* Header Background Fix for Mobile - Non-Index Pages */
@media (max-width: 768px) {
    .bg-breadcrumb {
        background: linear-gradient(rgba(19, 53, 123, 0.6), rgba(19, 53, 123, 0.6)), url(../img/breadcrumb-bg.png) !important;
        background-position: center center !important;
        background-repeat: no-repeat !important;
        background-size: cover !important;
        background-attachment: scroll !important;
        padding: 120px 0 40px 0 !important;
        min-height: 250px !important;
    }
}

/* Additional mobile fixes for breadcrumb header */
@media (max-width: 480px) {
    .bg-breadcrumb {
        padding: 100px 0 30px 0 !important;
        min-height: 200px !important;
    }
    
    .bg-breadcrumb .container {
        padding: 20px 15px !important;
    }
    
    .bg-breadcrumb h3 {
        font-size: 1.8rem !important;
        margin-bottom: 20px !important;
    }
}