/**
 * Intelligence724 v2.5.0 space, navigation reachability, footer, favicon and transparent-image refinements.
 * Loaded after site-v240.css so the release remains easy to audit and remove.
 */

/* Transparent source assets remain transparent; an older opaque WordPress Custom Logo is clipped safely. */
.i724-brand-emblem,
.i724-brand img,
.i724-hero-emblem > img,
.i724-service-answer > img,
.i724-article-aside > img,
.i724-error-emblem img {
    background: transparent !important;
}
.i724-brand-emblem,
.i724-brand img {
    overflow: hidden;
    border-radius: 50%;
    clip-path: circle(49.5% at 50% 50%);
    object-fit: cover;
}

/* Archive/page heroes: use the first screen for meaning, not an empty spacer. */
.i724-page-hero {
    padding-top: clamp(24px, 3vw, 42px);
    padding-bottom: clamp(54px, 5.5vw, 84px);
}
.i724-page-hero-grid {
    align-items: start;
    gap: clamp(36px, 5vw, 72px);
    padding-top: clamp(28px, 3.6vw, 52px);
}
.i724-page-hero-grid > * { min-width: 0; }
.i724-page-hero .i724-eyebrow { margin-top: 0; }
.i724-page-hero h1 { margin-top: clamp(18px, 2vw, 30px); }

/* General density: retain hierarchy while removing decorative empty bands. */
.i724-section { padding-block: clamp(62px, 7vw, 104px); }
.i724-section-heading { margin-bottom: clamp(28px, 3.5vw, 50px); }
.i724-section-heading + * { margin-top: 0; }
.i724-archive-grid > *,
.i724-industry-grid > *,
.i724-service-grid > *,
.i724-outcome-grid > *,
.i724-answer-grid > * { min-height: 0 !important; }

/* Desktop managed mega menus: one compact panel aligned to the actual header shell. */
@media (min-width: 1321px) {
    /* Stretch desktop trigger zones to the masthead edge so the pointer never crosses dead space. */
    .i724-nav,
    .i724-native-menu {
        align-self: stretch;
    }
    .i724-nav-item,
    .i724-native-menu > li {
        align-self: stretch;
        align-items: center;
    }
    .i724-native-menu > li {
        display: flex;
    }
    .i724-native-menu .sub-menu {
        top: 100%;
    }
    .i724-mega-menu,
    .i724-nav-item:first-child .i724-mega-menu,
    .i724-nav-item:nth-child(2) .i724-mega-menu {
        position: fixed;
        top: var(--i724-mega-top, 112px);
        right: auto;
        left: var(--i724-mega-left, max(18px, calc((100vw - var(--i724-shell)) / 2)));
        width: var(--i724-mega-width, min(930px, calc(100vw - 36px)));
        max-width: calc(100vw - 24px);
        max-height: var(--i724-mega-height, calc(100vh - 132px));
        grid-template-columns: minmax(0, 1fr);
        overflow-x: hidden;
        overflow-y: auto;
        scrollbar-gutter: auto;
        transform: none;
    }
    html.js .i724-nav-item:hover > .i724-mega-menu,
    html.js .i724-nav-item:focus-within > .i724-mega-menu { display: none; }
    html.js .i724-nav-item.is-open > .i724-mega-menu { display: grid; }
    .i724-mega-intro {
        display: flex;
        min-width: 0;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
        padding: 15px 18px;
        border-right: 0;
        border-bottom: 1px solid rgba(115,185,255,.16);
    }
    .i724-mega-intro > div { min-width: 0; }
    .i724-mega-intro span { margin-bottom: 4px; }
    .i724-mega-intro strong {
        overflow: hidden;
        font-size: .9rem;
        line-height: 1.35;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .i724-mega-intro a {
        flex: 0 0 auto;
        margin: 0;
        min-height: 42px;
        align-items: center;
        padding: 8px 11px;
        border: 1px solid rgba(115,185,255,.16);
        border-radius: 7px;
    }
    .i724-mega-links {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 7px;
        padding: 12px;
    }
    .i724-mega-links a {
        min-width: 0;
        min-height: 54px;
        gap: 9px;
        padding: 10px 12px;
        overflow: hidden;
        font-size: .76rem;
        line-height: 1.3;
    }
    .i724-mega-links a > span {
        flex: 1 1 auto;
        min-width: 0;
        overflow-wrap: anywhere;
    }
}

/* Mobile/tablet menus use available width before adding height. */
@media (max-width: 1320px) {
    .i724-mega-menu,
    .i724-nav-item:first-child .i724-mega-menu,
    .i724-nav-item:nth-child(2) .i724-mega-menu {
        position: static;
        width: 100%;
        max-width: none;
        max-height: none;
        overflow: visible;
    }
    .i724-mega-intro { display: none; }
    .i724-mega-links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5px;
        padding: 7px;
    }
    .i724-mega-links a {
        min-width: 0;
        min-height: 46px;
        padding: 9px 10px;
        overflow: hidden;
    }
    .i724-mega-links a > span {
        flex: 1 1 auto;
        min-width: 0;
        overflow-wrap: anywhere;
    }
}
@media (max-width: 680px) {
    .i724-mega-links { grid-template-columns: 1fr; }
}

/* Footer: four intentional zones and one restrained legal row. */
.i724-footer { padding-top: 0; }
.i724-footer-cta-inner {
    min-height: 0;
    grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr);
    gap: clamp(28px, 5vw, 72px);
    padding-block: clamp(42px, 5vw, 66px);
}
.i724-footer-cta h2 {
    max-width: 820px;
    font-size: clamp(2.2rem, 3.9vw, 4.15rem);
}
.i724-footer-cta h2 + p { margin-top: 16px; line-height: 1.6; }
.i724-footer-grid {
    grid-template-columns: minmax(280px, 1.35fr) repeat(3, minmax(155px, .7fr));
    gap: clamp(28px, 4vw, 62px);
    padding-block: clamp(46px, 5vw, 68px);
}
.i724-footer-brand > p { margin-top: 16px; }
.i724-footer-position { margin-top: 18px !important; }
.i724-footer-contact-links {
    display: grid;
    justify-content: start;
    gap: 7px;
    margin-top: 18px;
}
.i724-footer-contact-links a,
.i724-footer-contact-links span { font-size: .76rem; }
.i724-footer-brand .i724-footer-boundary { margin-top: 16px; }
.i724-footer-column h2 { margin: 7px 0 17px; }
.i724-footer-column > a { margin-bottom: 9px; line-height: 1.38; }
.i724-footer-featured-link { margin-top: 14px !important; margin-bottom: 0 !important; }
.i724-footer-bottom { min-height: 68px; }

@media (max-width: 980px) {
    .i724-footer-cta-inner { grid-template-columns: 1fr; }
    .i724-footer-cta-actions { max-width: 500px; grid-template-columns: repeat(2, minmax(0,1fr)); }
    .i724-footer-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .i724-footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
    .i724-page-hero-grid { gap: 28px; padding-top: 26px; }
    .i724-footer-cta-actions,
    .i724-footer-grid { grid-template-columns: 1fr; }
    .i724-footer-brand { grid-column: 1; }
    .i724-footer-column { padding-top: 20px; border-top: 1px solid rgba(255,255,255,.08); }
}

/* Native WordPress desktop menus receive the same explicit, reachable disclosure control as the managed fallback. */
@media (min-width: 1321px) {
    .i724-native-menu > li.menu-item-has-children > a {
        padding-right: 7px;
    }
    .i724-native-menu > li.menu-item-has-children > .i724-native-submenu-toggle {
        display: inline-flex;
        flex: 0 0 32px;
        width: 32px;
        min-height: 44px;
        margin-left: -7px;
    }
}

@media (min-width: 1321px) {
    html.js .i724-native-menu li:hover > .sub-menu,
    html.js .i724-native-menu li:focus-within > .sub-menu {
        display: none;
    }
    html.js .i724-native-menu > li.is-open > .sub-menu {
        display: block;
    }
}
