/* Professional Page Builder Frontend Styles */

.ppb-frontend-content {
    max-width: 100%;
    margin: 0;
    padding: 0;
}

.ppb-element {
    margin-bottom: 1.5em;
    line-height: 1.6;
}

.ppb-element:last-child {
    margin-bottom: 0;
}

/* Headline elements */
.ppb-element-headline h1,
.ppb-element-headline h2,
.ppb-element-headline h3,
.ppb-element-headline h4,
.ppb-element-headline h5,
.ppb-element-headline h6 {
    margin: 0 0 0.5em 0;
    line-height: 1.2;
}

/* Paragraph elements */
.ppb-element-paragraph p {
    margin: 0 0 1em 0;
    line-height: 1.6;
}

/* Button elements - ULTRA STRONG CSS */
.ppb-frontend-content .ppb-element-button a,
.ppb-frontend-content .ppb-button {
    display: inline-block !important;
    text-decoration: none !important;
    border-radius: 6px !important;
    transition: all 0.3s ease !important;
    font-weight: 600 !important;
    text-align: center !important;
    cursor: pointer !important;
    border: none !important;
    box-sizing: border-box !important;
    line-height: 1.4 !important;
    vertical-align: middle !important;
    min-width: 120px !important;
    white-space: nowrap !important;
    color: inherit !important;
    font-family: inherit !important;
}

.ppb-frontend-content .ppb-element-button a:hover,
.ppb-frontend-content .ppb-button:hover {
    opacity: 0.9 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1) !important;
    text-decoration: none !important;
    color: inherit !important;
}

/* Force text to be visible */
.ppb-frontend-content .ppb-button,
.ppb-frontend-content .ppb-element-button a {
    background-image: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    border: none !important;
    outline: none !important;
    margin: 0 !important;
    text-indent: 0 !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Force text content to show */
.ppb-frontend-content .ppb-button *,
.ppb-frontend-content .ppb-element-button a * {
    visibility: visible !important;
    opacity: 1 !important;
    color: inherit !important;
}

/* Override ANY theme styles that might hide text */
.ppb-frontend-content .ppb-button::before,
.ppb-frontend-content .ppb-button::after,
.ppb-frontend-content .ppb-element-button a::before,
.ppb-frontend-content .ppb-element-button a::after {
    display: none !important;
}

/* Astra theme specific overrides */
.ast-container .ppb-frontend-content .ppb-button,
.ast-container .ppb-frontend-content .ppb-element-button a {
    font-size: inherit !important;
    padding: inherit !important;
    color: inherit !important;
    background: inherit !important;
}

/* Button Animations - ULTRA STRONG VERSION */
.ppb-frontend-content .ppb-btn-lift:hover,
.ppb-btn-lift:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25) !important;
    transition: all 0.3s ease !important;
    animation: none !important;
}

.ppb-frontend-content .ppb-btn-bounce:hover,
.ppb-btn-bounce:hover {
    animation: ppbButtonBounce 0.6s ease !important;
    transform: none !important;
}

.ppb-frontend-content .ppb-btn-pulse:hover,
.ppb-btn-pulse:hover {
    animation: ppbButtonPulse 1.5s infinite !important;
    transform: none !important;
}

.ppb-frontend-content .ppb-btn-wobble:hover,
.ppb-btn-wobble:hover {
    animation: ppbButtonWobble 0.8s ease !important;
    transform: none !important;
}

/* Make sure keyframes are always available */
@keyframes ppbButtonBounce {
    0%, 20%, 60%, 100% { 
        transform: translateY(0) !important; 
    }
    40% { 
        transform: translateY(-15px) !important; 
    }
    80% { 
        transform: translateY(-8px) !important; 
    }
}

@keyframes ppbButtonPulse {
    0% { 
        transform: scale(1) !important; 
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1) !important; 
    }
    50% { 
        transform: scale(1.1) !important; 
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3) !important; 
    }
    100% { 
        transform: scale(1) !important; 
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1) !important; 
    }
}

@keyframes ppbButtonWobble {
    0% { transform: translateX(0%) rotate(0deg) !important; }
    15% { transform: translateX(-25px) rotate(-8deg) !important; }
    30% { transform: translateX(20px) rotate(5deg) !important; }
    45% { transform: translateX(-15px) rotate(-5deg) !important; }
    60% { transform: translateX(10px) rotate(3deg) !important; }
    75% { transform: translateX(-5px) rotate(-2deg) !important; }
    100% { transform: translateX(0%) rotate(0deg) !important; }
}

/* Image elements */
.ppb-element-image img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
}

/* Spacer elements */
.ppb-element-spacer {
    margin: 0;
}

.ppb-element-spacer div {
    width: 100%;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .ppb-element {
        margin-bottom: 1em;
    }
    
    .ppb-element-button a {
        display: block;
        text-align: center;
        max-width: 300px;
        margin: 0 auto;
    }
}

/* Print styles */
@media print {
    .ppb-element-button a {
        color: #000 !important;
        background: transparent !important;
        border: 1px solid #000 !important;
    }
}