/**
 * Pretpot Glossy 3D Icon Buttons Widget Styles
 */

/* Container */
.pretpot-glossy-3d-buttons-container {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--glossy-buttons-gap, 20px);
}

/* Base Glossy Button */
.pretpot-glossy-btn {
    width: var(--glossy-btn-size, 80px);
    height: var(--glossy-btn-size, 80px);
    border-radius: 50%;
    border: none;
    cursor: pointer;
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--glossy-icon-size, 28px);
    color: var(--glossy-icon-color, rgba(0, 0, 0, 0.4));
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3);
    box-shadow: 
        0 10px 30px rgba(0, 0, 0, 0.2),
        0 4px 10px rgba(0, 0, 0, 0.1),
        inset 0 -5px 10px rgba(0, 0, 0, 0.1),
        inset 0 5px 10px rgba(255, 255, 255, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none;
    overflow: hidden;
}

/* Hover Animation - Lift & Scale */
.pretpot-glossy-btn:hover {
    transform: translateY(-5px) scale(1.05);
    box-shadow: 
        0 20px 40px rgba(0, 0, 0, 0.25),
        0 8px 15px rgba(0, 0, 0, 0.15),
        inset 0 -5px 10px rgba(0, 0, 0, 0.1),
        inset 0 5px 10px rgba(255, 255, 255, 0.5);
}

/* Active Animation - Press */
.pretpot-glossy-btn:active {
    transform: translateY(-2px) scale(0.98);
    box-shadow: 
        0 5px 15px rgba(0, 0, 0, 0.2),
        0 2px 5px rgba(0, 0, 0, 0.1),
        inset 0 -3px 8px rgba(0, 0, 0, 0.15),
        inset 0 3px 8px rgba(255, 255, 255, 0.3);
}

/* Glossy Reflection Overlay */
.pretpot-glossy-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 55%;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.9) 0%,
        rgba(255, 255, 255, 0.4) 40%,
        rgba(255, 255, 255, 0.1) 100%
    );
    border-radius: 50px 50px 40% 40%;
    pointer-events: none;
}

/* Specular Spot (Highlight) */
.pretpot-glossy-btn::after {
    content: '';
    position: absolute;
    top: 8%;
    left: 15%;
    width: var(--specular-size, 25%);
    height: calc(var(--specular-size, 25%) * 0.8);
    background: var(--specular-color, rgba(255, 255, 255, 0.9));
    border-radius: 50%;
    filter: blur(var(--specular-blur, 1px));
    pointer-events: none;
    transition: all 0.3s ease;
}

/* Icon Styling */
.pretpot-glossy-btn .glossy-btn-icon {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.pretpot-glossy-btn .glossy-btn-icon svg,
.pretpot-glossy-btn .glossy-btn-icon i {
    width: 1em;
    height: 1em;
    fill: currentColor;
}

/* Red Button */
.pretpot-glossy-btn.glossy-red {
    background: radial-gradient(
        circle at 30% 30%,
        #ff6b6b 0%,
        #ee5a5a 30%,
        #d63031 70%,
        #b91c1c 100%
    );
}

/* Yellow Button */
.pretpot-glossy-btn.glossy-yellow {
    background: radial-gradient(
        circle at 30% 30%,
        #ffd93d 0%,
        #f9ca24 30%,
        #f1c40f 70%,
        #d4ac0d 100%
    );
}

/* Green Button */
.pretpot-glossy-btn.glossy-green {
    background: radial-gradient(
        circle at 30% 30%,
        #6bcb77 0%,
        #4cd97b 30%,
        #2ecc71 70%,
        #27ae60 100%
    );
}

/* Blue Button */
.pretpot-glossy-btn.glossy-blue {
    background: radial-gradient(
        circle at 30% 30%,
        #74b9ff 0%,
        #5fa8f3 30%,
        #3498db 70%,
        #2980b9 100%
    );
}

/* Purple Button */
.pretpot-glossy-btn.glossy-purple {
    background: radial-gradient(
        circle at 30% 30%,
        #a29bfe 0%,
        #b8b3fd 30%,
        #6c5ce7 70%,
        #5b4cdb 100%
    );
}

/* Pink Button */
.pretpot-glossy-btn.glossy-pink {
    background: radial-gradient(
        circle at 30% 30%,
        #fd79a8 0%,
        #e84393 30%,
        #d63031 70%,
        #b71540 100%
    );
}

/* Orange Button */
.pretpot-glossy-btn.glossy-orange {
    background: radial-gradient(
        circle at 30% 30%,
        #fab1a0 0%,
        #e17055 30%,
        #d63031 70%,
        #c0392b 100%
    );
}

/* Cyan Button */
.pretpot-glossy-btn.glossy-cyan {
    background: radial-gradient(
        circle at 30% 30%,
        #81ecec 0%,
        #00cec9 30%,
        #01a3a4 70%,
        #006266 100%
    );
}

/* Custom Color Button */
.pretpot-glossy-btn.glossy-custom {
    background: radial-gradient(
        circle at 30% 30%,
        var(--glossy-color-light, #74b9ff) 0%,
        var(--glossy-color-mid, #5fa8f3) 30%,
        var(--glossy-color-dark, #3498db) 70%,
        var(--glossy-color-darker, #2980b9) 100%
    );
}

/* Ripple Effect */
.pretpot-glossy-btn .glossy-ripple {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.6);
    transform: scale(0);
    animation: glossy-ripple-animation 0.6s linear;
    pointer-events: none;
    z-index: 10;
}

@keyframes glossy-ripple-animation {
    to {
        transform: scale(4);
        opacity: 0;
    }
}

/* Entrance Animation */
.pretpot-glossy-btn.glossy-entrance {
    animation: glossy-pop-in 0.6s cubic-bezier(0.4, 0, 0.2, 1) backwards;
}

@keyframes glossy-pop-in {
    0% {
        opacity: 0;
        transform: scale(0.5);
    }
    70% {
        transform: scale(1.1);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

/* Staggered Delays */
.pretpot-glossy-btn.glossy-entrance:nth-child(1) { animation-delay: 0.1s; }
.pretpot-glossy-btn.glossy-entrance:nth-child(2) { animation-delay: 0.2s; }
.pretpot-glossy-btn.glossy-entrance:nth-child(3) { animation-delay: 0.3s; }
.pretpot-glossy-btn.glossy-entrance:nth-child(4) { animation-delay: 0.4s; }
.pretpot-glossy-btn.glossy-entrance:nth-child(5) { animation-delay: 0.5s; }
.pretpot-glossy-btn.glossy-entrance:nth-child(6) { animation-delay: 0.6s; }

/* Alignment Variants */
.pretpot-glossy-3d-buttons-container.align-left {
    justify-content: flex-start;
}

.pretpot-glossy-3d-buttons-container.align-center {
    justify-content: center;
}

.pretpot-glossy-3d-buttons-container.align-right {
    justify-content: flex-end;
}

.pretpot-glossy-3d-buttons-container.align-justify {
    justify-content: space-between;
}

/* Responsive */
@media (max-width: 767px) {
    .pretpot-glossy-btn {
        width: var(--glossy-btn-size-mobile, var(--glossy-btn-size, 80px));
        height: var(--glossy-btn-size-mobile, var(--glossy-btn-size, 80px));
        font-size: var(--glossy-icon-size-mobile, var(--glossy-icon-size, 28px));
    }
}