/*
=========================================
JB Web Studio - Responsive Styles
=========================================
*/

/* =========================================
   TABLET
========================================= */

@media (max-width: 900px) {

    .projects-grid,
    .featured-grid,
    .services-grid,
    .included-grid,
    .tech-grid,
    .benefits-grid,
    .choose-grid,
    .values-grid,
    .contact-grid,
    .faq-grid,
    .footer-container {
        grid-template-columns: 1fr;
    }

    .footer-container {
        text-align: center;
    }

    .footer-about img {
        margin: 0 auto 25px;
    }

    .footer-bottom {
        flex-direction: column;
        gap: 20px;
    }
}


/* =========================================
   MOBILE
   One navigation block only
========================================= */

@media (max-width: 768px) {

    /* -----------------------------------------
       HEADER / NAVIGATION
    ----------------------------------------- */

    header {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        transform: none !important;
        overflow: visible !important;
        z-index: 99999 !important;
    }

    .navbar {
        position: relative !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;

        width: calc(100% - 20px) !important;
        max-width: none !important;

        margin: 10px auto !important;
        padding: 12px 16px !important;

        box-sizing: border-box !important;

        background: rgba(20, 20, 20, 0.9) !important;

        border: 1px solid rgba(255, 255, 255, 0.08) !important;
        border-radius: 18px !important;

        overflow: visible !important;
    }


    /* LOGO */

    .navbar .logo {
        display: flex !important;
        align-items: center !important;
        flex-shrink: 0 !important;
    }

    .navbar .logo img {
        display: block !important;
        width: 90px !important;
        height: auto !important;
    }


    /* HAMBURGER */

    .navbar .menu-toggle {
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: center !important;

        width: 35px !important;
        height: 35px !important;

        margin-left: auto !important;
        padding: 0 !important;

        gap: 5px !important;

        cursor: pointer !important;

        z-index: 100000 !important;
        flex-shrink: 0 !important;
    }

    .navbar .menu-toggle span {
        display: block !important;

        width: 26px !important;
        height: 3px !important;

        background: #ffffff !important;

        border-radius: 3px !important;

        transition: 0.3s ease !important;
    }


    /* MOBILE MENU */

.navbar .nav-links {
    display: flex !important;

    position: absolute !important;

    top: calc(100% + 12px) !important;
    right: 0 !important;
    left: auto !important;

    width: 260px !important;
    max-width: calc(100vw - 40px) !important;

    margin: 0 !important;
    padding: 10px !important;

    box-sizing: border-box !important;

    flex-direction: column !important;
    align-items: stretch !important;

    gap: 4px !important;

    background: rgba(17, 24, 39, 0.98) !important;

    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: 16px !important;

    list-style: none !important;

    z-index: 99999 !important;

    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(-8px) !important;

    transition:
        opacity 0.25s ease,
        transform 0.25s ease,
        visibility 0.25s ease !important;
}


/* MENU OPEN */

.navbar .nav-links.active {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
}


/* MENU LINKS */

.navbar .nav-links li {
    width: 100% !important;
}

.navbar .nav-links li a {
    display: block !important;

    width: 100% !important;

    padding: 16px 17px !important;

    box-sizing: border-box !important;

    border-radius: 10px !important;

    color: #ffffff !important;

    text-decoration: none !important;

    font-size: 1rem !important;

    transition: 0.2s ease !important;
}

.navbar .nav-links li a:hover {
    background: rgba(59, 130, 246, 0.12) !important;
    color: #3B82F6 !important;
}


/* CURRENT PAGE */

.navbar .nav-links li a.active {
    background: rgba(59, 130, 246, 0.15) !important;
    color: #3B82F6 !important;
}


    /* MENU ITEMS */

    .navbar .nav-links li {
        display: block !important;

        width: 100% !important;

        margin: 0 !important;
        padding: 0 !important;

        list-style: none !important;
    }

    .navbar .nav-links li a {
        display: block !important;

        width: 100% !important;

        margin: 0 !important;
        padding: 13px 20px !important;

        box-sizing: border-box !important;

        color: #ffffff !important;

        text-decoration: none !important;

        font-size: 0.9rem !important;

        text-align: left !important;
    }


    /* HIDE DESKTOP BUTTON */

    .navbar .btn-nav {
        display: none !important;
    }


    /* HAMBURGER → X */

    .navbar .menu-toggle.active span:nth-child(1) {
        transform: translateY(8px) rotate(45deg);
    }

    .navbar .menu-toggle.active span:nth-child(2) {
        opacity: 0;
    }

    .navbar .menu-toggle.active span:nth-child(3) {
        transform: translateY(-8px) rotate(-45deg);
    }


    /* -----------------------------------------
       MAIN HERO
    ----------------------------------------- */

    .hero {
        width: 100% !important;
        max-width: 100% !important;

        box-sizing: border-box !important;

        flex-direction: column;
        text-align: center;

        gap: 40px;

        padding: 140px 20px 80px;

        min-height: auto;

        overflow: hidden !important;
    }

    .hero-left,
    .hero-right {
        width: 100%;
    }

    .hero-right {
        order: -1;

        width: 100% !important;
        max-width: 100% !important;

       overflow: visible !important;
    }

   .hero-right img {
    width: 240px !important;
    max-width: 80% !important;
    height: auto !important;
    margin: auto;
}

    .logo-animation {
        width: 250px;
        max-width: 80%;
        height: auto;
        margin: auto;
    }

    .hero h1 {
        font-size: 2.2rem;
        line-height: 1.2;
        max-width: 100%;
    }

    .hero p,
    .hero-description {
        font-size: 1rem;
        max-width: 100%;
    }

    .hero-buttons {
        flex-direction: column;
        width: 100%;
    }

    .hero-buttons a {
        width: 100%;
        text-align: center;
    }

    .scroll-indicator {
        display: none;
    }


    /* -----------------------------------------
       PAGE HEROES
    ----------------------------------------- */

    .page-hero,
    .about-hero,
    .portfolio-hero,
    .process-hero,
    .contact-hero,
    .legal-hero {
        min-height: auto;
        padding: 140px 5% 60px;
    }

    .page-hero h1,
    .about-hero h1,
    .portfolio-hero h1,
    .process-hero h1,
    .contact-hero h1,
    .legal-hero h1 {
        font-size: 2.2rem;
    }

    .page-hero p {
        font-size: 1rem;
    }


    /* -----------------------------------------
       SECTION HEADINGS
    ----------------------------------------- */

    .section-heading {
        margin-bottom: 50px;
    }

    .section-heading h2 {
        font-size: 2.2rem;
    }


    /* -----------------------------------------
       BROWSER MOCKUPS
    ----------------------------------------- */

    .browser-window,
    .browser,
    .browser-stack {
        width: 100%;
        max-width: 350px;
        height: auto;
        margin: auto;
        box-sizing: border-box;
    }

    .browser-image img,
    .browser-body img,
    .browser-content img {
        width: 100%;
        display: block;
        height: auto;
    }

    .showcase-browser,
    .project-browser {
        width: 100%;
        display: flex;
        justify-content: center;
        overflow: hidden;
    }

    .latest-work,
    .featured-project {
        overflow: hidden;
    }


    /* -----------------------------------------
       HOME - CLIENTS
    ----------------------------------------- */

    .clients .projects-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .clients .project-card {
        padding: 30px 25px;
    }

    .clients .project-card h3 {
        font-size: 1.5rem;
    }

    .clients .project-card img {
        height: 100px;
    }


    /* -----------------------------------------
       HOME - PROCESS
    ----------------------------------------- */

    .process {
        margin: 100px auto;
        padding: 0 20px;
    }

    .process .timeline-item {
        gap: 20px;
        margin-bottom: 50px;
    }

    .process .timeline-content {
        padding: 20px;
    }


    /* -----------------------------------------
       HOME - SERVICES
    ----------------------------------------- */

    .process ~ .services {
        margin: 100px auto;
        padding: 0 20px;
    }

    .process ~ .services .services-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .process ~ .services .service-card {
        padding: 30px;
    }

    .process ~ .services .service-card h3 {
        font-size: 1.4rem;
    }


    /* -----------------------------------------
       HOME - WHY CHOOSE US
    ----------------------------------------- */

    .why-us {
        margin: 100px auto;
        padding: 0 20px;
    }

    .why-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .why-card {
        padding: 30px;
    }

    .why-card h3 {
        font-size: 1.3rem;
    }


    /* -----------------------------------------
       HOME - TESTIMONIALS
    ----------------------------------------- */

    .testimonials {
        margin: 100px auto;
        padding: 0 20px;
    }

    .testimonial-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .testimonial-card {
        padding: 30px;
    }


    /* -----------------------------------------
       HOME - FAQ
    ----------------------------------------- */

    .faq {
        margin: 100px auto;
        padding: 0 20px;
    }

    .faq .faq-question {
        padding: 20px;
    }

    .faq .faq-question h3 {
        font-size: 1rem;
    }

    .faq .faq-answer p {
        padding: 0 20px 20px;
    }

    .faq .faq-item {
        margin-bottom: 15px;
    }


    /* -----------------------------------------
       LATEST WORK
    ----------------------------------------- */

    .project-info {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .info-card {
        padding: 25px;
    }


    /* -----------------------------------------
       FEATURED PROJECT
    ----------------------------------------- */

    .featured-project {
        grid-template-columns: 1fr;
        gap: 40px;
        margin: 100px auto;
        padding: 0 20px;
    }

    .project-features {
        grid-template-columns: 1fr;
    }

    .project-buttons {
        flex-direction: column;
    }

    .project-buttons a {
        width: 100%;
        text-align: center;
    }

    .tech-stack {
        flex-wrap: wrap;
    }

    .project-info h2 {
        font-size: 2rem;
    }


    /* -----------------------------------------
       TRUSTED BY
    ----------------------------------------- */

    .trusted {
        margin: 60px auto;
        padding: 0 20px;
    }

    .trusted-logos {
        grid-template-columns: 1fr;
    }

    .trusted-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .logo-card {
        padding: 25px;
    }


    /* -----------------------------------------
       SERVICES PAGE
    ----------------------------------------- */

    .included {
        padding: 60px 5%;
    }

    .included-item {
        padding: 18px;
    }

    .tech {
        padding: 60px 5%;
    }

    .tech-card {
        padding: 30px 25px;
    }

    .services-cta {
        padding: 60px 5%;
    }

    .services-cta h2 {
        font-size: 2rem;
    }


    /* -----------------------------------------
       PORTFOLIO PAGE
    ----------------------------------------- */

    .portfolio-hero {
        padding: 140px 5% 60px;
    }

    .portfolio-hero h1 {
        font-size: 2.2rem;
    }

    .featured-projects {
        padding: 60px 5%;
    }

    .featured-card img {
        height: 200px;
    }

    .featured-content {
        padding: 20px;
    }

    .selected-projects {
        padding: 60px 5%;
    }

    .project-card {
        padding: 25px;
    }

    .project-card img {
        height: 180px;
    }

    .project-card h3 {
        font-size: 1.5rem;
    }

    .project-content {
        padding: 20px;
    }

    .why-choose {
        padding: 60px 5%;
    }

    .choose-card {
        padding: 30px 25px;
    }

    .portfolio-faq {
        padding: 60px 5%;
    }

    .portfolio-faq .faq-item {
        padding: 25px;
    }

    .portfolio-cta {
        padding: 60px 5%;
    }

    .portfolio-cta h2 {
        font-size: 2rem;
    }

    .faq-item {
        padding: 25px;
    }

    .faq-item h3 {
        font-size: 1.1rem;
    }


    /* -----------------------------------------
       ABOUT PAGE
    ----------------------------------------- */

    .about-hero {
        padding: 140px 5% 60px;
    }

    .about-hero h1 {
        font-size: 2.2rem;
    }

    .our-story {
        padding: 60px 5%;
    }

    .story-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .founder {
        padding: 60px 5%;
    }

    .founder-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .founder-stats {
        justify-content: center;
    }

    .stat {
        min-width: 120px;
    }

    .values {
        padding: 60px 5%;
    }

    .value-card {
        padding: 25px;
    }

    .about-cta {
        padding: 60px 5%;
    }

    .cta-box {
        padding: 40px 25px;
    }

    .cta-box h2 {
        font-size: 2rem;
    }


    /* -----------------------------------------
       PROCESS PAGE
    ----------------------------------------- */

    .process-hero {
        padding: 140px 5% 60px;
    }

    .process-hero h1 {
        font-size: 2rem;
    }

    .process-timeline {
        padding: 60px 5%;
    }

    .process-timeline .timeline-item {
        gap: 20px;
    }

    .process-timeline .timeline-content {
        padding: 20px;
    }

    .process-benefits {
        padding: 60px 5%;
    }

    .benefit-card {
        padding: 25px;
    }

    .pricing-section {
        padding: 60px 5%;
    }

    .pricing-section h2 {
        font-size: 2rem;
    }

    .pricing-card {
        padding: 35px 25px;
    }

    .pricing-icon {
        width: 70px;
        height: 70px;
        font-size: 2rem;
    }

    .pricing-intro {
        font-size: 1.1rem;
    }

    .process-cta {
        padding: 60px 5%;
    }

    .process-cta-box {
        padding: 40px 25px;
    }

    .process-cta-box h2 {
        font-size: 2rem;
    }


    /* -----------------------------------------
       CONTACT PAGE
    ----------------------------------------- */

    .contact-hero {
        padding: 140px 5% 60px;
    }

    .contact-hero h1 {
        font-size: 2rem;
    }

    .contact-info {
        padding: 60px 5%;
    }

    .contact-card {
        padding: 30px 25px;
    }

    .contact-form-section {
        padding: 60px 5%;
    }

    .contact-form {
        grid-template-columns: 1fr;
    }

    .contact-form-wrapper {
        padding: 35px 25px;
    }

    .form-content h2 {
        font-size: 1.6rem;
    }


    /* -----------------------------------------
       LEGAL PAGES
    ----------------------------------------- */

    .legal-hero {
        padding: 140px 5% 60px;
    }

    .legal-hero h1 {
        font-size: 2.2rem;
    }

    .legal-info {
        flex-direction: column;
        align-items: center;
    }

    .legal-card {
        width: 100%;
        max-width: 380px;
    }

    .legal-content {
        padding: 40px 5%;
    }

    .legal-content h2 {
        font-size: 1.5rem;
    }

    .legal-intro {
        padding: 40px 5% 20px;
    }

    .legal-accordion {
        padding: 20px 5% 60px;
    }

    .accordion-header {
        padding: 18px 20px;
        font-size: 1rem;
    }

    .accordion-content p {
        padding: 0 20px 20px;
    }

    .cookie-table {
        font-size: 0.85rem;
    }

    .cookie-table th,
    .cookie-table td {
        padding: 10px;
    }


    /* -----------------------------------------
       COOKIE BANNER
       Kept compact so it fits the phone
    ----------------------------------------- */

    .cookie-banner {
        position: fixed;

        left: 10px;
        right: 10px;
        bottom: 15px;

        width: auto;
        max-width: none;

        margin: 0;
        padding: 18px;

        box-sizing: border-box;
    }

    .cookie-banner.show {
        transform: translateY(0);
    }

    .cookie-text {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .cookie-text h3 {
        max-width: 100%;
    }

    .cookie-text p {
        width: 100%;
        max-width: 100%;
        min-width: 0;

        box-sizing: border-box;

        overflow-wrap: anywhere;
        word-break: normal;
    }

    .cookie-buttons {
        width: 100%;

        display: flex;
        flex-direction: column;

        gap: 10px;

        box-sizing: border-box;
    }

    .cookie-buttons button {
        width: 100%;
        min-width: 0;

        box-sizing: border-box;
    }


    /* -----------------------------------------
       FOOTER
    ----------------------------------------- */

    footer {
        padding: 60px 5% 30px;
        margin-top: 100px;
    }

    .footer-about img {
        width: 160px;
    }

    .footer-about p {
        font-size: 18px;
    }

    .footer-bottom {
        flex-direction: column;
        gap: 20px;
        text-align: center;
    }

    .footer-bottom div {
        flex-wrap: wrap;
        justify-content: center;
    }
}

@media (max-width: 768px) {

    .page-hero,
    .services,
    .included,
    .tech,
    .services-cta {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        overflow-x: hidden;
    }

    .page-hero-content,
    .section-heading,
    .services-grid,
    .included-grid,
    .tech-grid {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .service-card,
    .included-item,
    .tech-card {
        max-width: 100%;
        box-sizing: border-box;
    }
}