/* Responsive Styles */

/* Tablet & Smaller Desktop Adjustments */
@media (max-width: 992px) {
    /* General */
    .container {
        padding: 0 var(--padding-sm);
    }

    /* Header */
    .main-nav .container {
        flex-wrap: wrap;
    }

    .logo {
        flex-grow: 1;
    }

    .nav-menu {
        display: none; /* Hide on smaller screens, toggle with JS */
        flex-direction: column;
        width: 100%;
        background-color: var(--white-color);
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
        position: absolute;
        top: 70px; /* Below header */
        left: 0;
        padding: 10px 0;
        z-index: 99; /* Ensure nav menu is above other content when open */
    }

    .nav-menu.active {
        display: flex;
    }

    .nav-menu li {
        width: 100%;
        text-align: center;
    }

    .nav-menu li a {
        padding: 10px var(--padding-md);
        border-bottom: 1px solid var(--border-color);
    }
    .nav-menu li:last-child a {
        border-bottom: none;
    }

    .has-dropdown .dropdown-menu {
        position: static; /* Stack dropdown items */
        box-shadow: none;
        min-width: unset;
        padding: 0;
        margin-top: 0;
        border-top: 1px solid var(--border-color);
    }

    .dropdown-menu li a {
        padding-left: var(--padding-lg); /* Indent dropdown items */
    }

    .menu-toggle {
        display: block; /* Show hamburger */
    }

    .nav-actions .btn {
        display: none; /* Hide inquire button from header on small screens if desired, relies on modal trigger */
    }
    .nav-actions .search-toggle {
        margin-left: auto; /* Push search to right if button is hidden */
    }

    /* Hero Section */
    .hero-section {
        min-height: 550px; /* Ensure a minimum height but allow it to grow */
        display: flex; /* Use flexbox for its direct children */
        flex-direction: column; /* Stack main content and side content vertically */
    }

    .hero-main-content {
        flex-direction: column; /* Stack main and side content explicitly */
        width: 100%; /* Take full width */
        flex-grow: 1; /* Allow it to grow */
    }

    .hero-slider {
        flex: 1; /* Take available space */
        height: auto; /* Allow content to define height */
        min-height: 350px; /* Ensure some height for the main slider */
    }

    .hero-text {
        left: 5%; /* Adjust positioning */
        top: 40%;
        transform: translateY(-40%);
        font-size: 1.2rem;
    }
    .hero-text h1 {
        font-size: 2.5rem;
    }
    .hero-text .lead-text {
        font-size: 1rem;
    }

    .hero-side-content {
        flex-basis: auto; /* Auto height */
        flex-direction: row; /* Side items side-by-side */
        height: auto; /* Allow content to define height */
        min-height: 200px; /* Ensure a minimum height for the side section */
        border-top: 1px solid rgba(255, 255, 255, 0.2);
        display: flex; /* Enable flexbox for inner side items */
        align-items: stretch; /* Make items stretch to fill available height */
        justify-content: center; /* Center items horizontally */
    }

    .hero-side-content .side-item {
        flex: 1; /* Each side item takes equal space */
        font-size: 1.2rem;
        position: relative; /* Crucial for absolute positioning of img/overlay */
        overflow: hidden; /* Hide anything outside */
        height: 100%; /* Ensure side-item fills its parent's height */
        display: flex; /* Use flexbox for content within side-item */
        flex-direction: column;
        justify-content: center; /* Center text vertically */
        align-items: center; /* Center text horizontally */
        text-align: center;
    }
    .hero-side-content .side-item:first-child {
        border-bottom: none; /* Remove vertical border */
        border-right: 1px solid rgba(255, 255, 255, 0.2); /* Add horizontal border */
    }
    
    .hero-side-content .side-item img.side-item-img {
        position: absolute; /* Position image absolutely */
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        z-index: 1; /* Place image behind overlay */
    }

    .hero-side-content .side-item .overlay {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: var(--overlay-color);
        z-index: 2; /* Place overlay over image */
    }

    .hero-side-content .side-item p {
        position: relative; /* Position text over overlay */
        z-index: 3; /* Place text above overlay */
        color: var(--white-color);
        margin: 0; /* Remove default paragraph margin */
        padding: var(--padding-sm); /* Add some padding for text */
    }


    /* Grids */
    .usp-grid,
    .stats-grid,
    .tour-grid,
    .tour-type-grid,
    .gallery-grid,
    .blog-grid,
    .guides-grid,
    .usp-grid-8-points {
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        gap: var(--padding-sm);
    }

    /* Footer */
    .footer-columns {
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    }

    .modal-content {
        width: 95%; /* Make modal wider on smaller screens */
        padding: var(--padding-md);
    }
}

/* Mobile Adjustments (768px and below) */
@media (max-width: 768px) {
    /* General */
    h1 {
        font-size: 2.8rem;
    }
    h2 {
        font-size: 2rem;
        margin-bottom: var(--margin-md);
    }
    h3 {
        font-size: 1.5rem;
    }
    .section-padding {
        padding: var(--padding-md) 0;
    }

    /* Hero */
    .hero-section {
        min-height: 450px; /* Adjust min height for smaller mobiles */
    }
    .hero-text h1 {
        font-size: 2rem; /* Smaller hero headline */
    }
    .hero-text .lead-text {
        font-size: 0.9rem;
    }
    .hero-side-content .side-item {
        font-size: 1rem;
    }
    
    .hero-side-content {
        flex-direction: column; /* Stack side items vertically on very small screens */
        min-height: 150px; /* Ensure minimum height for stacked side content */
    }

    .hero-side-content .side-item:first-child {
        border-right: none; /* Remove right border when stacking vertically */
        border-bottom: 1px solid rgba(255, 255, 255, 0.2); /* Add bottom border between stacked items */
    }

    .hero-side-content .side-item {
        height: 100px; /* Give a fixed height to side items on very small screens, or make it fluid based on content */
        min-height: 100px; /* Ensure a minimum height for stacked side items */
    }


    /* Grids - often go single column or 2 column for very small */
    .usp-grid,
    .stats-grid,
    .tour-grid,
    .tour-type-grid,
    .gallery-grid,
    .blog-grid,
    .guides-grid,
    .usp-grid-8-points {
        grid-template-columns: 1fr; /* Single column layout for most content on mobile */
        gap: var(--padding-md); /* Increase gap between items for better separation */
    }

    .tour-card, .blog-post-card, .guide-card, .usp-item, .stat-item, .type-card, .faq-item {
        margin-bottom: var(--margin-md); /* Add consistent bottom margin */
    }

    /* Adjust specific components for mobile */
    .btn {
        padding: 10px 20px;
        font-size: 0.95rem;
    }
    .btn-small {
        font-size: 0.85rem;
    }

    .testimonial-item {
        min-width: 280px; /* Ensure a decent minimum width */
    }

    /* Footer */
    .footer-columns {
        grid-template-columns: 1fr; /* Stack footer columns */
        text-align: center;
    }
    .footer-col.about-col {
        margin-bottom: var(--padding-md);
    }
    .social-links {
        justify-content: center; /* Center social icons */
    }
    .footer-col ul {
        padding-left: 0;
    }

    /* WhatsApp button */
    .whatsapp-float {
        width: 50px;
        height: 50px;
        bottom: 20px;
        right: 20px;
        font-size: 25px;
    }
    .whatsapp-float img {
        width: 30px;
        height: 30px;
    }
}

/* Further adjustments for very small mobile devices */
@media (max-width: 480px) {
    h1 {
        font-size: 2.2rem;
    }
    .hero-text {
        left: 5%;
        top: 35%; /* Adjust for smaller screens */
    }
    .hero-text h1 {
        font-size: 1.8rem;
    }
    .hero-text .lead-text {
        font-size: 0.85rem;
    }
    .hero-side-content .side-item {
        font-size: 0.9rem;
    }

    .stat-number {
        font-size: 2rem;
    }
}