/**
 * CTA Section Block - Frontend Styles
 *
 * Note: Global CTA styles are generated dynamically in wphub_output_custom_css()
 * These are additional block-specific styles for Gutenberg integration
 */

/* Block-specific overrides and enhancements */
.trZRtAcE0F {
    /* Increased bottom margin for better content separation */
    margin: 2rem 0 4rem 0;
    /* Ensure text alignment cascades properly */
    position: relative;
    /* Ensure minimum height for split layouts */
    min-height: 500px;
}

/* Padding classes as fallback for different CTA padding sizes */
.trZRtAcE0F.aXZs91BE {
    padding: 10px 15px !important;
}
.trZRtAcE0F.eDmb2BbRb {
    padding: 20px 25px !important;
}
.trZRtAcE0F.iUW9K57E {
    padding: 30px 35px !important;
}
.trZRtAcE0F.jqzJY4ZmPKw2 {
    padding: 50px 40px !important;
}
.trZRtAcE0F.zU9lDh6wL5VA {
    padding: 80px 50px !important;
}

/* Editor-specific fixes */
.trZRtAcE0F .zL8l2TANmK {
    /* Ensure proper spacing for inline editing */
    position: relative;
}

/* Rich Text Editor spacing fixes */
.trZRtAcE0F .sjwh-cta-heading[data-rich-text-placeholder]:empty:before,
.trZRtAcE0F .sjwh-cta-subheading[data-rich-text-placeholder]:empty:before,
.trZRtAcE0F .sjwh-cta-description[data-rich-text-placeholder]:empty:before {
    opacity: 0.7;
    font-style: italic;
}

/* Button wrapper styling for block integration */
.trZRtAcE0F .lBsYaRVcaQ47 {
    margin-top: 2rem;
}

/* Background Image handling for block */
.trZRtAcE0F.has-background-image {
    /* Enhanced background image display */
    background-attachment: scroll;
}

/* Split layout visual containers (for background image layouts) */
.trZRtAcE0F.cJby59aw9eSp .tZjrRxMsj,
.trZRtAcE0F.qNdsTc8tI7 .tZjrRxMsj {
    /* Visual space for split layouts - background image shows through */
    flex: 0 0 50%;
    /* Height determined by content */
    min-height: auto;
}

/* Split layout content positioning */
.trZRtAcE0F.cJby59aw9eSp .diWjWG9hbcVQ,
.trZRtAcE0F.qNdsTc8tI7 .diWjWG9hbcVQ {
    flex: 0 0 50%;
    display: flex;
    align-items: center;
    /* Padding handled by parent container */
}

/* Ensure split layouts respect text alignment */
.trZRtAcE0F.cJby59aw9eSp .zL8l2TANmK,
.trZRtAcE0F.qNdsTc8tI7 .zL8l2TANmK {
    width: 100%;
}

/* Remove background overlay - text should be readable without it */
.trZRtAcE0F.has-background-image .zL8l2TANmK {
    /* No background overlay needed */
    /* Padding handled by parent container */
    /* Keep text shadow for better readability if needed */
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}

/* Ensure text is readable on background images */
.trZRtAcE0F.has-background-image .z26sUDVo2qAi,
.trZRtAcE0F.has-background-image .cWjWWvDgz7ZA,
.trZRtAcE0F.has-background-image .kFfcTJT7 {
    color: white;
}

/* Button enhancements for background image layouts */
.trZRtAcE0F.has-background-image .bFOuobQkzP5C {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

/* Button animations from global theme styles */
.trZRtAcE0F .bFOuobQkzP5C {
    transition: all 0.3s ease;
    display: inline-block;
}

.trZRtAcE0F .bFOuobQkzP5C:hover {
    transform: translateY(-2px);
}

/* Specific button animation classes */
.trZRtAcE0F .btn-animation-pulse:hover {
    animation: pulse 1s infinite;
}

.trZRtAcE0F .btn-animation-bounce:hover {
    animation: bounce 0.5s;
}

.trZRtAcE0F .btn-animation-shadow-lift:hover {
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
    transform: translateY(-4px);
}

/* Ensure CTA buttons use theme button styles */
.trZRtAcE0F .dlBa1oe5qtee.u4ExaRnDFzO,
.trZRtAcE0F .dlBa1oe5qtee.pDmu0a2VGmlQ,
.trZRtAcE0F .dlBa1oe5qtee.f9ESR5QSP {
    /* Inherit from global button styles defined in admin-settings.php */
}

/* Alignment utilities - Enhanced with !important for proper override */
.trZRtAcE0F.text-left .zL8l2TANmK,
.trZRtAcE0F.text-left .jdOABMr9OTX {
    text-align: left !important;
}

.trZRtAcE0F.text-left .lBsYaRVcaQ47 {
    justify-content: flex-start !important;
    display: flex;
}

.trZRtAcE0F.text-center .zL8l2TANmK,
.trZRtAcE0F.text-center .jdOABMr9OTX {
    text-align: center !important;
}

.trZRtAcE0F.text-center .lBsYaRVcaQ47 {
    justify-content: center !important;
    display: flex;
}

.trZRtAcE0F.text-right .zL8l2TANmK,
.trZRtAcE0F.text-right .jdOABMr9OTX {
    text-align: right !important;
}

.trZRtAcE0F.text-right .lBsYaRVcaQ47 {
    justify-content: flex-end !important;
    display: flex;
}

/* Animation integration */
.trZRtAcE0F.aOxyyiIe {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.trZRtAcE0F.aOxyyiIe.aos-animate {
    opacity: 1;
    transform: translateY(0);
}

.trZRtAcE0F.zWxI4mydNe {
    transform: translateY(30px);
    transition: transform 0.6s ease;
}

.trZRtAcE0F.zWxI4mydNe.aos-animate {
    transform: translateY(0);
}

/* Button animation keyframes */
@keyframes pulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
    100% {
        transform: scale(1);
    }
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translateY(0);
    }
    40% {
        transform: translateY(-5px);
    }
    60% {
        transform: translateY(-3px);
    }
}

@keyframes glow {
    0% {
        box-shadow: 0 0 5px rgba(0, 123, 186, 0.5);
    }
    50% {
        box-shadow: 0 0 20px rgba(0, 123, 186, 0.8), 0 0 30px rgba(0, 123, 186, 0.6);
    }
    100% {
        box-shadow: 0 0 5px rgba(0, 123, 186, 0.5);
    }
}

@keyframes breathing {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.02);
    }
}

/* Responsive adjustments */
@media (max-width: 991px) {
    .trZRtAcE0F {
        margin: 1.5rem 0;
    }

    .trZRtAcE0F .lBsYaRVcaQ47 {
        margin-top: 1.5rem;
    }

    /* Responsive padding adjustments for tablet */
    .trZRtAcE0F.aXZs91BE {
        padding: 8px 12px !important;
    }
    .trZRtAcE0F.eDmb2BbRb {
        padding: 15px 20px !important;
    }
    .trZRtAcE0F.iUW9K57E {
        padding: 25px 30px !important;
    }
    .trZRtAcE0F.jqzJY4ZmPKw2 {
        padding: 40px 30px !important;
    }
    .trZRtAcE0F.zU9lDh6wL5VA {
        padding: 60px 40px !important;
    }
}

@media (max-width: 575px) {
    .trZRtAcE0F {
        margin: 1rem 0;
    }

    .trZRtAcE0F .lBsYaRVcaQ47 {
        margin-top: 1rem;
    }

    /* Responsive padding adjustments for mobile */
    .trZRtAcE0F.aXZs91BE {
        padding: 5px 10px !important;
    }
    .trZRtAcE0F.eDmb2BbRb {
        padding: 10px 15px !important;
    }
    .trZRtAcE0F.iUW9K57E {
        padding: 20px 20px !important;
    }
    .trZRtAcE0F.jqzJY4ZmPKw2 {
        padding: 30px 20px !important;
    }
    .trZRtAcE0F.zU9lDh6wL5VA {
        padding: 40px 25px !important;
    }

    /* Adjust split visual areas for mobile */
    .trZRtAcE0F.cJby59aw9eSp .tZjrRxMsj,
    .trZRtAcE0F.qNdsTc8tI7 .tZjrRxMsj {
        /* Height determined by content even on mobile */
        min-height: auto;
    }

    /* Mobile content padding for background images */
    .trZRtAcE0F.has-background-image .zL8l2TANmK {
        /* Padding handled by parent container with responsive adjustments */
        /* No background overlay on mobile either */
    }
}

/* Split Image Styles - Base styles for all layouts */
.trZRtAcE0F .tZjrRxMsj {
    position: relative;
    overflow: hidden;
    /* No background - inherits from parent container */
}

.trZRtAcE0F .smlGuPmi {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    /* Ensure no inherited styles affect split images */
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Ensure split container uses flexbox */
.trZRtAcE0F.cJby59aw9eSp .yLy41y3CnDHx,
.trZRtAcE0F.qNdsTc8tI7 .yLy41y3CnDHx {
    display: flex;
    align-items: stretch;
    min-height: 500px;
    height: 100%;
    width: 100%;
}

/* Split visual takes 50% width and full height */
.trZRtAcE0F.cJby59aw9eSp .tZjrRxMsj,
.trZRtAcE0F.qNdsTc8tI7 .tZjrRxMsj {
    flex: 1 1 50%;
    max-width: 50%;
    min-height: 500px;
    position: relative;
    overflow: hidden;
}

/* Ensure the image fills the container properly */
.trZRtAcE0F.cJby59aw9eSp .smlGuPmi,
.trZRtAcE0F.qNdsTc8tI7 .smlGuPmi {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    /* For narrow images, ensure they scale up */
    min-width: 100%;
    min-height: 100%;
    /* Override any global image styles - split images should be full bleed */
    border-radius: 0 !important;
    box-shadow: none !important;
    filter: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

/* Prevent any hover effects on split images */
.trZRtAcE0F .smlGuPmi:hover {
    transform: none !important;
    filter: none !important;
    opacity: 1 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Split content takes 50% width */
.trZRtAcE0F.cJby59aw9eSp .diWjWG9hbcVQ,
.trZRtAcE0F.qNdsTc8tI7 .diWjWG9hbcVQ {
    flex: 1 1 50%;
    max-width: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px;
    min-height: 500px;
}

/* Mobile Responsive: Stack vertically on mobile */
@media (max-width: 768px) {
    .trZRtAcE0F.cJby59aw9eSp .yLy41y3CnDHx,
    .trZRtAcE0F.qNdsTc8tI7 .yLy41y3CnDHx {
        flex-direction: column;
    }

    .trZRtAcE0F.cJby59aw9eSp .tZjrRxMsj,
    .trZRtAcE0F.qNdsTc8tI7 .tZjrRxMsj,
    .trZRtAcE0F.cJby59aw9eSp .diWjWG9hbcVQ,
    .trZRtAcE0F.qNdsTc8tI7 .diWjWG9hbcVQ {
        flex: 1 1 auto;
        max-width: 100%;
        width: 100%;
    }

    /* Ensure image has minimum height on mobile */
    .trZRtAcE0F .tZjrRxMsj {
        min-height: 250px;
    }

    /* For split layout, image comes after content on mobile */
    .trZRtAcE0F.cJby59aw9eSp .yLy41y3CnDHx {
        flex-direction: column;
    }

    /* For split-reverse, image comes first on mobile */
    .trZRtAcE0F.qNdsTc8tI7 .yLy41y3CnDHx {
        flex-direction: column-reverse;
    }
}