
/* =====================================================
   1. Global safety / base fixes
   Prevent full-width sections from causing horizontal scroll.
===================================================== */

html,
body {
    overflow-x: hidden !important;
}

/* Remove unwanted Astra header pseudo-elements. */
.ast-above-header-bar::before,
.ast-above-header-bar::after,
.ast-primary-header-bar::before,
.ast-primary-header-bar::after,
.main-header-bar::before,
.main-header-bar::after {
    content: none !important;
    display: none !important;
}


/* =====================================================
   2. Header and navigation
   Above header stays in normal flow.
   Primary header overlays banner before scroll.
   Sticky header is controlled by body.si-nav-scrolled.
===================================================== */

.ast-above-header-wrap {
    position: relative !important;
    background-color: #004A98 !important;
    width: 100% !important;
    z-index: 10010 !important;
}

.ast-above-header-bar {
    height: 40px !important;
    min-height: 40px !important;
    display: flex !important;
    align-items: center !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
}

.ast-main-header-wrap {
    position: absolute !important;
    top: 40px !important;
    left: 0 !important;
    width: 100% !important;
    background: transparent !important;
    z-index: 10009 !important;
    transition: all 0.3s ease !important;
}

.ast-primary-header-bar,
.main-header-bar {
    background: transparent !important;
    min-height: 80px !important;
    border: none !important;
}

.ast-above-header .ast-container,
.ast-primary-header-bar .ast-container {
    max-width: 1320px !important;
    margin: 0 auto !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
}

body.si-nav-scrolled .ast-main-header-wrap {
    position: fixed !important;
    top: 0 !important;
    background: rgba(0, 43, 92, 0.98) !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2) !important;
    z-index: 10030 !important;
}

body.admin-bar.si-nav-scrolled .ast-main-header-wrap {
    top: 32px !important;
}

@media (max-width: 782px) {
    body.admin-bar.si-nav-scrolled .ast-main-header-wrap {
        top: 46px !important;
    }
}

body.si-nav-scrolled .ast-primary-header-bar,
body.si-nav-scrolled .main-header-bar {
    min-height: 80px !important;
}

.site-logo-img img {
    max-height: 45px !important;
    transition: all 0.3s ease !important;
}

.main-header-menu > .menu-item > .menu-link {
    color: #ffffff !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) !important;
}

body.si-nav-scrolled .main-header-menu > .menu-item > .menu-link {
    text-shadow: none !important;
}

.ast-header-button-1 .ast-custom-button {
    background-color: #0078C8 !important;
    padding: 14px 30px !important;
    border-radius: 0 !important;
    transition: background 0.3s ease !important;
}

/* Full-width above-header background while keeping inner content centered. */
.ast-above-header-wrap,
.ast-above-header,
.ast-above-header-bar,
.site-above-header-wrap {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    background-color: #004A98 !important;
}

.ast-above-header .ast-container,
.ast-above-header-bar .ast-container,
.site-above-header-wrap .ast-container {
    max-width: 1320px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
}

/* Sticky header inner width and visual alignment. */
body.si-nav-scrolled .ast-main-header-wrap .ast-container,
body.si-nav-scrolled .ast-primary-header-bar .ast-container,
body.si-nav-scrolled .main-header-bar .ast-container {
    max-width: 1240px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
}

body.si-nav-scrolled .ast-main-header-wrap .site-header-section-left {
    transform: translateX(28px) !important;
}

body.si-nav-scrolled .ast-main-header-wrap .site-header-section-right {
    transform: translateX(-28px) !important;
}


/* =====================================================
   3. Single post / article pages
   Preserve custom full-width article/banner layout.
   New FAQ page and Home guides are handled by their own internal CSS:
   .sil-faq-page and .sil-home-guides
===================================================== */

.single-post .faq-single-banner {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}

.single-post .faq-single-banner img {
    width: 100% !important;
    max-width: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.single-post .site-content,
.single-post .content-area,
.single-post .site-main,
.single-post .entry-content,
.single-post article,
.single-post .ast-article-single {
    margin-top: 0 !important;
    padding-top: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}

.single-post .site-content > .ast-container,
.single-post .content-area > .ast-container,
.single-post .site-main > .ast-container {
    max-width: 100% !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.single-post .entry-header,
.single-post .entry-meta,
.single-post .posted-on,
.single-post .byline,
.single-post .author,
.single-post .cat-links,
.single-post .comments-link {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Full-width only for known article/banner modules.
   Avoid using .single-post .entry-content > :first-child,
   because it may force normal text, tables, or non-banner blocks to full width.
*/
.single-post .entry-content > .sil-article-page,
.single-post .entry-content > .faq-single-banner,
.single-post .faq-single-banner,
.single-post .entry-content > .wp-block-cover:first-child,
.single-post .entry-content > .wp-block-image:first-child {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    margin-top: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-radius: 0 !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
}

.single-post .entry-content > .sil-article-page img,
.single-post .entry-content > .faq-single-banner img,
.single-post .entry-content > .wp-block-cover:first-child img,
.single-post .entry-content > .wp-block-image:first-child img,
.single-post .faq-single-banner img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
    border-radius: 0 !important;
    object-fit: cover !important;
}

.single-post .entry-content > .wp-block-cover:first-child,
.single-post .faq-single-banner {
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    border-radius: 0 !important;
}

/* Article header overlays the banner before scroll. */
.single-post .ast-main-header-wrap {
    position: absolute !important;
    top: 40px !important;
    left: 0 !important;
    width: 100% !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    z-index: 10020 !important;
    transition: background 0.25s ease, box-shadow 0.25s ease, top 0.25s ease !important;
}

.single-post .ast-primary-header-bar,
.single-post .main-header-bar {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    min-height: 80px !important;
}

body.single-post.si-nav-scrolled .ast-main-header-wrap {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    background: rgba(0, 43, 92, 0.98) !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.22) !important;
    z-index: 10030 !important;
}

body.admin-bar.single-post.si-nav-scrolled .ast-main-header-wrap {
    top: 32px !important;
}

@media (max-width: 782px) {
    body.admin-bar.single-post.si-nav-scrolled .ast-main-header-wrap {
        top: 46px !important;
    }
}

.single-post .ast-main-header-wrap .ast-container,
.single-post .ast-primary-header-bar .ast-container,
.single-post .main-header-bar .ast-container,
.single-post .ast-primary-header-bar .ast-builder-grid-row-container,
.single-post .main-header-bar .ast-builder-grid-row-container {
    max-width: 1240px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 40px !important;
    padding-right: 40px !important;
    box-sizing: border-box !important;
}

.single-post .ast-primary-header-bar .ast-builder-grid-row,
.single-post .main-header-bar .ast-builder-grid-row {
    max-width: 1240px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body.single-post.si-nav-scrolled .ast-main-header-wrap .site-header-section-left {
    transform: translateX(28px) !important;
}

body.single-post.si-nav-scrolled .ast-main-header-wrap .site-header-section-right {
    transform: translateX(-28px) !important;
}

.single-post .ast-separate-container .ast-article-single,
.single-post .ast-separate-container .ast-article-post {
    background: transparent !important;
    padding: 0 !important;
}

/* Hide default Astra / WordPress single-post modules. */
.single-post .post-navigation,
.single-post .navigation.post-navigation,
.single-post .nav-links,
.single-post .ast-single-post-navigation,
.single-post .single-post-navigation,
.single-post .ast-post-navigation,
.single-post .ast-post-nav,
.single-post .ast-posts-navigation {
    display: none !important;
}

.single-post .ast-related-posts-wrapper,
.single-post .ast-related-posts-title,
.single-post .ast-related-post-content,
.single-post .ast-related-post-featured-section,
.single-post .ast-related-posts,
.single-post .related-posts,
.single-post .related-posts-wrapper {
    display: none !important;
}

.single-post .comments-area,
.single-post #comments,
.single-post .comment-respond,
.single-post #respond,
.single-post .comment-form,
.single-post .comments-title,
.single-post .comment-list,
.single-post .comment-navigation,
.single-post .no-comments {
    display: none !important;
}


/* =====================================================
   4. Footer full-width background
   Keep footer background full-width while content remains centered.
===================================================== */

.site-footer {
    position: relative !important;
    left: 50% !important;
    right: 50% !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
    background-color: #003B73 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

.site-primary-footer-wrap,
.site-below-footer-wrap,
.site-above-footer-wrap,
.ast-footer-overlay,
.footer-adv-overlay,
.footer-adv,
.ast-small-footer,
.ast-footer-bar {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    background-color: #003B73 !important;
    box-sizing: border-box !important;
}

.site-footer .ast-container,
.site-primary-footer-wrap .ast-container,
.site-below-footer-wrap .ast-container,
.site-above-footer-wrap .ast-container,
.ast-footer-overlay .ast-container,
.footer-adv-overlay .ast-container,
.footer-adv .ast-container,
.ast-small-footer .ast-container,
.ast-footer-bar .ast-container {
    max-width: 1320px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    box-sizing: border-box !important;
}

.site-footer .ast-builder-grid-row,
.site-footer .ast-builder-footer-grid-columns {
    width: 100% !important;
    max-width: 1320px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

.site-footer .site-footer-section,
.site-footer .footer-widget-area,
.site-footer .ast-builder-layout-element {
    box-sizing: border-box !important;
    overflow: visible !important;
}

.site-footer img,
.site-footer .custom-logo-link img {
    max-width: 100% !important;
    height: auto !important;
}


/* =====================================================
   5. Mobile responsive fixes
===================================================== */

@media (max-width: 921px) {
    .ast-main-header-wrap {
        position: relative !important;
        top: 0 !important;
        background: #004A98 !important;
    }

    .ast-above-header-wrap {
        height: auto !important;
    }

    .single-post .ast-main-header-wrap {
        position: relative !important;
        top: 0 !important;
        background: #004A98 !important;
    }

    .single-post .ast-main-header-wrap .ast-container,
    .single-post .ast-primary-header-bar .ast-container,
    .single-post .main-header-bar .ast-container,
    .single-post .ast-primary-header-bar .ast-builder-grid-row-container,
    .single-post .main-header-bar .ast-builder-grid-row-container {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}


/* successlcd-contact-mobile-scroll-top-guard-v1 */
@media (max-width: 767.98px) {
  body.page-id-377 #ast-scroll-top {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}
