/**
 * 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 */
.XY3ZJJKKK {
    /* 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 */
.XY3ZJJKKK.YY421LLZ1 {
    padding: 10px 15px !important;
}
.XY3ZJJKKK.d4W1WLX340L {
    padding: 20px 25px !important;
}
.XY3ZJJKKK.fY2XNOK0K {
    padding: 30px 35px !important;
}
.XY3ZJJKKK.Y0OYJ5XJ5504 {
    padding: 50px 40px !important;
}
.XY3ZJJKKK.X5W0Y4W2ML3 {
    padding: 80px 50px !important;
}

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

/* Rich Text Editor spacing fixes */
.XY3ZJJKKK .eL520ML2L25L[data-rich-text-placeholder]:empty:before,
.XY3ZJJKKK .b51YNY0WX[data-rich-text-placeholder]:empty:before,
.XY3ZJJKKK .fON5OOJZWYN[data-rich-text-placeholder]:empty:before {
    opacity: 0.7;
    font-style: italic;
}

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

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

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

/* Split layout content positioning */
.XY3ZJJKKK.WYY22M5LJ .ZOJ0ZM25KZ5,
.XY3ZJJKKK.XM525KWJ .ZOJ0ZM25KZ5 {
    flex: 0 0 50%;
    display: flex;
    align-items: center;
    /* Padding handled by parent container */
}

/* Ensure split layouts respect text alignment */
.XY3ZJJKKK.WYY22M5LJ .U34XO1ZX24W,
.XY3ZJJKKK.XM525KWJ .U34XO1ZX24W {
    width: 100%;
}

/* Remove background overlay - text should be readable without it */
.XY3ZJJKKK.has-background-image .U34XO1ZX24W {
    /* 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 */
.XY3ZJJKKK.has-background-image .eL520ML2L25L,
.XY3ZJJKKK.has-background-image .b51YNY0WX,
.XY3ZJJKKK.has-background-image .fON5OOJZWYN {
    color: white;
}

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

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

.XY3ZJJKKK .WYM5WK11MY:hover {
    transform: translateY(-2px);
}

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

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

.XY3ZJJKKK .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 */
.XY3ZJJKKK .ZO5XK12OY21.T254N2YYZXK,
.XY3ZJJKKK .ZO5XK12OY21.dW4OM143JM,
.XY3ZJJKKK .ZO5XK12OY21.XJWO211XW20 {
    /* Inherit from global button styles defined in admin-settings.php */
}

/* Alignment utilities - Enhanced with !important for proper override */
.XY3ZJJKKK.text-left .U34XO1ZX24W,
.XY3ZJJKKK.text-left .eJ3Y5355Y4 {
    text-align: left !important;
}

.XY3ZJJKKK.text-left .b3020W13251 {
    justify-content: flex-start !important;
    display: flex;
}

.XY3ZJJKKK.text-center .U34XO1ZX24W,
.XY3ZJJKKK.text-center .eJ3Y5355Y4 {
    text-align: center !important;
}

.XY3ZJJKKK.text-center .b3020W13251 {
    justify-content: center !important;
    display: flex;
}

.XY3ZJJKKK.text-right .U34XO1ZX24W,
.XY3ZJJKKK.text-right .eJ3Y5355Y4 {
    text-align: right !important;
}

.XY3ZJJKKK.text-right .b3020W13251 {
    justify-content: flex-end !important;
    display: flex;
}

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

.XY3ZJJKKK.b151KJ4K.aos-animate {
    opacity: 1;
    transform: translateY(0);
}

.XY3ZJJKKK.WZKWO15W {
    transform: translateY(30px);
    transition: transform 0.6s ease;
}

.XY3ZJJKKK.WZKWO15W.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) {
    .XY3ZJJKKK {
        margin: 1.5rem 0;
    }

    .XY3ZJJKKK .b3020W13251 {
        margin-top: 1.5rem;
    }

    /* Responsive padding adjustments for tablet */
    .XY3ZJJKKK.YY421LLZ1 {
        padding: 8px 12px !important;
    }
    .XY3ZJJKKK.d4W1WLX340L {
        padding: 15px 20px !important;
    }
    .XY3ZJJKKK.fY2XNOK0K {
        padding: 25px 30px !important;
    }
    .XY3ZJJKKK.Y0OYJ5XJ5504 {
        padding: 40px 30px !important;
    }
    .XY3ZJJKKK.X5W0Y4W2ML3 {
        padding: 60px 40px !important;
    }
}

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

    .XY3ZJJKKK .b3020W13251 {
        margin-top: 1rem;
    }

    /* Responsive padding adjustments for mobile */
    .XY3ZJJKKK.YY421LLZ1 {
        padding: 5px 10px !important;
    }
    .XY3ZJJKKK.d4W1WLX340L {
        padding: 10px 15px !important;
    }
    .XY3ZJJKKK.fY2XNOK0K {
        padding: 20px 20px !important;
    }
    .XY3ZJJKKK.Y0OYJ5XJ5504 {
        padding: 30px 20px !important;
    }
    .XY3ZJJKKK.X5W0Y4W2ML3 {
        padding: 40px 25px !important;
    }

    /* Adjust split visual areas for mobile */
    .XY3ZJJKKK.WYY22M5LJ .c1L3ZMN5X50J,
    .XY3ZJJKKK.XM525KWJ .c1L3ZMN5X50J {
        /* Height determined by content even on mobile */
        min-height: auto;
    }

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

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

.XY3ZJJKKK .YOW2Z3ZW {
    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 */
.XY3ZJJKKK.WYY22M5LJ .UZ2O1J1ZZ5N,
.XY3ZJJKKK.XM525KWJ .UZ2O1J1ZZ5N {
    display: flex;
    align-items: stretch;
    min-height: 500px;
    height: 100%;
    width: 100%;
}

/* Split visual takes 50% width and full height */
.XY3ZJJKKK.WYY22M5LJ .c1L3ZMN5X50J,
.XY3ZJJKKK.XM525KWJ .c1L3ZMN5X50J {
    flex: 1 1 50%;
    max-width: 50%;
    min-height: 500px;
    position: relative;
    overflow: hidden;
}

/* Ensure the image fills the container properly */
.XY3ZJJKKK.WYY22M5LJ .YOW2Z3ZW,
.XY3ZJJKKK.XM525KWJ .YOW2Z3ZW {
    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 */
.XY3ZJJKKK .YOW2Z3ZW:hover {
    transform: none !important;
    filter: none !important;
    opacity: 1 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Split content takes 50% width */
.XY3ZJJKKK.WYY22M5LJ .ZOJ0ZM25KZ5,
.XY3ZJJKKK.XM525KWJ .ZOJ0ZM25KZ5 {
    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) {
    .XY3ZJJKKK.WYY22M5LJ .UZ2O1J1ZZ5N,
    .XY3ZJJKKK.XM525KWJ .UZ2O1J1ZZ5N {
        flex-direction: column;
    }

    .XY3ZJJKKK.WYY22M5LJ .c1L3ZMN5X50J,
    .XY3ZJJKKK.XM525KWJ .c1L3ZMN5X50J,
    .XY3ZJJKKK.WYY22M5LJ .ZOJ0ZM25KZ5,
    .XY3ZJJKKK.XM525KWJ .ZOJ0ZM25KZ5 {
        flex: 1 1 auto;
        max-width: 100%;
        width: 100%;
    }

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

    /* For split layout, image comes after content on mobile */
    .XY3ZJJKKK.WYY22M5LJ .UZ2O1J1ZZ5N {
        flex-direction: column;
    }

    /* For split-reverse, image comes first on mobile */
    .XY3ZJJKKK.XM525KWJ .UZ2O1J1ZZ5N {
        flex-direction: column-reverse;
    }
}