/**
 * IB Editorial Theme 1.0.24
 * Navigation Live QA & Cross-Block Image QA.
 */

/* ---------------------------------------------------------------------
   Navigation underline live QA
   ------------------------------------------------------------------ */

/* Keep both desktop navigation rows open for pseudo-elements and dropdowns. */
body.ib-et .ib-frame-navigation--primary,
body.ib-et .ib-frame-navigation--primary .ib-menu,
body.ib-et .ib-frame-navigation--primary .ib-menu > li,
body.ib-et .ib-sticky-menu__nav,
body.ib-et .ib-sticky-menu .ib-menu,
body.ib-et .ib-sticky-menu .ib-menu > li{
    overflow: visible;
}

/* Raise the main underline farther into the navigation row, away from the
   first content image. The 1.0.23 interaction remains the source of truth. */
body.ib-et .ib-frame-navigation--primary .ib-menu > li::after{
    bottom: 11px !important;
    height: 1px !important;
    background: var(--ib-frame-menu-hover, currentColor) !important;
}

/* Sticky navigation parity. */
body.ib-et .ib-sticky-menu .ib-menu > li::before{
    bottom: 8px !important;
    height: 1px !important;
    background: var(--ib-sticky-hover, currentColor) !important;
}

body.ib-et .ib-frame-navigation--primary .ib-menu > li > a,
body.ib-et .ib-sticky-menu .ib-menu > li > a{
    position: relative;
    z-index: 1;
}

/* Full hover / current / keyboard parity in both rows. */
body.ib-et .ib-frame-navigation--primary .ib-menu > li:is(
    :hover,
    :focus-within,
    .current-menu-item,
    .current-menu-parent,
    .current-menu-ancestor,
    .current_page_item,
    .current_page_parent,
    .current_page_ancestor
)::after,
body.ib-et .ib-sticky-menu .ib-menu > li:is(
    :hover,
    :focus-within,
    .current-menu-item,
    .current-menu-parent,
    .current-menu-ancestor,
    .current_page_item,
    .current_page_parent,
    .current_page_ancestor
)::before{
    transform: scaleX(1) !important;
    opacity: 1 !important;
}

/* No editorial underline inside dropdowns or mobile drawer menus. */
body.ib-et .ib-frame-navigation--primary .sub-menu > li::after,
body.ib-et .ib-sticky-menu .sub-menu > li::before,
body.ib-et .ib-primary-nav--drawer .ib-menu > li::after,
body.ib-et .ib-primary-nav--drawer .ib-menu > li::before{
    display: none !important;
}

@media (max-width: 900px){
    body.ib-et .ib-frame-navigation--primary .ib-menu > li::after,
    body.ib-et .ib-sticky-menu .ib-menu > li::before{
        display: none !important;
    }
}

/* ---------------------------------------------------------------------
   Cross-block image fit + focal position QA
   ------------------------------------------------------------------ */

body.ib-et .ib-ub-page .ib-ub-instance{
    --ib-image-fit-final: var(--ib-ub-image-fit-runtime, var(--ib-ub-image-fit, cover));
    --ib-image-position-final: var(--ib-ub-image-position-runtime, var(--ib-ub-image-position, center top));
}

/* Final generic fallback. It intentionally loads after all legacy visual-QA
   styles so user-selected fit and focal settings cannot be overwritten by
   older template-specific crop coordinates. */
body.ib-et .ib-ub-page .ib-ub-instance img:not(.avatar):not(.emoji):not(.wp-smiley):not(.ib-ub-logo):not([data-ib-preserve-fit]){
    object-fit: var(--ib-image-fit-final) !important;
    object-position: var(--ib-image-position-final) !important;
}

/* Ensure picture sources and linked media inherit a usable frame. */
body.ib-et .ib-ub-page .ib-ub-instance :is(picture, .ib-ub-primary-media-link) > img:not([data-ib-preserve-fit]){
    display: block !important;
    width: 100% !important;
    max-width: none !important;
}

/* Fit fully keeps the designed frame but never crops. */
body.ib-et .ib-ub-page .ib-ub-instance.ib-ub-image-fit-contain img:not(.avatar):not(.emoji):not(.wp-smiley):not(.ib-ub-logo):not([data-ib-preserve-fit]){
    object-fit: contain !important;
    object-position: var(--ib-image-position-final) !important;
    background-color: var(--ib-ub-bg-color, transparent) !important;
}

/* Do not crop follows the image's natural height. */
body.ib-et .ib-ub-page .ib-ub-instance.ib-ub-image-fit-natural img:not(.avatar):not(.emoji):not(.wp-smiley):not(.ib-ub-logo):not([data-ib-preserve-fit]){
    object-fit: contain !important;
    object-position: var(--ib-image-position-final) !important;
    height: auto !important;
    max-height: none !important;
    background-color: var(--ib-ub-bg-color, transparent) !important;
}

/* Explicit focal classes remain authoritative. */
body.ib-et .ib-ub-page .ib-ub-instance.ib-ub-image-position-top{--ib-image-position-final:center top}
body.ib-et .ib-ub-page .ib-ub-instance.ib-ub-image-position-center{--ib-image-position-final:center center}
body.ib-et .ib-ub-page .ib-ub-instance.ib-ub-image-position-bottom{--ib-image-position-final:center bottom}
body.ib-et .ib-ub-page .ib-ub-instance.ib-ub-image-position-left{--ib-image-position-final:left center}
body.ib-et .ib-ub-page .ib-ub-instance.ib-ub-image-position-right{--ib-image-position-final:right center}

/* The dark lead uses a CSS background rather than an img element. */
body.ib-et .ib-ub-page .ib-ub-instance .ib-ub-dark-lead{
    background-position: var(--ib-image-position-final) !important;
    background-repeat: no-repeat !important;
}
body.ib-et .ib-ub-page .ib-ub-instance.ib-ub-image-fit-cover .ib-ub-dark-lead{
    background-size: cover !important;
}
body.ib-et .ib-ub-page .ib-ub-instance:is(.ib-ub-image-fit-contain,.ib-ub-image-fit-natural) .ib-ub-dark-lead{
    background-size: contain !important;
    background-color: var(--ib-ub-bg-color, #111) !important;
}

/* UB-24 has three independent focal controls. Keep them more specific than
   the generic block-level fallback. */
body.ib-et .ib-ub-page .ib-ub-template-ref_runway_report_dashboard .ib-rrp__hero img{
    object-position: var(--rrp-hero-position, center top) !important;
}
body.ib-et .ib-ub-page .ib-ub-template-ref_runway_report_dashboard .ib-rrp__focus-image img{
    object-position: var(--rrp-focus-position, center center) !important;
}
body.ib-et .ib-ub-page .ib-ub-template-ref_runway_report_dashboard .ib-rrp__note-media img{
    object-position: var(--rrp-note-position, center center) !important;
}

@media (prefers-reduced-motion: reduce){
    body.ib-et .ib-frame-navigation--primary .ib-menu > li::after,
    body.ib-et .ib-sticky-menu .ib-menu > li::before{
        transition: none !important;
    }
}
