.ipa-image-wrapper {
    display: inline-block;
    padding: 8px;
    margin: 1em 0;
    text-align: center;
}

.ipa-image-wrapper img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Alt-Text */
.ipa-alt-text {
    margin-top: 6px;
    font-size: 0.9em;
    color: #555;
}

/* ========== BORDER STYLES ========== */

.ipa-border-none {
    border: none;
}

/* Pulsierender Border */
.ipa-border-pulse {
    border: 4px solid #0073aa;
    animation: pulseBorder 1.5s infinite;
}

@keyframes pulseBorder {
    0%   { box-shadow: 0 0 0 0 rgba(0,115,170,0.7); }
    70%  { box-shadow: 0 0 0 10px rgba(0,115,170,0); }
    100% { box-shadow: 0 0 0 0 rgba(0,115,170,0); }
}

/* Regenbogen */
.ipa-border-rainbow {
    border: 4px solid;
    animation: rainbowBorder 3s linear infinite;
}

@keyframes rainbowBorder {
    0%   { border-color: red; }
    25%  { border-color: orange; }
    50%  { border-color: lime; }
    75%  { border-color: blue; }
    100% { border-color: red; }
}

/* Glow */
.ipa-border-glow {
    --ipa-glow-color: #00ffcc;
    --ipa-glow-size: 20px;

    border-style: solid;
    border-color: var(--ipa-glow-color);
    animation: glowBorder 2s ease-in-out infinite alternate;
}

@keyframes glowBorder {
    from {
        box-shadow: 0 0 calc(var(--ipa-glow-size) / 2) var(--ipa-glow-color);
    }
    to {
        box-shadow: 0 0 var(--ipa-glow-size) var(--ipa-glow-color);
    }
}

