/*==================================================
    KESHAVI GRAPHICS
    responsive.css
    Part 1
==================================================*/

/*==========================================
Large Desktop
==========================================*/
@media (min-width:1600px){
    .container{
        max-width:1450px;
    }
    .hero-left h1{
        font-size:82px;
    }
    .hero-right img{
        width:540px;
    }
    .section-title h2{
        font-size:54px;
    }
}

/*==========================================
Desktop
==========================================*/
@media (max-width:1400px){
    .hero-container{
        gap:50px;
    }
    .hero-right img{
        width:420px;
    }
}

/*==========================================
Laptop
==========================================*/
@media (max-width:1200px){
    .navbar{
        width:95%;
    }
    .hero-container{
        grid-template-columns:1fr;
        text-align:center;
    }
    .hero-left{
        order:1;
    }
    .hero-right{
        order:2;
    }
    .hero-right img{
        width:380px;
    }
    .hero-buttons{
        justify-content:center;
    }
    .hero-stats{
        justify-content:center;
    }
    .about-wrapper{
        grid-template-columns:1fr;
    }
    .about-left{
        margin-bottom:40px;
    }
}

/*==========================================
Tablet
==========================================*/
@media (max-width:992px){
    .nav-links{
        display:none;
    }
    .whatsapp-btn{
        display:none;
    }
    .menu-toggle{
        display:flex;
        justify-content:center;
        align-items:center;
    }
    .hero{
        padding-top:130px;
    }
    .hero-left h1{
        font-size:52px;
    }
    .hero-left h2{
        font-size:24px;
    }
    .hero-description{
        margin:auto auto 35px;
    }
    .hero-right img{
        width:340px;
    }
    .section-title h2{
        font-size:36px;
    }
    .experience-box{
        grid-template-columns:1fr;
    }
    .about-features{
        grid-template-columns:1fr;
    }
}

/*==========================================
Mobile
==========================================*/
@media (max-width:768px){
    .navbar{
        height:75px;
    }
    .logo span{
        font-size:22px;
    }
    .logo img{
        width:48px;
    }
    .hero{
        padding-top:110px;
    }
    .hero-container{
        gap:35px;
        display: flex; /* Ensures the flex order works properly */
        flex-direction: column;
    }
    .hero-left h1{
        font-size:42px;
    }
    .hero-left h2{
        font-size:20px;
    }
    .hero-description{
        font-size:15px;
    }
    .hero-buttons{
        flex-direction:column;
    }
    .primary-btn,
    .secondary-btn{
        width:100%;
    }

    /* Pushes all the text, brand name, and stats BELOW the image */
    .hero-left {
        order: 2 !important; 
        height: auto !important; 
    }

    .hero-stats {
        flex-direction: column;
        align-items: center;
        margin-bottom: 50px !important; 
    }
    .hero-stats div {
        width: 100%;
        max-width: 300px;
        margin-bottom: 20px !important;
    }

    /* Pulls the image to the TOP and ensures it is fully visible */
    .hero-right {
        order: 1 !important; 
        margin-top: 80px !important; 
        margin-bottom: 40px !important; 
        position: relative !important;
        transform: none !important;
    }

    .about-right h3{
        font-size:30px;
    }
    .section-title{
        margin-bottom:45px;
    }
    .section-title h2{
        font-size:30px;
    }
}
/*==================================================
END OF PART 1
==================================================*/

/*==================================================
    KESHAVI GRAPHICS
    responsive.css
    Part 2
==================================================*/

/*==========================================
TABLET (991px)
==========================================*/
@media (max-width:991px){
    /*==============================
    SERVICES
    ==============================*/
    .service-grid{
        grid-template-columns:repeat(2,1fr);
        gap:25px;
    }
    .service-card{
        padding:35px 25px;
    }
    /*==============================
    PORTFOLIO
    ==============================*/
    .portfolio-grid{
        grid-template-columns:repeat(2,1fr);
    }
    .portfolio-filter{
        justify-content:center;
    }
    .portfolio-search{
        width:100%;
    }
    /*==============================
    REVIEW
    ==============================*/
    .review-grid{
        grid-template-columns:1fr;
    }
    .review-form-container{
        padding:35px;
    }
    .form-row{
        grid-template-columns:1fr;
    }
    /*==============================
    CONTACT
    ==============================*/
    .contact-wrapper{
        grid-template-columns:repeat(2,1fr);
    }
    /*==============================
    FOOTER
    ==============================*/
    .footer-top{
        grid-template-columns:repeat(2,1fr);
    }
}

/*==========================================
MOBILE (768px)
==========================================*/
@media (max-width:768px){
    /*==============================
    MOBILE MENU
    ==============================*/
    .mobile-menu {
        position: fixed;
        top: 0;
        left: -100%; 
        width: 300px;
        height: 100vh;
        background: rgba(255, 255, 255, 0.85); 
        backdrop-filter: blur(15px); 
        -webkit-backdrop-filter: blur(15px);
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        padding-top: 100px;
        transition: 0.5s cubic-bezier(0.25, 0.8, 0.25, 1); 
        z-index: 9999;
        box-shadow: 10px 0 30px rgba(0,0,0,0.1);
    }
    .mobile-menu.active {
        left: 0; 
    }
    .mobile-menu a{
        padding:20px 35px;
        font-size:18px;
        font-weight:600;
    }
    /*==============================
    OVERLAY
    ==============================*/
    .menu-overlay{
        position:fixed;
        inset:0;
        background:rgba(0,0,0,.55);
        opacity:0;
        visibility:hidden;
        transition:.35s;
        z-index:9998;
    }
    .menu-overlay.active{
        opacity:1;
        visibility:visible;
    }
    /*==============================
    SERVICES
    ==============================*/
    .service-grid{
        grid-template-columns:1fr;
    }
    /*==============================
    PORTFOLIO
    ==============================*/
    .portfolio-grid{
        grid-template-columns:1fr;
    }
    .portfolio-card{
        max-width:420px;
        margin:auto;
    }
    .portfolio-filter{
        gap:12px;
    }
    .filter-btn{
        padding:10px 18px;
        font-size:14px;
    }
    /*==============================
    LIGHTBOX
    ==============================*/
    .lightbox-content{
        grid-template-columns:1fr;
    }
    .lightbox-image img{
        height:300px;
    }
    .lightbox-info{
        padding:30px;
    }
    /*==============================
    CONTACT
    ==============================*/
    .contact-wrapper{
        grid-template-columns:1fr;
    }
    /*==============================
    FOOTER
    ==============================*/
    .footer-top{
        grid-template-columns:1fr;
        text-align:center;
    }
    .social-icons{
        justify-content:center;
    }
    .footer-about img{
        margin:auto;
        margin-bottom:20px;
    }
}

/*==========================================
SMALL PHONES
==========================================*/
@media (max-width:576px){
    section{
        padding:70px 0;
    }
    .section-title h2{
        font-size:28px;
    }
    .hero-left h1{
        font-size:36px;
    }
    .hero-left h2{
        font-size:18px;
    }
    .hero-description{
        font-size:15px;
    }
    .hero-right img{
        width:280px;
    }
    .about-right h3{
        font-size:26px;
    }
    .experience-box{
        gap:18px;
    }
    .service-card{
        padding:30px 22px;
    }
    .review-form-container{
        padding:25px;
    }
    .rating-card{
        width:100%;
    }
    .contact-card{
        padding:35px 25px;
    }
}

/*==========================================
EXTRA SMALL
==========================================*/
@media (max-width:400px){
    .logo span{
        font-size:18px;
    }
    .hero-left h1{
        font-size:30px;
    }
    .hero-right img{
        width:230px;
    }
    .primary-btn,
    .secondary-btn{
        font-size:14px;
        padding:14px;
    }
    .hero-stats h3{
        font-size:28px;
    }
}