/* Cascading image — i2t3 component styles
 * 1-3 staggered, overlapping images beside text. Pure CSS (no JS). On small
 * screens the images stack normally.
 */

.i2t3-cascadingimage__stack {
    position: relative;
    padding: 1.5rem 0;
}

.i2t3-cascadingimage__img {
    max-width: 100%;
    height: auto;
    border-radius: .5rem;
    box-shadow: 0 .75rem 2rem rgba(0, 0, 0, .18);
}

.i2t3-cascadingimage__img--1 {
    width: 100%;
}

@media (min-width: 992px) {
    .i2t3-cascadingimage__img--2 {
        position: absolute;
        width: 52%;
        left: -8%;
        top: 40%;
    }
    .i2t3-cascadingimage__img--3 {
        position: absolute;
        width: 44%;
        left: 40%;
        top: 70%;
    }
}

/* Below lg: stack the extra images normally */
@media (max-width: 991.98px) {
    .i2t3-cascadingimage__img--2,
    .i2t3-cascadingimage__img--3 {
        display: block;
        width: 100%;
        margin-top: 1rem;
    }
}

.i2t3-cascadingimage__text > :last-child {
    margin-bottom: 0;
}

/* Rounded toggle */
.i2t3-cascadingimage--rounded .i2t3-cascadingimage__img { border-radius: 1rem; }

/* Style: dots — dotted accent behind the stack */
.i2t3-cascadingimage--style-dots .i2t3-cascadingimage__stack::before {
    content: "";
    position: absolute;
    width: 8rem;
    height: 8rem;
    right: -1rem;
    bottom: -1rem;
    background-image: radial-gradient(var(--i2t3-ca-accent, #0d6efd) 2px, transparent 2px);
    background-size: 1rem 1rem;
    opacity: .5;
    z-index: -1;
}

/* Style: color — accent block behind the stack */
.i2t3-cascadingimage--style-color .i2t3-cascadingimage__stack::before {
    content: "";
    position: absolute;
    inset: 1rem -1rem -1rem 1rem;
    background: var(--i2t3-ca-accent, #0d6efd);
    border-radius: 1rem;
    opacity: .15;
    z-index: -1;
}

/* Entrance animations (run on load) */
.i2t3-cascadingimage--anim-fadein .i2t3-cascadingimage__stack { animation: i2t3-ca-fadein .8s ease both; }
.i2t3-cascadingimage--anim-expandin .i2t3-cascadingimage__stack { animation: i2t3-ca-expandin .8s ease both; }
.i2t3-cascadingimage--anim-maskright .i2t3-cascadingimage__stack { animation: i2t3-ca-maskright 1s ease both; }
.i2t3-cascadingimage--anim-swing .i2t3-cascadingimage__stack { transform-origin: top center; animation: i2t3-ca-swing 1s ease both; }
@keyframes i2t3-ca-fadein { from { opacity: 0; transform: translateY(30px); } }
@keyframes i2t3-ca-expandin { from { opacity: 0; transform: scale(.85); } }
@keyframes i2t3-ca-maskright { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes i2t3-ca-swing { 0% { transform: rotate(-6deg); opacity: 0; } 60% { transform: rotate(3deg); } 100% { transform: rotate(0); opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
    .i2t3-cascadingimage__stack { animation: none !important; }
}
