/* ========================================
   RFN FULLWIDTH IMAGE BLOCK STYLES
   ======================================== */

.rfn-fullwidth-image-block-block {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    position: relative;
    overflow: hidden;
}

/* First block positioning - stick to navbar */
.rfn-fullwidth-image-block:first-child {
    margin-top: 0;
}

/* Fallback for browsers that don't support :has() - only affects block margin */
body .rfn-fullwidth-image-block:first-child {
    margin-top: 0;
}

/* Additional fallback - target the first block in site-main */
.site-main .rfn-fullwidth-image-block:first-child,
main .rfn-fullwidth-image-block:first-child,
.content .rfn-fullwidth-image-block:first-child,
.entry-content .rfn-fullwidth-image-block:first-child {
    margin-top: 0;
}

/* JavaScript-based first block detection - PRIMARY METHOD (most reliable) */
body.rfn-first-block-fullwidth {
    padding-top: 0 !important;
}

/* CSS-only fallback using :has() - only if JavaScript class is not present */
body:has(.rfn-fullwidth-image-block.is-first-block):not(.rfn-first-block-fullwidth) {
    padding-top: 0 !important;
}

.site-main.rfn-first-block-fullwidth,
main.rfn-first-block-fullwidth,
.content.rfn-first-block-fullwidth,
.entry-content.rfn-first-block-fullwidth {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* First block class applied by JavaScript */
.rfn-fullwidth-image-block.is-first-block {
    margin-top: 0 !important;
}

/* Ensure first block sticks to top */
.rfn-fullwidth-image-block.is-first-block {
    position: relative;
    top: 0;
}

.rfn-fullwidth-image-block .image-container {
    width: 100%;
    height: 400px;
    position: relative;
    overflow: hidden;
}

.rfn-fullwidth-image-block .image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* Image Visibility Controls */
.rfn-fullwidth-image-block.hide-on-mobile {
    display: none;
}

.rfn-fullwidth-image-block.hide-on-desktop {
    display: block;
}

.rfn-fullwidth-image-block.hide-on-tablet {
    display: block;
}

/* Desktop visibility */
@media (min-width: 1025px) {
    .rfn-fullwidth-image-block.hide-on-desktop {
        display: none;
    }
}

/* Tablet visibility */
@media (min-width: 769px) and (max-width: 1024px) {
    .rfn-fullwidth-image-block.hide-on-tablet {
        display: none;
    }
}

/* Mobile visibility */
@media (max-width: 768px) {
    .rfn-fullwidth-image-block.hide-on-mobile {
        display: block;
    }
}

/* Object Fit - Cover only */
.rfn-fullwidth-image-block .image-container img {
    object-fit: cover;
}

/* Additional mobile-specific styles */
@media (max-width: 768px) {
    /* Ensure the block breaks out of any container */
    .wp-block-rfn-fullwidth-image {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: calc(-50vw + 50%) !important;
        margin-right: calc(-50vw + 50%) !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    /* Target the block wrapper */
    .wp-block-rfn-fullwidth-image .rfn-fullwidth-image-block {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    
    /* Additional mobile container breakout fixes */
    .wp-block-rfn-fullwidth-image {
        margin-left: calc(-50vw + 50%) !important;
        margin-right: calc(-50vw + 50%) !important;
        width: 100vw !important;
        max-width: 100vw !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    /* Ensure parent containers don't add padding */
    .wp-block-rfn-fullwidth-image * {
        box-sizing: border-box !important;
    }
    
    /* Mobile-specific first block fixes */
    .rfn-fullwidth-image-block.is-first-block {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }
    
    /* Remove mobile body padding when first block is fullwidth-image */
    /* NOTE: We do NOT remove body padding-left/right to avoid affecting navbar */
    
    /* Mobile container fixes - only affect containers inside main content area */
    .site-main .container:has(.rfn-fullwidth-image-block.is-first-block),
    main .container:has(.rfn-fullwidth-image-block.is-first-block),
    .content .container:has(.rfn-fullwidth-image-block.is-first-block),
    .entry-content .container:has(.rfn-fullwidth-image-block.is-first-block),
    .site-main .container.rfn-first-block-fullwidth,
    main .container.rfn-first-block-fullwidth,
    .content .container.rfn-first-block-fullwidth,
    .entry-content .container.rfn-first-block-fullwidth,
    .site-main .wrap:has(.rfn-fullwidth-image-block.is-first-block),
    main .wrap:has(.rfn-fullwidth-image-block.is-first-block),
    .content .wrap:has(.rfn-fullwidth-image-block.is-first-block),
    .entry-content .wrap:has(.rfn-fullwidth-image-block.is-first-block),
    .site-main .wrap.rfn-first-block-fullwidth,
    main .wrap.rfn-first-block-fullwidth,
    .content .wrap.rfn-first-block-fullwidth,
    .entry-content .wrap.rfn-first-block-fullwidth,
    .site-main .content-area:has(.rfn-fullwidth-image-block.is-first-block),
    main .content-area:has(.rfn-fullwidth-image-block.is-first-block),
    .content .content-area:has(.rfn-fullwidth-image-block.is-first-block),
    .entry-content .content-area:has(.rfn-fullwidth-image-block.is-first-block),
    .site-main .content-area.rfn-first-block-fullwidth,
    main .content-area.rfn-first-block-fullwidth,
    .content .content-area.rfn-first-block-fullwidth,
    .entry-content .content-area.rfn-first-block-fullwidth {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    /* Fix site-main margin and padding on mobile when fullwidth-image is first */
    .site-main:has(.rfn-fullwidth-image-block.is-first-block),
    .site-main.rfn-first-block-fullwidth,
    main:has(.rfn-fullwidth-image-block.is-first-block),
    main.rfn-first-block-fullwidth,
    .content:has(.rfn-fullwidth-image-block.is-first-block),
    .content.rfn-first-block-fullwidth,
    .entry-content:has(.rfn-fullwidth-image-block.is-first-block),
    .entry-content.rfn-first-block-fullwidth {
        margin: 0 !important;
        padding: 0 !important;
    }
    
    /* Fallback for browsers that don't support :has() */
    .site-main .rfn-fullwidth-image-block.is-first-block,
    main .rfn-fullwidth-image-block.is-first-block,
    .content .rfn-fullwidth-image-block.is-first-block,
    .entry-content .rfn-fullwidth-image-block.is-first-block {
        margin-top: 0 !important;
    }
}

/* Responsive Design */
@media (max-width: 768px) {
    /* Fix site-main margin and padding on mobile */
    .site-main,
    main,
    .content,
    .entry-content {
        margin: 0 !important;
        padding: 0 !important;
    }
    
    /* Ensure site-main has no spacing when fullwidth-image is first */
    .site-main:has(.rfn-fullwidth-image-block:first-child),
    main:has(.rfn-fullwidth-image-block:first-child),
    .content:has(.rfn-fullwidth-image-block:first-child),
    .entry-content:has(.rfn-fullwidth-image-block:first-child),
    .site-main.rfn-first-block-fullwidth,
    main.rfn-first-block-fullwidth,
    .content.rfn-first-block-fullwidth,
    .entry-content.rfn-first-block-fullwidth {
        margin: 0 !important;
        padding: 0 !important;
    }
    
    /* Fallback for browsers that don't support :has() */
    .site-main .rfn-fullwidth-image-block:first-child,
    main .rfn-fullwidth-image-block:first-child,
    .content .rfn-fullwidth-image-block:first-child,
    .entry-content .rfn-fullwidth-image-block:first-child,
    .site-main .rfn-fullwidth-image-block.is-first-block,
    main .rfn-fullwidth-image-block.is-first-block,
    .content .rfn-fullwidth-image-block.is-first-block,
    .entry-content .rfn-fullwidth-image-block.is-first-block {
        margin-top: 0 !important;
    }
    
    .rfn-fullwidth-image-block {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: calc(-50vw + 50%) !important;
        margin-right: calc(-50vw + 50%) !important;
        position: relative !important;
        overflow: hidden !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .rfn-fullwidth-image-block .image-container {
        height: 400px;
        width: 100%;
        position: relative;
        overflow: hidden;
    }
    
    /* Ensure the block has enough height for overlay */
    .rfn-fullwidth-image-block {
        min-height: 400px;
        position: relative;
        overflow: hidden;
    }
    
    /* Mobile overlay positioning - force center within the block container */
    .rfn-fullwidth-image-block .overlay-custom-position,
    .rfn-fullwidth-image-block [style*="position: absolute"] {
        position: absolute !important;
        top: 58% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        transform: translate(-50%, -50%) !important;
        width: calc(100% - 2rem) !important;
        max-width: 400px !important;
        text-align: center !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 1.5rem !important;
        z-index: 10 !important;
        display: flex !important;
        flex-direction: column !important;
        margin: 0 !important;
        /* Force override any conflicting styles */
        box-sizing: border-box !important;
    }
    
    /* More specific targeting for overlays with inline styles that override positioning */
    .rfn-fullwidth-image-block div[style*="top:"][style*="left:"],
    .rfn-fullwidth-image-block div[style*="--overlay-top:"][style*="--overlay-left:"] {
        top: 58% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        transform: translate(-50%, -50%) !important;
        width: calc(100% - 2rem) !important;
        max-width: 400px !important;
        text-align: center !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 1.5rem !important;
        z-index: 10 !important;
        display: flex !important;
        flex-direction: column !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }
    
    /* Force center any overlay with inline styles */
    .rfn-fullwidth-image-block div[style*="position: absolute"],
    .rfn-fullwidth-image-block div[style*="position:absolute"] {
        position: absolute !important;
        top: 58% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        transform: translate(-50%, -50%) !important;
        width: calc(100% - 2rem) !important;
        max-width: 400px !important;
        text-align: center !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 1.5rem !important;
        z-index: 10 !important;
        display: flex !important;
        flex-direction: column !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }
    
    /* Target overlay by class or any div inside the block */
    .rfn-fullwidth-image-block > div:not(img) {
        position: absolute !important;
        top: 58% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        transform: translate(-50%, -50%) !important;
        width: calc(100% - 2rem) !important;
        max-width: 400px !important;
        text-align: center !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 1.5rem !important;
        z-index: 10 !important;
        display: flex !important;
        flex-direction: column !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }
    
    /* Ensure the block container is the positioning context */
    .rfn-fullwidth-image-block {
        position: relative !important;
    }
    
    /* Mobile image adjustments - fill the entire block container */
    .rfn-fullwidth-image-block img {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center !important;
        display: block !important;
        border: none !important;
        margin: 0 !important;
        padding: 0 !important;
        transform: scale(1.2) !important;
        min-height: 100% !important;
        min-width: 100% !important;
        z-index: 1 !important;
    }
}

@media (max-width: 576px) {
    .rfn-fullwidth-image-block {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: calc(-50vw + 50%) !important;
        margin-right: calc(-50vw + 50%) !important;
        position: relative !important;
        overflow: hidden !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .rfn-fullwidth-image-block .image-container {
        height: 350px;
        width: 100%;
        position: relative;
        overflow: hidden;
    }
    
    /* Ensure the block has enough height for overlay on small mobile */
    .rfn-fullwidth-image-block {
        min-height: 350px;
        position: relative;
        overflow: hidden;
    }
    
    /* Small mobile overlay adjustments - force center */
    .rfn-fullwidth-image-block .overlay-custom-position,
    .rfn-fullwidth-image-block [style*="position: absolute"],
    .rfn-fullwidth-image-block div[style*="position: absolute"],
    .rfn-fullwidth-image-block div[style*="position:absolute"],
    .rfn-fullwidth-image-block > div:not(img),
    .rfn-fullwidth-image-block div[style*="top:"][style*="left:"],
    .rfn-fullwidth-image-block div[style*="--overlay-top:"][style*="--overlay-left:"] {
        width: calc(100% - 1rem) !important;
        max-width: 350px !important;
        padding: 1rem !important;
        display: flex !important;
        flex-direction: column !important;
        position: absolute !important;
        top: 58% !important;
        left: 50% !important;
        right: auto !important;
        bottom: auto !important;
        transform: translate(-50%, -50%) !important;
        text-align: center !important;
        align-items: center !important;
        justify-content: center !important;
        z-index: 10 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }
    
    /* Mobile overlay text sizing */
    .rfn-fullwidth-image-block .overlay-custom-position div,
    .rfn-fullwidth-image-block [style*="position: absolute"] div {
        font-size: 1.2rem !important;
        line-height: 1.3 !important;
    }
    
    .rfn-fullwidth-image-block .overlay-custom-position div:last-child,
    .rfn-fullwidth-image-block [style*="position: absolute"] div:last-child {
        font-size: 0.9rem !important;
    }
}
