/**
 * FYI Presentation Framework v1.2.8
 * Cassiopeia presentation layer
 */

body.fyi-coldshot-theme {
    background: var(--fyi-coldshot-body-background, #fff);
    color: #333;
}

body.fyi-coldshot-theme .container-header {
    position: relative;
    background: var(--fyi-coldshot-header-background, #fff);
    background-image: none;
    box-shadow: var(--fyi-coldshot-header-shadow, 0 1px 8px rgb(0 0 0 / 8%));
    color: #333;
    min-height: var(--fyi-coldshot-header-height, 106px);
    z-index: 1100;
}

body.fyi-coldshot-sticky .container-header {
    position: sticky;
    top: 0;
}

/* Cassiopeia normally places branding and navigation in separate grid rows.
   The brand is positioned inside the same visual header row while the menu
   remains in Cassiopeia's native menu position. */
body.fyi-coldshot-theme .container-header .navbar-brand {
    position: absolute;
    z-index: 3;
    top: 50%;
    left: max(var(--fyi-coldshot-logo-left-padding, 24px), calc((100vw - var(--fyi-coldshot-content-width, 1400px)) / 2));
    transform: translateY(calc(-50% + var(--fyi-coldshot-logo-vertical-offset, 0px)));
    margin: 0;
    padding: 0;
    line-height: 1;
}

body.fyi-coldshot-theme .container-header .container-nav {
    width: 100%;
    max-width: none;
    min-height: var(--fyi-coldshot-header-height, 106px);
    margin-inline: auto;
    padding-inline: var(--fyi-coldshot-menu-outer-padding, 24px);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1.5rem;
}

body.fyi-coldshot-theme .navbar-brand img,
body.fyi-coldshot-theme .container-header .site-logo img {
    width: var(--fyi-coldshot-logo-width, 475px);
    max-width: min(42vw, 100%);
    height: auto;
    display: block;
}

body.fyi-coldshot-theme .container-header .mod-menu,
body.fyi-coldshot-theme .container-header .metismenu {
    margin: 0 0 0 auto;
    padding: 0;
    align-items: center;
    justify-content: flex-end;
    gap: var(--fyi-coldshot-nav-gap, 24px);
}

body.fyi-coldshot-theme .container-header .mod-menu > li > a,
body.fyi-coldshot-theme .container-header .mod-menu > li > span,
body.fyi-coldshot-theme .container-header .metismenu > li > a,
body.fyi-coldshot-theme .container-header .metismenu > li > button {
    color: var(--fyi-coldshot-nav-color, #777);
    font-size: var(--fyi-coldshot-nav-size, 15px);
    font-weight: var(--fyi-coldshot-nav-weight, 700);
    letter-spacing: var(--fyi-coldshot-nav-letter-spacing, 1px);
    line-height: 1.2;
    text-transform: uppercase;
    padding-block: var(--fyi-coldshot-nav-vertical-padding, 16px);
    text-decoration: none;
    transition: color .18s ease;
}

body.fyi-coldshot-theme .container-header .mod-menu > li > a:hover,
body.fyi-coldshot-theme .container-header .mod-menu > li > a:focus,
body.fyi-coldshot-theme .container-header .mod-menu > li.active > a,
body.fyi-coldshot-theme .container-header .mod-menu > li.current > a,
body.fyi-coldshot-theme .container-header .metismenu > li.active > a,
body.fyi-coldshot-theme .container-header .metismenu > li.current > a {
    color: var(--fyi-coldshot-active-color, #d89200);
}

body.fyi-coldshot-theme .container-banner {
    margin: 0;
    padding: 0;
    max-width: none;
}

body.fyi-coldshot-theme .container-banner .banner-overlay,
body.fyi-coldshot-theme .container-banner .mod-custom,
body.fyi-coldshot-theme .container-banner .moduletable {
    width: 100%;
    margin: 0;
}

body.fyi-coldshot-theme .container-banner img,
body.fyi-coldshot-theme .fyi-coldshot-hero img {
    width: 100%;
    height: min(var(--fyi-coldshot-hero-max-height, 620px), 52vw);
    min-height: 300px;
    object-fit: cover;
    object-position: center;
    display: block;
}

body.fyi-coldshot-theme .site-grid,
body.fyi-coldshot-theme .grid-child:not(.container-banner):not(.container-header) {
    width: min(100% - 40px, var(--fyi-coldshot-content-width, 1400px));
    max-width: none;
    margin-inline: auto;
}

body.fyi-coldshot-theme main {
    padding-block: var(--fyi-coldshot-section-space, 40px);
}

body.fyi-coldshot-theme.home main,
body.fyi-coldshot-theme.view-featured main {
    padding-top: var(--fyi-coldshot-homepage-top-space, 0px);
}

body.fyi-coldshot-theme .page-header h1,
body.fyi-coldshot-theme .item-page > h1,
body.fyi-coldshot-theme .blog > h1 {
    margin-bottom: 1.5rem;
    color: #4b4b4b;
    font-weight: 500;
}

body.fyi-coldshot-theme .fyi-coldshot-video,
body.fyi-coldshot-theme .video-responsive,
body.fyi-coldshot-theme .responsive-video {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #000;
}

body.fyi-coldshot-theme .fyi-coldshot-video iframe,
body.fyi-coldshot-theme .video-responsive iframe,
body.fyi-coldshot-theme .responsive-video iframe,
body.fyi-coldshot-theme iframe[src*="youtube.com"],
body.fyi-coldshot-theme iframe[src*="youtu.be"],
body.fyi-coldshot-theme iframe[src*="vimeo.com"] {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    border: 0;
}

/* FYI Media Framework / embedded video modules: cinematic page width. */
body.fyi-coldshot-theme .fyi-media-player,
body.fyi-coldshot-theme .fyi-media-framework,
body.fyi-coldshot-theme .fyi-coldshot-media-wide,
body.fyi-coldshot-theme main .moduletable:has(iframe[src*="youtube.com"]),
body.fyi-coldshot-theme main .moduletable:has(iframe[src*="youtu.be"]),
body.fyi-coldshot-theme main .moduletable:has(iframe[src*="vimeo.com"]),
body.fyi-coldshot-theme main .mod-custom:has(iframe[src*="youtube.com"]),
body.fyi-coldshot-theme main .mod-custom:has(iframe[src*="youtu.be"]),
body.fyi-coldshot-theme main .mod-custom:has(iframe[src*="vimeo.com"]) {
    width: calc(100vw - (2 * var(--fyi-coldshot-media-edge-padding, 40px)));
    max-width: var(--fyi-coldshot-media-max-width, 1760px);
    margin-inline: max(calc(50% - 50vw + var(--fyi-coldshot-media-edge-padding, 40px)), calc((100% - var(--fyi-coldshot-media-max-width, 1760px)) / 2));
    border-radius: var(--fyi-coldshot-media-radius, 0px);
    overflow: hidden;
}

body.fyi-coldshot-theme .btn-primary {
    background-color: var(--fyi-coldshot-active-color, #d89200);
    border-color: var(--fyi-coldshot-active-color, #d89200);
}

body.fyi-coldshot-theme .btn-primary:hover,
body.fyi-coldshot-theme .btn-primary:focus {
    filter: brightness(.9);
}

@media (max-width: 1199.98px) {
    body.fyi-coldshot-theme .navbar-brand img,
    body.fyi-coldshot-theme .container-header .site-logo img {
        width: min(var(--fyi-coldshot-logo-width, 475px), 34vw);
    }

    body.fyi-coldshot-theme .container-header .mod-menu,
    body.fyi-coldshot-theme .container-header .metismenu {
        gap: .85rem;
    }

    body.fyi-coldshot-theme .container-header .mod-menu > li > a,
    body.fyi-coldshot-theme .container-header .metismenu > li > a {
        font-size: min(var(--fyi-coldshot-nav-size, 15px), 14px);
    }
}

@media (max-width: 991.98px) {
    body.fyi-coldshot-theme .container-header {
        min-height: 82px;
    }

    body.fyi-coldshot-theme .container-header .navbar-brand {
        left: 14px;
    }

    body.fyi-coldshot-theme .container-header .container-nav {
        width: min(100% - 28px, var(--fyi-coldshot-content-width, 1400px));
        min-height: 82px;
        flex-wrap: wrap;
        padding-block: .55rem;
    }

    body.fyi-coldshot-theme .navbar-brand img,
    body.fyi-coldshot-theme .container-header .site-logo img {
        width: var(--fyi-coldshot-mobile-logo-width, 190px);
        max-width: 55vw;
    }

    body.fyi-coldshot-theme .navbar-toggler {
        margin-left: auto;
        color: #555;
        border-color: rgb(0 0 0 / 16%);
    }

    body.fyi-coldshot-theme .container-header .navbar-collapse {
        width: 100%;
        background: var(--fyi-coldshot-header-background, #fff);
        padding: .5rem 0 1rem;
    }

    body.fyi-coldshot-theme .container-header .mod-menu,
    body.fyi-coldshot-theme .container-header .metismenu {
        align-items: stretch;
        gap: 0;
    }

    body.fyi-coldshot-theme .container-header .mod-menu > li > a,
    body.fyi-coldshot-theme .container-header .metismenu > li > a {
        display: block;
        padding: .8rem 0;
        font-size: var(--fyi-coldshot-nav-size, 15px);
    }

    body.fyi-coldshot-theme .container-banner img,
    body.fyi-coldshot-theme .fyi-coldshot-hero img {
        min-height: 220px;
        height: 48vw;
    }

    body.fyi-coldshot-theme .fyi-media-player,
    body.fyi-coldshot-theme .fyi-media-framework,
    body.fyi-coldshot-theme .fyi-coldshot-media-wide,
    body.fyi-coldshot-theme main .moduletable:has(iframe),
    body.fyi-coldshot-theme main .mod-custom:has(iframe) {
        width: calc(100vw - 40px);
        margin-inline: calc(50% - 50vw + 20px);
    }
}

@media (max-width: 575.98px) {
    body.fyi-coldshot-theme .site-grid,
    body.fyi-coldshot-theme .grid-child:not(.container-banner):not(.container-header) {
        width: min(100% - 24px, var(--fyi-coldshot-content-width, 1400px));
    }

    body.fyi-coldshot-theme .container-banner img,
    body.fyi-coldshot-theme .fyi-coldshot-hero img {
        min-height: 190px;
        height: 58vw;
    }

    body.fyi-coldshot-theme .fyi-media-player,
    body.fyi-coldshot-theme .fyi-media-framework,
    body.fyi-coldshot-theme .fyi-coldshot-media-wide,
    body.fyi-coldshot-theme main .moduletable:has(iframe),
    body.fyi-coldshot-theme main .mod-custom:has(iframe) {
        width: 100vw;
        margin-inline: calc(50% - 50vw);
    }
}

/* FYI Presentation Framework additions — v1.2.0 */
body.fyi-coldshot-theme .container-header .container-nav {
    transform: translateY(var(--fyi-coldshot-nav-vertical-offset, 0px));
}
body.fyi-coldshot-theme .container-header .mod-menu,
body.fyi-coldshot-theme .container-header .metismenu {
    justify-content: var(--fyi-nav-justify, flex-end);
}
/* Authoritative header-to-content spacing rules. */
body.fyi-coldshot-theme:not(.fyi-home-page) main {
    padding-top: calc(var(--fyi-coldshot-inner-page-top-space, 0px) + var(--fyi-coldshot-header-content-gap, 0px)) !important;
}
body.fyi-coldshot-theme.fyi-home-page main {
    padding-top: calc(var(--fyi-coldshot-homepage-top-space, 0px) + var(--fyi-coldshot-header-content-gap, 0px)) !important;
}

/* When homepage media is in Cassiopeia's banner position, the gap belongs
   on the banner rather than main. This prevents the slider from appearing
   to do nothing when the media player sits outside the component area. */
body.fyi-coldshot-theme.fyi-home-page .container-banner:not(:empty) {
    margin-top: calc(var(--fyi-coldshot-homepage-top-space, 0px) + var(--fyi-coldshot-header-content-gap, 0px)) !important;
}
body.fyi-coldshot-theme.fyi-home-page:has(.container-banner:not(:empty)) main {
    padding-top: var(--fyi-coldshot-section-space, 40px) !important;
}
body.fyi-coldshot-theme.fyi-media-mode-contained .fyi-media-player,
body.fyi-coldshot-theme.fyi-media-mode-contained .fyi-media-framework,
body.fyi-coldshot-theme.fyi-media-mode-contained .fyi-coldshot-media-wide {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
}
body.fyi-coldshot-theme.fyi-media-mode-wide .fyi-media-player,
body.fyi-coldshot-theme.fyi-media-mode-wide .fyi-media-framework,
body.fyi-coldshot-theme.fyi-media-mode-wide .fyi-coldshot-media-wide {
    width: calc(100vw - (2 * var(--fyi-coldshot-media-edge-padding, 40px)));
    max-width: var(--fyi-coldshot-media-max-width, 1760px);
}
body.fyi-coldshot-theme.fyi-media-mode-full .fyi-media-player,
body.fyi-coldshot-theme.fyi-media-mode-full .fyi-media-framework,
body.fyi-coldshot-theme.fyi-media-mode-full .fyi-coldshot-media-wide,
body.fyi-coldshot-theme.fyi-media-mode-full main .moduletable:has(iframe[src*="youtube.com"]),
body.fyi-coldshot-theme.fyi-media-mode-full main .moduletable:has(iframe[src*="youtu.be"]),
body.fyi-coldshot-theme.fyi-media-mode-full main .moduletable:has(iframe[src*="vimeo.com"]) {
    width: calc(100vw - (2 * var(--fyi-coldshot-media-edge-padding, 0px)));
    max-width: none;
    margin-left: calc(50% - 50vw + var(--fyi-coldshot-media-edge-padding, 0px));
    margin-right: calc(50% - 50vw + var(--fyi-coldshot-media-edge-padding, 0px));
}

/* Authoritative header-to-content spacing rules.
   The global gap applies to the first visible content region on every page,
   including article titles, component output, and homepage media/banner areas. */
body.fyi-coldshot-theme {
    --fyi-coldshot-effective-page-gap:
        calc(
            var(--fyi-coldshot-header-content-gap, 0px)
            + var(--fyi-coldshot-inner-page-top-space, 0px)
        );
}

body.fyi-coldshot-theme.fyi-home-page {
    --fyi-coldshot-effective-page-gap:
        calc(
            var(--fyi-coldshot-header-content-gap, 0px)
            + var(--fyi-coldshot-homepage-top-space, 0px)
        );
}

/* Standard component/article area, including article titles. */
body.fyi-coldshot-theme main {
    padding-top: var(--fyi-coldshot-effective-page-gap) !important;
}

/* Cassiopeia banner/media published before main content. */
body.fyi-coldshot-theme .container-banner:not(:empty) {
    margin-top: var(--fyi-coldshot-effective-page-gap) !important;
}

/* Apply the gap only once when a banner is the first visible page content. */
body.fyi-coldshot-theme:has(.container-banner:not(:empty)) main {
    padding-top: var(--fyi-coldshot-section-space, 40px) !important;
}

/* Remove native top margins that otherwise make article-title spacing appear
   larger than the selected header-to-content gap. */
body.fyi-coldshot-theme main > .blog,
body.fyi-coldshot-theme main > .blog-featured,
body.fyi-coldshot-theme main > .com-content-article,
body.fyi-coldshot-theme main > .item-page,
body.fyi-coldshot-theme main > .com-content-category-blog,
body.fyi-coldshot-theme main .page-header:first-child,
body.fyi-coldshot-theme main h1:first-child {
    margin-top: 0 !important;
}



/* v1.2.8 — compact mobile header: logo + Joomla hamburger toggle. */
@media (max-width: 991.98px) {
    body.fyi-coldshot-theme .container-header {
        min-height: 76px;
    }

    body.fyi-coldshot-theme .container-header .navbar-brand {
        position: absolute;
        top: 50%;
        left: 14px;
        transform: translateY(calc(-50% + var(--fyi-coldshot-logo-vertical-offset, 0px)));
        z-index: 5;
        max-width: calc(100% - 82px);
    }

    body.fyi-coldshot-theme .navbar-brand img,
    body.fyi-coldshot-theme .container-header .site-logo img {
        width: min(var(--fyi-coldshot-mobile-logo-width, 190px), calc(100vw - 96px));
        max-width: calc(100vw - 96px);
        max-height: 58px;
        object-fit: contain;
        object-position: left center;
    }

    body.fyi-coldshot-theme .container-header .container-nav {
        width: 100%;
        min-height: 76px;
        padding: 0 14px;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        flex-wrap: wrap;
        transform: none;
    }

    body.fyi-coldshot-theme .container-header .navbar-toggler {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        width: 46px;
        height: 42px;
        margin: 0 0 0 auto;
        padding: 8px;
        color: var(--fyi-coldshot-nav-color, #555);
        background: transparent;
        border: 1px solid rgb(0 0 0 / 18%);
        border-radius: 6px;
        z-index: 6;
    }

    body.fyi-coldshot-theme .container-header .navbar-collapse:not(.show),
    body.fyi-coldshot-theme .container-header .collapse:not(.show) {
        display: none !important;
    }

    body.fyi-coldshot-theme .container-header .navbar-collapse.show,
    body.fyi-coldshot-theme .container-header .collapsing {
        display: block !important;
        flex-basis: 100%;
        width: 100%;
        margin-top: 76px;
        padding: .35rem 0 .75rem;
        background: var(--fyi-coldshot-header-background, #fff);
        border-top: 1px solid rgb(0 0 0 / 8%);
    }

    body.fyi-coldshot-theme .container-header .navbar-collapse .mod-menu,
    body.fyi-coldshot-theme .container-header .navbar-collapse .metismenu,
    body.fyi-coldshot-theme .container-header .collapse .mod-menu,
    body.fyi-coldshot-theme .container-header .collapse .metismenu {
        width: 100%;
        margin: 0;
        display: block;
    }

    body.fyi-coldshot-theme .container-header .navbar-collapse .mod-menu > li > a,
    body.fyi-coldshot-theme .container-header .navbar-collapse .metismenu > li > a,
    body.fyi-coldshot-theme .container-header .collapse .mod-menu > li > a,
    body.fyi-coldshot-theme .container-header .collapse .metismenu > li > a {
        display: block;
        padding: .75rem 14px;
        font-size: var(--fyi-coldshot-nav-size, 15px);
    }
}
