/* ========================================
   RESPONSIVE UTILITIES - All Media Queries
======================================== */

/* Mobile-first padding */
.p-responsive {
    padding: var(--spacing-md);
}

@media (min-width: 768px) {
    .p-responsive {
        padding: var(--spacing-lg);
    }
}

@media (min-width: 1024px) {
    .p-responsive {
        padding: var(--spacing-xl);
    }
}

/* Responsive font sizes */
.text-responsive-sm {
    font-size: var(--font-size-sm);
}

@media (min-width: 768px) {
    .text-responsive-sm {
        font-size: var(--font-size-base);
    }
}

.text-responsive-base {
    font-size: var(--font-size-base);
}

@media (min-width: 768px) {
    .text-responsive-base {
        font-size: var(--font-size-lg);
    }
}

.text-responsive-lg {
    font-size: var(--font-size-lg);
}

@media (min-width: 768px) {
    .text-responsive-lg {
        font-size: var(--font-size-xl);
    }
}

@media (min-width: 1024px) {
    .text-responsive-lg {
        font-size: var(--font-size-2xl);
    }
}

.text-responsive-xl {
    font-size: var(--font-size-xl);
}

@media (min-width: 768px) {
    .text-responsive-xl {
        font-size: var(--font-size-2xl);
    }
}

@media (min-width: 1024px) {
    .text-responsive-xl {
        font-size: var(--font-size-3xl);
    }
}

/* Responsive gap */
.gap-responsive {
    gap: var(--spacing-md);
}

@media (min-width: 768px) {
    .gap-responsive {
        gap: var(--spacing-lg);
    }
}

@media (min-width: 1024px) {
    .gap-responsive {
        gap: var(--spacing-xl);
    }
}

/* Responsive grid columns */
.grid-responsive {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-md);
}

@media (min-width: 640px) {
    .grid-responsive {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-lg);
    }
}

@media (min-width: 1024px) {
    .grid-responsive {
        grid-template-columns: repeat(3, 1fr);
        gap: var(--spacing-xl);
    }
}

@media (min-width: 1280px) {
    .grid-responsive {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* Responsive flex direction */
.flex-responsive {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

@media (min-width: 768px) {
    .flex-responsive {
        flex-direction: row;
        gap: var(--spacing-lg);
    }
}

/* Show/hide at specific breakpoints */
@media (max-width: 639px) {
    .hide-mobile {
        display: none;
    }
}

@media (min-width: 640px) {
    .show-mobile {
        display: none;
    }
}

@media (max-width: 767px) {
    .hide-sm {
        display: none;
    }
}

@media (min-width: 768px) {
    .show-sm {
        display: none;
    }
}

@media (max-width: 1023px) {
    .hide-md {
        display: none;
    }
}

@media (min-width: 1024px) {
    .show-md {
        display: none;
    }
}

@media (max-width: 1279px) {
    .hide-lg {
        display: none;
    }
}

@media (min-width: 1280px) {
    .show-lg {
        display: none;
    }
}

/* Text alignment responsive */
.text-center-mobile {
    text-align: center;
}

@media (min-width: 768px) {
    .text-center-mobile {
        text-align: left;
    }
}

/* Aspect ratios */
.aspect-ratio-16-9 {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
}

.aspect-ratio-16-9 > * {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.aspect-ratio-4-3 {
    position: relative;
    padding-bottom: 75%;
    height: 0;
    overflow: hidden;
}

.aspect-ratio-4-3 > * {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.aspect-ratio-1-1 {
    position: relative;
    padding-bottom: 100%;
    height: 0;
    overflow: hidden;
}

.aspect-ratio-1-1 > * {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Max width helpers */
.max-w-sm {
    max-width: var(--container-sm);
    margin-left: auto;
    margin-right: auto;
}

.max-w-md {
    max-width: var(--container-md);
    margin-left: auto;
    margin-right: auto;
}

.max-w-lg {
    max-width: var(--container-lg);
    margin-left: auto;
    margin-right: auto;
}

.max-w-xl {
    max-width: var(--container-xl);
    margin-left: auto;
    margin-right: auto;
}

/* Responsive order */
.order-mobile-first {
    order: -1;
}

@media (min-width: 768px) {
    .order-mobile-first {
        order: 0;
    }
}

.order-mobile-last {
    order: 1;
}

@media (min-width: 768px) {
    .order-mobile-last {
        order: 0;
    }
}

/* Responsive width */
.w-full-mobile {
    width: 100%;
}

@media (min-width: 768px) {
    .w-full-mobile {
        width: auto;
    }
}

/* Touch friendly sizes for mobile */
@media (max-width: 767px) {
    .touch-target {
        min-height: 44px;
        min-width: 44px;
    }
}

/* Touch Device Improvements */
@media (hover: none) and (pointer: coarse) {
    button,
    .btn,
    input[type="submit"],
    a.button {
        min-height: 44px;
        min-width: 44px;
    }
}

