/* Container */
.container {
    width: 100%;
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: 0 var(--container-padding-sm);
}

@media (min-width: 1024px) {
    .container {
        padding: 0 var(--container-padding-lg);
    }
}

/* Flexbox Utilities */
.flex {
    display: flex;
}

.flex-col {
    flex-direction: column;
}

.flex-row {
    flex-direction: row;
}

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

.items-center {
    align-items: center;
}

.items-start {
    align-items: flex-start;
}

.items-end {
    align-items: flex-end;
}

.justify-center {
    justify-content: center;
}

.justify-between {
    justify-content: space-between;
}

.justify-end {
    justify-content: flex-end;
}

.gap-2 {
    gap: var(--spacing-sm);
}

.gap-4 {
    gap: var(--spacing-md);
}

.gap-6 {
    gap: var(--spacing-lg);
}

.gap-8 {
    gap: var(--spacing-xl);
}

.gap-9 {
    gap: 2.25rem;
}

/* Grid System */
.grid {
    display: grid;
}

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

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

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

@media (min-width: 640px) {
    .sm\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .md\:flex-row {
        flex-direction: row;
    }
}

@media (min-width: 1024px) {
    .lg\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lg\:flex-row {
        flex-direction: row;
    }

    .lg\:w-1\/2 {
        width: 50%;
    }

    .lg\:gap-20 {
        gap: var(--spacing-4xl);
    }
}

/* Section Spacing */
.section {
    padding: var(--spacing-4xl) 0;
}

@media (min-width: 1024px) {
    .section {
        padding: var(--spacing-5xl) 0;
    }
}

.py-20 {
    padding-top: var(--spacing-4xl);
    padding-bottom: var(--spacing-4xl);
}

.py-28 {
    padding-top: var(--spacing-5xl);
    padding-bottom: var(--spacing-5xl);
}

.py-12 {
    padding-top: var(--spacing-3xl);
    padding-bottom: var(--spacing-3xl);
}

.px-6 {
    padding-left: var(--spacing-md);
    padding-right: var(--spacing-md);
}

.px-20 {
    padding-left: var(--container-padding-lg);
    padding-right: var(--container-padding-lg);
}

/* Width Utilities */
.w-full {
    width: 100%;
}

.w-1\/2 {
    width: 50%;
}

.h-full {
    height: 100%;
}

.min-h-screen {
    min-height: 100vh;
}

/* Max Width */
.max-w-3xl {
    max-width: 48rem;
}

.max-w-4xl {
    max-width: 56rem;
}

.max-w-xl {
    max-width: 36rem;
}

.mx-auto {
    margin-left: auto;
    margin-right: auto;
}

/* Position Utilities */
.relative {
    position: relative;
}

.absolute {
    position: absolute;
}

.fixed {
    position: fixed;
}

.z-0 {
    z-index: 0;
}

.z-10 {
    z-index: 10;
}

.z-50 {
    z-index: 50;
}

/* Display Utilities */
.hidden {
    display: none;
}

.block {
    display: block;
}

.inline-block {
    display: inline-block;
}

.inline-flex {
    display: inline-flex;
}

@media (min-width: 768px) {
    .md\:flex {
        display: flex;
    }

    .md\:hidden {
        display: none;
    }
}

@media (min-width: 1024px) {
    .lg\:block {
        display: block;
    }

    .lg\:hidden {
        display: none;
    }
}

/* Overflow */
.overflow-x-hidden {
    overflow-x: hidden;
}

/* Aspect Ratio */
.aspect-\[3\/4\] {
    aspect-ratio: 3 / 4;
}

.aspect-\[4\/3\] {
    aspect-ratio: 4 / 3;
}

/* Responsive Margins */
.mb-1 {
    margin-bottom: var(--spacing-xs);
}

.mb-2 {
    margin-bottom: var(--spacing-sm);
}

.mb-3 {
    margin-bottom: var(--spacing-md);
}

.mb-4 {
    margin-bottom: var(--spacing-md);
}

.mb-6 {
    margin-bottom: var(--spacing-lg);
}

.mb-8 {
    margin-bottom: var(--spacing-xl);
}

.mb-12 {
    margin-bottom: var(--spacing-2xl);
}

.mb-16 {
    margin-bottom: var(--spacing-3xl);
}

.mt-2 {
    margin-top: var(--spacing-sm);
}

.mt-4 {
    margin-top: var(--spacing-md);
}

.mt-16 {
    margin-top: var(--spacing-4xl);
}

.mt-20 {
    margin-top: var(--spacing-4xl);
}

/* Additional spacing utilities */
.py-12 {
    padding-top: var(--spacing-3xl);
    padding-bottom: var(--spacing-3xl);
}

.mb-16 {
    margin-bottom: var(--spacing-4xl);
}

/* Size utilities */
.size-6 {
    width: var(--size-6);
    height: var(--size-6);
}

/* Max width utilities */
.max-w-xl {
    max-width: 36rem;
}

.max-w-4xl {
    max-width: 56rem;
}

/* Text opacity utilities */
.text-white\/90 {
    color: var(--color-white-90);
}

.text-white\/80 {
    color: var(--color-white-80);
}

.text-white\/50 {
    color: var(--color-white-50);
}

/* Material Symbols with !important override */
.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
    font-size: 24px;
    line-height: 1;
    user-select: none;
    display: inline-block;
}

.material-symbols-outlined.\\!text-2xl {
    font-size: var(--font-size-2xl) !important;
}

/* Font weight utility */
.font-bold {
    font-weight: var(--font-weight-bold);
}

