/* ===================================================================================================
## RESPONSIVE DESIGN
=================================================================================================== */

/* ===================================================================================================
## DESKTOP PICCOLO (< 1500px)
=================================================================================================== */
@media screen and (max-width: 1499px) {
    :root {
        /* font sizes */
        --h0: 90px;
        --h1: 58px;
        --h2: 38px;
        --h3: 24px;
        --h4o3: 16px;
        --h4: 15px;
        --h5: 13px;

        /* sizes */
        --maxwidth: 1200px;
    }

}

/* ===================================================================================================
## TABLET (768px - 1199px)
=================================================================================================== */
@media screen and (max-width: 1199px) {
    :root {
        /* font sizes */
        --h0: 90px;
        --h1: 40px;
        --h2: 30px;
        --h3: 18px;
        --h4o3: 16px;
        --h4: 12px;
        --h5: 12px;

        /* sizes */
        --maxwidth: 768px;
    }

    #p5-logo,
    #navbar
    {
        display: none !important;
    }

    .navbar-link .lucide {
        width: 2cap;
    }

    
    #sidebar {
        display: flex !important;
        padding-inline: 10px;
    }

    #offcanvas .navbar-link {
        font-size: var(--h3);
    }
    
    
    /* home */

    #main-supercontainer {
        padding-inline: 20px;
    }
    .limited-container {
        padding-inline: 20px;
    }

    #main-hero {
        padding: 100px 40px;
    }

    /* selector */

    #main-services-selector {
        justify-content: start;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .selector {
        min-width: max-content;
    }

    .selector-list {
        justify-content: start;
        width: 100%;
    }

    /* card */

    #main-services {
        padding: 20px;
    }

    .card {
        gap: 20px;
        min-width: 100%;
        padding: 30px 30px 40px;
        box-sizing: border-box;
    }

    .service-explains-view {
        flex-direction: column !important;
    }

}

/* ===================================================================================================
## MOBILE (< 768px)
=================================================================================================== */
@media screen and (max-width: 767px) {
    
    :root {
        /* font sizes */
        --h0: 60px;
        --h1: 52px;
        --h2: 32px;
        --h3: 22px;
        --h4o3: 16px;
        --h4: 12px;
        --h5: 12px;

        /* sizes */
        --maxwidth: 478px;
    }

    #p5-logo,
    #navbar
    {
        display: none !important;
    }

    .navbar-link .lucide {
        width: 2cap;
    }

    
    #sidebar {
        display: flex !important;
        padding-inline: 10px;
    }

    #offcanvas .navbar-link {
        font-size: var(--h3);
    }
    
    
    /* home */

    .primary-link, .secondary-link, .active-link {
        min-width: max-content;
    }

    #main-supercontainer {
        padding-inline: 10px;
    }
    .limited-container {
        padding-inline: 10px;
    }

    #main-hero {
        padding: 100px 30px;
    }

    .items-union {
        flex-wrap: wrap;
    }

    .items-union.vertical.medium {
        max-width: 100%;
    }

    /* selector */

    #main-services-selector {
        justify-content: start;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .selector {
        min-width: max-content;
    }

    .selector-list {
        justify-content: start;
        width: 100%;
    }

    /* card */

    #main-services {
        padding: 20px;
    }

    .card {
        gap: 20px;
        min-width: 100%;
        padding: 30px 30px 40px;
        box-sizing: border-box;
    }

    .service-explains-view {
        flex-direction: column !important;
    }

    .card.short {
        min-width: 100%;
    }

    /* footer */

    .footer-main-container {
        padding: 20px;
    }

    .footer-block {
        flex-direction: column;
        gap: 20px;
    }
    .footer-block .items-union.vertical.medium {
        min-width: 45%;
    }

    /* grid */

    .grid-block.full {
        padding: 20px;
        padding-block: 40px;
    }

    #testimonials-supercontainer .grid-block.first {
        padding-block: 80px;
    }

    #testimonials-supercontainer .card.short {
        min-height: fit-content;
        gap: 30px;
    }

    /* badge */

    .badge .items-union.medium{
        flex-direction: column;
        justify-content: start; align-items: start;
    }


}

/* ===================================================================================================
## MOBILE PICCOLO (< 480px)
=================================================================================================== */
@media screen and (max-width: 479px) {


    
    :root {
        /* font sizes */
        --h0: 60px;
        --h1: 45px;
        --h2: 26px;
        --h3: 18px;
        --h4o3: 14px;
        --h4: 12px;
        --h5: 12px;

        /* sizes */
        --maxwidth: 380px;
    }

    #navbar,
    #main-hero .subtitle, #main-hero .mini-title
    {
        display: none !important;
    }

    #p5-logo {
        height: 300px; width: 300px;
        display: flex !important;
    }
    #defaultCanvas1, #defaultCanvas0 {
        height: 300px !important; width: 300px !important;
    }

    .navbar-link .lucide {
        width: 2cap;
    }

    
    #sidebar {
        display: flex !important;
        padding-inline: 10px;
    }

    #offcanvas .navbar-link {
        font-size: var(--h3);
    }
    
    
    /* home */

    .primary-link, .secondary-link, .active-link {
        min-width: max-content;
    }

    #main-supercontainer {
        padding-inline: 10px;
    }
    .limited-container {
        padding-inline: 10px;
    }

    #main-hero {
        flex-direction: column-reverse;
        padding: 100px 20px;
    }

    .items-union {
        flex-wrap: wrap;
    }

    .items-union.vertical.medium {
        max-width: 100%;
    }

    /* selector */

    #main-services-selector {
        justify-content: start;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .selector {
        min-width: max-content;
    }

    .selector-list {
        justify-content: start;
        width: 100%;
    }

    /* card */

    #main-services {
        padding: 10px;
    }

    .card {
        gap: 40px;
        min-width: 100%;
        padding: 30px 30px 40px;
        box-sizing: border-box;
    }

    .card.restricted {
        padding: 60px 25px;
    }

    .service-explains-view {
        flex-direction: column !important;
    }

    .card.short {
        min-width: 100%;
    }

    /* footer */

    .footer-main-container {
        padding: 20px;
    }

    .footer-block {
        flex-direction: column;
        gap: 20px;
    }
    .footer-block .items-union.vertical.medium {
        min-width: 45%;
    }

    /* grid */

    .grid-block.full {
        padding: 20px;
        padding-block: 40px;
    }

    #testimonials-supercontainer .grid-block.first {
        padding-block: 80px;
    }

    #testimonials-supercontainer .card.short {
        min-height: fit-content;
        gap: 30px;
    }

    /* badge */

    .badge .items-union.medium{
        flex-direction: column;
        justify-content: start; align-items: start;
    }

    .items-union.badge-union {
        justify-content: center; align-items: center;
        padding: 60px 15px;
        gap: 10px;
    }



}

/* ===================================================================================================
## UTILITY CLASSES RESPONSIVE
=================================================================================================== */

/* Hide elements on specific breakpoints */
@media screen and (max-width: 1199px) {
    .desktop-only {
        display: none !important;
    }
}

@media screen and (min-width: 1200px) {
    .mobile-only {
        display: none !important;
    }
}

/* Text size adjustments */
@media screen and (max-width: 767px) {
    .text-responsive {
        font-size: var(--text-size);
    }
    
    .title-responsive {
        font-size: var(--title-size);
    }
}

/* Spacing adjustments */
@media screen and (max-width: 767px) {
    .spacing-responsive {
        gap: var(--small-gap);
    }
    
    .padding-responsive {
        padding: var(--container-padding);
    }
}
