/**
 * minCore Image Effects
 * Hover-Effekte fuer Bilder (migriert aus min_images)
 *
 * Verwendung: CSS-Klassen werden ueber figureclass im Backend gesetzt.
 */

/* ==========================================================================
   Base Styles
   ========================================================================== */

.img-hover {
    display: block;
    overflow: hidden;
    position: relative;
}

.img-hover img {
    display: block;
    width: 100%;
    height: auto;
    transition: all 0.4s ease-out;
}

.overflow-hidden {
    overflow: hidden;
}

/* ==========================================================================
   Zoom Effects
   ========================================================================== */

/* Basic Zoom */
.img-hover-zoom img {
    transform: scale(1);
}

.img-hover-zoom:hover img {
    transform: scale(1.1);
}

/* Quick Zoom */
.img-hover--quick-zoom img {
    transform: scale(1);
    transition: transform 0.2s ease-out;
}

.img-hover--quick-zoom:hover img {
    transform: scale(1.15);
}

/* Point Zoom (zoom to center) */
.img-hover--point-zoom img {
    transform: scale(1);
    transform-origin: center center;
}

.img-hover--point-zoom:hover img {
    transform: scale(1.25);
}

/* Zoom and Rotate */
.img-hover--zoom-n-rotate img {
    transform: scale(1) rotate(0deg);
}

.img-hover--zoom-n-rotate:hover img {
    transform: scale(1.1) rotate(2deg);
}

/* Slowmotion Zoom */
.img-hover--slowmo img {
    transform: scale(1);
    transition: transform 1.5s ease-out;
}

.img-hover--slowmo:hover img {
    transform: scale(1.08);
}

/* ==========================================================================
   Brightness & Filter Effects
   ========================================================================== */

/* Brightness on Hover */
.img-hover--brightness img {
    filter: brightness(1);
}

.img-hover--brightness:hover img {
    filter: brightness(1.15);
    transform: scale(1.05);
}

/* Blur Effect */
.img-hover--blur img {
    filter: blur(0);
}

.img-hover--blur:hover img {
    filter: blur(2px);
    transform: scale(1.05);
}

/* Colorize (Sepia to Color) */
.img-hover--colorize img {
    filter: grayscale(100%);
    transition: all 0.4s ease-out;
}

.img-hover--colorize:hover img {
    filter: grayscale(0%);
    transform: scale(1.05);
}

/* Colorize Slow */
.img-hover--colorize-slow img {
    filter: grayscale(100%);
    transition: all 0.8s ease-out;
}

.img-hover--colorize-slow:hover img {
    filter: grayscale(0%);
    transform: scale(1.03);
}

/* Black & White Low */
.img-hover--bwlow img {
    filter: grayscale(0%);
}

.img-hover--bwlow:hover img {
    filter: grayscale(100%);
}

/* Greyscale with Brightness */
.img-hover-zoom--greybright50-slow img {
    filter: grayscale(50%) brightness(1);
    transition: all 0.8s ease-out;
}

.img-hover-zoom--greybright50-slow:hover img {
    filter: grayscale(0%) brightness(1.1);
    transform: scale(1.05);
}

/* ==========================================================================
   Pan Effects
   ========================================================================== */

/* Horizontal Pan */
.img-hover--zoom-n-pan-h img {
    transform: scale(1.1) translateX(0);
    transition: transform 0.6s ease-out;
}

.img-hover--zoom-n-pan-h:hover img {
    transform: scale(1.15) translateX(-3%);
}

/* Vertical Pan */
.img-hover--zoom-n-pan-v img {
    transform: scale(1.1) translateY(0);
    transition: transform 0.6s ease-out;
}

.img-hover--zoom-n-pan-v:hover img {
    transform: scale(1.15) translateY(-3%);
}

/* ==========================================================================
   Layout Effects
   ========================================================================== */

/* Fullfit - Bild fuellt Container komplett aus */
.is-fullfit {
    position: relative;
    width: 100%;
    height: 100%;
}

.is-fullfit img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ==========================================================================
   Figcaption Styles
   ========================================================================== */

.mincore-figure {
    position: relative;
    margin: 0;
}

.mincore-figure__caption {
    padding: var(--mincore-spacing-sm, 0.5rem) 0;
}

.mincore-figure__title {
    margin: 0 0 var(--mincore-spacing-xs, 0.25rem);
    font-weight: 600;
}

.mincore-figure__description {
    margin: 0;
    font-size: 0.875rem;
    color: #666;
}

/* Caption Overlay (ueber dem Bild) */
.mincore-figure--overlay .mincore-figure__caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
    color: #fff;
    padding: var(--mincore-spacing-md, 1rem);
}

.mincore-figure--overlay .mincore-figure__description {
    color: rgba(255, 255, 255, 0.9);
}

/* ==========================================================================
   Reduced Motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
    .img-hover img,
    .img-hover-zoom img,
    .img-hover--quick-zoom img,
    .img-hover--point-zoom img,
    .img-hover--zoom-n-rotate img,
    .img-hover--slowmo img,
    .img-hover--brightness img,
    .img-hover--blur img,
    .img-hover--colorize img,
    .img-hover--colorize-slow img,
    .img-hover--bwlow img,
    .img-hover-zoom--greybright50-slow img,
    .img-hover--zoom-n-pan-h img,
    .img-hover--zoom-n-pan-v img {
        transition: none;
    }
}
