/* Utility Classes */

/* Display */

.d-none { display: none !important; }

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

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

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

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

.d-grid { display: grid !important; }

/* Flexbox */

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

.flex-column { flex-direction: column !important; }

.justify-content-start { justify-content: flex-start !important; }

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

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

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

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

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

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

/* Spacing */

.m-0 { margin: 0 !important; }

.mt-0 { margin-top: 0 !important; }

.mb-0 { margin-bottom: 0 !important; }

.p-0 { padding: 0 !important; }

.pt-0 { padding-top: 0 !important; }

.pb-0 { padding-bottom: 0 !important; }

/* Text Alignment */

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

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

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

/* Text Styles */

.text-bold { font-weight: bold !important; }

.text-normal { font-weight: normal !important; }

.text-italic { font-style: italic !important; }

.text-uppercase { text-transform: uppercase !important; }

.text-capitalize { text-transform: capitalize !important; }

/* Colors */

.text-primary { color: var(--primary-color) !important; }

.text-secondary { color: var(--secondary-color) !important; }

.bg-light { background-color: var(--light-bg) !important; }

.bg-white { background-color: #fff !important; }

/* Borders */

.border { border: 1px solid #dee2e6 !important; }

.border-0 { border: 0 !important; }

.rounded { border-radius: 0.25rem !important; }

.rounded-circle { border-radius: 50% !important; }

/* Position */

.position-relative { position: relative !important; }

.position-absolute { position: absolute !important; }

.position-fixed { position: fixed !important; }

/* Visibility */

.visible { visibility: visible !important; }

.invisible { visibility: hidden !important; }

/* Overflow */

.overflow-hidden { overflow: hidden !important; }

.overflow-auto { overflow: auto !important; }

.overflow-scroll { overflow: scroll !important; }

/* Width and Height */

.w-100 { width: 100% !important; }

.h-100 { height: 100% !important; }

.mw-100 { max-width: 100% !important; }

.mh-100 { max-height: 100% !important; }

/* Accessibility */

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

/* Responsive Utilities */

@media (max-width: 767.98px) {
    .d-sm-none { display: none !important; }
    .d-sm-block { display: block !important; }
    .text-sm-center { text-align: center !important; }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .d-md-none { display: none !important; }
    .d-md-block { display: block !important; }
    .text-md-center { text-align: center !important; }
}

@media (min-width: 992px) {
    .d-lg-none { display: none !important; }
    .d-lg-block { display: block !important; }
    .text-lg-center { text-align: center !important; }
}
