/**
 * SMI - Image Grid Block Styles
 *
 * @package ShowMeInstitute
 */

.smi-image-grid {
    position: relative;
}

/* Grid Item */
.smi-image-grid .grid-item {
    display: block;
    text-decoration: none;
    border-radius: 0;
    cursor: pointer;
    will-change: transform;
}

/* Ensure background image container is positioned correctly */
.smi-image-grid .grid-item > div:first-child {
    pointer-events: none;
}

/* Image zoom effect on hover */
.smi-image-grid .grid-item img {
    will-change: transform;
    transition: transform 700ms ease-out;
    transform: scale(1);
}

.smi-image-grid .grid-item:hover img,
.smi-image-grid .grid-item.group:hover img {
    transform: scale(1.1);
}

/* Text color variations */
.smi-image-grid .text-white {
    color: #ffffff;
}

.smi-image-grid .text-white h3 {
    color: #ffffff;
}

.smi-image-grid .text-white p {
    color: #ffffff;
}

.smi-image-grid .text-dark {
    color: #1f2937;
}

.smi-image-grid .text-dark h3 {
    color: #111827;
}

.smi-image-grid .text-dark p {
    color: #374151;
}

/* Accessibility - Focus states */
.smi-image-grid .grid-item:focus {
    outline: 3px solid #4e76a6;
    outline-offset: 2px;
}

.smi-image-grid .grid-item:focus-visible {
    outline: 3px solid #4e76a6;
    outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .smi-image-grid .grid-item:focus {
        outline-width: 4px;
    }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .smi-image-grid .grid-item img {
        transition: none !important;
    }
    
    .smi-image-grid .grid-item * {
        transition: none !important;
    }
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .smi-image-grid .grid-item {
        min-height: 300px;
    }
    
    .smi-image-grid .grid-item h3 {
        font-size: 1.5rem;
    }
}

/* Ensure proper stacking context */
.smi-image-grid .grid-item .absolute {
    position: absolute;
}

.smi-image-grid .grid-item .relative {
    position: relative;
}

.smi-image-grid .grid-item .inset-0 {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

/* Grid gap utility fallback */
.smi-image-grid .grid {
    display: grid;
}

.smi-image-grid .gap-6 {
    gap: 1.5rem;
}

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

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

