/* === Block Background Styling === */
.wp-block-group.has-background {
    position: relative;
    overflow: hidden;
}

.wp-block-group.has-background::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--overlay-color, transparent);
    opacity: var(--overlay-opacity, 0.5);
    z-index: 1;
    pointer-events: none;
}

.wp-block-group > * {
    position: relative;
    z-index: 2;
}

/* Visibility Classes */
.hide-desktop { display: none !important; }
@media (max-width: 1024px) {
    .hide-desktop { display: block !important; }
    .hide-tablet { display: none !important; }
}
@media (max-width: 768px) {
    .hide-mobile { display: none !important; }
}

/* Z-Index Utility */
.z-index-low { z-index: 1; }
.z-index-mid { z-index: 10; }
.z-index-high { z-index: 100; }

/* Border + Shadow Utility */
.border-box {
    border: 1px solid #ddd;
    border-radius: 6px;
}
.shadow-box {
    box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}
