/* ==========================================
   UTILITIES
   Legacy Protection Services
========================================== */

/* ==========================================
   TEXT ALIGNMENT
========================================== */

.text-left {
    text-align: left;
}

.text-center {
    text-align: center;
}

.text-right {
    text-align: right;
}

/* ==========================================
   DISPLAY
========================================== */

.d-block {
    display: block;
}

.d-inline-block {
    display: inline-block;
}

.d-flex {
    display: flex;
}

.d-none,
.hidden {
    display: none !important;
}

/* ==========================================
   WIDTH / HEIGHT
========================================== */

.w-100 {
    width: 100%;
}

.h-100 {
    height: 100%;
}

/* ==========================================
   POSITION
========================================== */

.position-relative {
    position: relative;
}

.position-absolute {
    position: absolute;
}

/* ==========================================
   OVERFLOW
========================================== */

.overflow-hidden {
    overflow: hidden;
}

/* ==========================================
   BORDER RADIUS
========================================== */

.radius-sm {
    border-radius: 10px;
}

.radius-md {
    border-radius: 16px;
}

.radius-lg {
    border-radius: 24px;
}

.radius-pill {
    border-radius: 999px;
}

/* ==========================================
   OBJECT FIT
========================================== */

.object-cover {
    object-fit: cover;
}

.object-contain {
    object-fit: contain;
}

/* ==========================================
   SPACING UTILITIES
   Keep minimal to avoid overlap and clutter
========================================== */

.mt-0 { margin-top: 0 !important; }
.mt-1 { margin-top: 0.5rem !important; }
.mt-2 { margin-top: 1rem !important; }
.mt-3 { margin-top: 1.5rem !important; }
.mt-4 { margin-top: 2rem !important; }

.mb-0 { margin-bottom: 0 !important; }
.mb-1 { margin-bottom: 0.5rem !important; }
.mb-2 { margin-bottom: 1rem !important; }
.mb-3 { margin-bottom: 1.5rem !important; }
.mb-4 { margin-bottom: 2rem !important; }

.pt-0 { padding-top: 0 !important; }
.pt-1 { padding-top: 0.5rem !important; }
.pt-2 { padding-top: 1rem !important; }
.pt-3 { padding-top: 1.5rem !important; }
.pt-4 { padding-top: 2rem !important; }

.pb-0 { padding-bottom: 0 !important; }
.pb-1 { padding-bottom: 0.5rem !important; }
.pb-2 { padding-bottom: 1rem !important; }
.pb-3 { padding-bottom: 1.5rem !important; }
.pb-4 { padding-bottom: 2rem !important; }

/* ==========================================
   VISUAL HELPERS
========================================== */

.shadow-sm {
    box-shadow: 0 10px 24px rgba(16, 24, 40, 0.06);
}

.shadow-md {
    box-shadow: 0 16px 36px rgba(16, 24, 40, 0.1);
}

.border-subtle {
    border: 1px solid rgba(16, 24, 40, 0.08);
}

/* ==========================================
   ACCESSIBILITY / STATE
========================================== */

.visually-hidden {
    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
========================================== */

@media (max-width: 767.98px) {
    .radius-lg {
        border-radius: 18px;
    }
}