/**
 * Utility Classes
 * Reusable utility classes for common patterns
 */

/* Display utilities */
.hidden {
    display: none !important;
}

.block {
    display: block !important;
}

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

.flex {
    display: flex !important;
}

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

/* Screen reader only (accessibility) */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* No scroll (when menu is open) */
body.no-scroll {
    overflow: hidden;
    height: 100vh;
}

/* Text utilities */
.text-center {
    text-align: center !important;
}

.text-left {
    text-align: left !important;
}

.text-right {
    text-align: right !important;
}

/* Spacing utilities */
.mt-0 { margin-top: 0 !important; }
.mt-1 { margin-top: var(--wp--preset--spacing--30) !important; }
.mt-2 { margin-top: var(--wp--preset--spacing--50) !important; }
.mt-3 { margin-top: var(--wp--preset--spacing--60) !important; }
.mt-4 { margin-top: var(--wp--preset--spacing--80) !important; }

.mb-0 { margin-bottom: 0 !important; }
.mb-1 { margin-bottom: var(--wp--preset--spacing--30) !important; }
.mb-2 { margin-bottom: var(--wp--preset--spacing--50) !important; }
.mb-3 { margin-bottom: var(--wp--preset--spacing--60) !important; }
.mb-4 { margin-bottom: var(--wp--preset--spacing--80) !important; }

.pt-0 { padding-top: 0 !important; }
.pt-1 { padding-top: var(--wp--preset--spacing--30) !important; }
.pt-2 { padding-top: var(--wp--preset--spacing--50) !important; }
.pt-3 { padding-top: var(--wp--preset--spacing--60) !important; }
.pt-4 { padding-top: var(--wp--preset--spacing--80) !important; }

.pb-0 { padding-bottom: 0 !important; }
.pb-1 { padding-bottom: var(--wp--preset--spacing--30) !important; }
.pb-2 { padding-bottom: var(--wp--preset--spacing--50) !important; }
.pb-3 { padding-bottom: var(--wp--preset--spacing--60) !important; }
.pb-4 { padding-bottom: var(--wp--preset--spacing--80) !important; }

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

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

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

@media (min-width: 1024px) {
    .hide-desktop {
        display: none !important;
    }
}

/* Animation utilities */
.fade-in {
    animation: fadeIn 0.3s ease;
}

.slide-in-right {
    animation: slideInRight 0.3s ease;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideInRight {
    from {
        transform: translateX(100%);
    }
    to {
        transform: translateX(0);
    }
}

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}

/* Focus visible (accessibility) */
.focus-visible:focus {
    outline: 2px solid var(--wp--preset--color--secondary);
    outline-offset: 2px;
}

/* Prevent text selection on UI elements */
.no-select {
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
}
