/* Responsive Styles - Mobile First Approach */

/* Mobile Styles (Base - 320px and up) */
.container-custom {
    padding: 0 var(--spacing-md);
}

/* Small devices (640px and up) */
@media (min-width: 640px) {
    .container-custom {
        padding: 0 var(--spacing-lg);
    }

    .grid-cols-sm-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .grid-cols-sm-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Medium devices (768px and up) - Tablets */
@media (min-width: 768px) {
    .container-custom {
        padding: 0 var(--spacing-xl);
    }

    .grid-cols-md-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .grid-cols-md-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .grid-cols-md-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .section {
        padding: var(--spacing-3xl) 0;
    }

    .section-title {
        font-size: var(--font-size-4xl);
    }

    /* Hide mobile menu on desktop */
    .mobile-menu-toggle {
        display: none;
    }
}

/* Large devices (1024px and up) - Desktops */
@media (min-width: 1024px) {
    .grid-cols-lg-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .grid-cols-lg-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .grid-cols-lg-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .section {
        padding: 4rem 0;
    }
}

/* Extra large devices (1280px and up) */
@media (min-width: 1280px) {
    .container-custom {
        max-width: 1280px;
    }

    .grid-cols-xl-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .grid-cols-xl-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* 2XL devices (1536px and up) */
@media (min-width: 1536px) {
    .container-custom {
        max-width: 1400px;
    }
}

/* Mobile-specific utilities */
@media (max-width: 767px) {
    .hide-mobile {
        display: none !important;
    }

    .show-mobile {
        display: block !important;
    }

    /* Stack elements on mobile */
    .mobile-stack {
        flex-direction: column;
    }

    /* Full width on mobile */
    .mobile-full {
        width: 100%;
    }

    /* Smaller padding on mobile */
    .section {
        padding: var(--spacing-2xl) 0;
    }

    /* Adjust font sizes for mobile */
    h1 {
        font-size: var(--font-size-3xl);
    }

    h2 {
        font-size: var(--font-size-2xl);
    }

    h3 {
        font-size: var(--font-size-xl);
    }

    .section-title {
        font-size: var(--font-size-2xl);
        margin-bottom: var(--spacing-lg);
    }

    .section-subtitle {
        font-size: var(--font-size-base);
        margin-bottom: var(--spacing-xl);
    }
}

/* Desktop-specific utilities */
@media (min-width: 768px) {
    .hide-desktop {
        display: none !important;
    }

    .show-desktop {
        display: block !important;
    }
}

/* Responsive images */
img {
    max-width: 100%;
    height: auto;
}

/* Responsive embeds */
.embed-responsive {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
}

.embed-responsive::before {
    display: block;
    content: "";
}

.embed-responsive-16by9::before {
    padding-top: 56.25%;
}

.embed-responsive-4by3::before {
    padding-top: 75%;
}

.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* Touch-friendly tap targets */
@media (max-width: 767px) {

    a,
    button,
    input[type="submit"],
    input[type="button"] {
        min-height: 44px;
        min-width: 44px;
    }
}
/* Fix for WooCommerce cart and checkout block layout on mobile/small screens */
@media (max-width: 991px) {

    .wc-block-components-sidebar-layout.wc-block-cart,
    .wc-block-components-sidebar-layout.wc-block-checkout {
        display: flex !important;
        flex-direction: column !important;
    }

    .wc-block-components-sidebar-layout.wc-block-cart .wc-block-components-main,
    .wc-block-components-sidebar-layout.wc-block-cart .wc-block-components-sidebar,
    .wc-block-components-sidebar-layout.wc-block-checkout .wc-block-components-main,
    .wc-block-components-sidebar-layout.wc-block-checkout .wc-block-components-sidebar {
        width: 100% !important;
        max-width: 100% !important;
        flex: 1 1 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .wc-block-components-sidebar-layout.wc-block-cart .wc-block-components-sidebar,
    .wc-block-components-sidebar-layout.wc-block-checkout .wc-block-components-sidebar {
        margin-top: 2rem !important;
        /* Add some spacing between main and sidebar */
    }
}
