/* =========================================================
   LADLI E-RIKSHA
   Responsive Design
   ========================================================= */

/* ---------------------------------------------------------
   TABLET / SMALL LAPTOP
   --------------------------------------------------------- */

@media (max-width: 1024px) {

    :root {
        --container: 94%;
    }

    .hero {
        padding: 70px 0;
    }

    .hero-content {
        gap: 35px;
    }

    .hero-title {
        font-size: 48px;
    }

    .services-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .steps-grid {
        gap: 20px;
    }

}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 768px) {

    body {
        padding-bottom: 76px;
    }

    /* Header */

    .header {
        padding: 12px 0;
    }

    .header-inner {
        min-height: 56px;
    }

    .brand {
        gap: 9px;
    }

    .brand img {
        width: 42px;
        height: 42px;
    }

    .brand-name {
        font-size: 19px;
    }

    .desktop-nav {
        display: none;
    }


    /* Hero */

    .hero {
        padding: 55px 0 50px;
    }

    .hero-content {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 40px;
    }

    .hero-badge {
        margin-left: auto;
        margin-right: auto;
    }

    .hero-title {
        font-size: 42px;
        line-height: 1.1;
    }

    .hero-description {
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    .hero-actions {
        justify-content: center;
        flex-wrap: wrap;
    }

    .hero-visual {
        max-width: 390px;
        width: 100%;
        margin: auto;
    }


    /* Sections */

    .section {
        padding: 65px 0;
    }

    .section-title {
        font-size: 32px;
    }

    .section-description {
        font-size: 15px;
    }


    /* Services */

    .services-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .service-card {
        padding: 25px;
    }


    /* How it works */

    .steps-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .step-card {
        padding: 25px;
    }


    /* CTA */

    .cta {
        padding: 45px 25px;
        text-align: center;
    }

    .cta-content {
        flex-direction: column;
        gap: 25px;
    }

    .cta-actions {
        justify-content: center;
        width: 100%;
    }


    /* Footer */

    .footer {
        text-align: center;
    }

    .footer-content {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .footer-links {
        justify-content: center;
    }


    /* -----------------------------------------------------
       MOBILE BOTTOM NAVIGATION
       ----------------------------------------------------- */

    .mobile-bottom-nav {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;

        width: 100%;
        height: 70px;

        display: grid;
        grid-template-columns: repeat(4, 1fr);

        background: #ffffff;

        border-top: 1px solid #e5e7eb;

        box-shadow: 0 -5px 20px rgba(0, 0, 0, 0.08);

        z-index: 9999;

        padding: 5px 4px;
    }

    .mobile-bottom-nav a {
        position: relative;

        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;

        gap: 4px;

        color: #6b7280;

        text-decoration: none;

        font-size: 11px;
        font-weight: 600;

        transition: all 0.2s ease;
    }

    .mobile-bottom-nav a:hover,
    .mobile-bottom-nav a:active {
        color: var(--primary);
    }

    .mobile-bottom-nav a.active {
        color: var(--primary);
    }


    /* -----------------------------------------------------
       CSS HOME ICON
       ----------------------------------------------------- */

    .nav-icon-home {
        position: relative;

        width: 21px;
        height: 17px;

        border: 2px solid currentColor;
        border-top: none;

        border-radius: 2px;

        margin-top: 5px;
    }

    .nav-icon-home::before {
        content: "";

        position: absolute;

        width: 13px;
        height: 13px;

        border-left: 2px solid currentColor;
        border-top: 2px solid currentColor;

        transform: rotate(45deg);

        left: 2px;
        top: -7px;

        background: #ffffff;
    }

    .nav-icon-home::after {
        content: "";

        position: absolute;

        width: 5px;
        height: 8px;

        border: 2px solid currentColor;
        border-bottom: none;

        left: 6px;
        bottom: 0;
    }


    /* -----------------------------------------------------
       CSS BOOKING / CALENDAR ICON
       ----------------------------------------------------- */

    .nav-icon-booking {
        position: relative;

        width: 21px;
        height: 18px;

        border: 2px solid currentColor;

        border-radius: 4px;
    }

    .nav-icon-booking::before {
        content: "";

        position: absolute;

        left: -2px;
        right: -2px;
        top: 4px;

        border-top: 2px solid currentColor;
    }

    .nav-icon-booking::after {
        content: "";

        position: absolute;

        width: 3px;
        height: 5px;

        background: currentColor;

        left: 4px;
        top: -5px;

        border-radius: 2px;

        box-shadow: 8px 0 0 currentColor;
    }


    /* -----------------------------------------------------
       CSS RIDES / ROUTE ICON
       ----------------------------------------------------- */

    .nav-icon-rides {
        position: relative;

        width: 21px;
        height: 21px;

        border: 2px solid currentColor;

        border-radius: 50%;
    }

    .nav-icon-rides::before {
        content: "";

        position: absolute;

        width: 7px;
        height: 7px;

        border: 2px solid currentColor;

        border-radius: 50%;

        left: 5px;
        top: 5px;
    }

    .nav-icon-rides::after {
        content: "";

        position: absolute;

        width: 5px;
        height: 5px;

        background: currentColor;

        border-radius: 50%;

        left: 6px;
        top: 6px;
    }


    /* -----------------------------------------------------
       CSS PROFILE ICON
       ----------------------------------------------------- */

    .nav-icon-profile {
        position: relative;

        width: 21px;
        height: 21px;

        border: 2px solid currentColor;

        border-radius: 50%;
    }

    .nav-icon-profile::before {
        content: "";

        position: absolute;

        width: 6px;
        height: 6px;

        border: 2px solid currentColor;

        border-radius: 50%;

        left: 5px;
        top: 3px;
    }

    .nav-icon-profile::after {
        content: "";

        position: absolute;

        width: 11px;
        height: 6px;

        border: 2px solid currentColor;
        border-bottom: none;

        border-radius: 8px 8px 0 0;

        left: 3px;
        bottom: 3px;
    }

}


/* ---------------------------------------------------------
   SMALL MOBILE
   --------------------------------------------------------- */

@media (max-width: 480px) {

    body {
        padding-bottom: 74px;
    }

    .container {
        width: 92%;
    }

    .header {
        padding: 10px 0;
    }

    .brand img {
        width: 38px;
        height: 38px;
    }

    .brand-name {
        font-size: 17px;
    }


    /* Hero */

    .hero {
        padding: 42px 0 40px;
    }

    .hero-title {
        font-size: 34px;
    }

    .hero-description {
        font-size: 15px;
        line-height: 1.7;
    }

    .hero-actions {
        flex-direction: column;
        width: 100%;
    }

    .hero-actions .btn {
        width: 100%;
    }

    .hero-visual {
        max-width: 300px;
    }


    /* Sections */

    .section {
        padding: 50px 0;
    }

    .section-title {
        font-size: 28px;
    }

    .section-description {
        font-size: 14px;
    }


    /* Cards */

    .service-card,
    .step-card {
        padding: 22px;
    }


    /* CTA */

    .cta {
        padding: 38px 20px;
        border-radius: 18px;
    }

    .cta-title {
        font-size: 27px;
    }

    .cta-actions {
        flex-direction: column;
        width: 100%;
    }

    .cta-actions .btn {
        width: 100%;
    }


    /* Bottom Navigation */

    .mobile-bottom-nav {
        height: 68px;
    }

    .mobile-bottom-nav a {
        font-size: 10px;
    }

}


/* ---------------------------------------------------------
   VERY SMALL DEVICES
   --------------------------------------------------------- */

@media (max-width: 360px) {

    .brand-name {
        font-size: 16px;
    }

    .hero-title {
        font-size: 30px;
    }

    .section-title {
        font-size: 25px;
    }

    .mobile-bottom-nav a {
        font-size: 9px;
    }

}