/**
FOR DARK MODE STYLING OF THIS PAGE ONLY, USE "body.dark-mode" TO PREFACE
SELECTORS IN CSS
    */
h2 {
    color: #307ab3;
}
/*--TEXT COLORS--*/
.brandLtBlueGreen {
    color: #00e0c1;
}
.brandLtBlue {
    color: #02beef;
}
.brandBlue {
    color: #307AB3;
}

/*--HEADER BANNER--*/
.headerContainer {
    position: relative;
    min-height: 320px;
    background-image: url("/graphics/home-header-image-brandon-resized.jpg");
    background-size: auto 100%;
    background-position: left center;
    background-repeat: no-repeat;

}
/* Animate the h3: slide down from above */
.headerContainer h3 {
    font-size: 2.5rem;
    opacity: 0;
    transform: translateY(-50px);
    animation: slideDown 1s ease-out forwards;
    animation-delay: 0.5s;
}

/* Animate the form: fade in after the h3 animation completes */
.headerContainer form {
    opacity: 0;
    animation: fadeIn 1s ease-out forwards; /*animations from css file of base-layout.php*/
    animation-delay: 1s; /* Adjust this delay if needed */
}
#homePageSearchForm {
    position: relative;
    z-index: 5;
}
#homePageSearchBox {
    opacity: 80%;
    position: relative;
    align-items: center;
    border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
    backdrop-filter: blur(30px);
}
#homePageSearchBox:focus, #homePageSearchBox:active {
    outline: none !important;
    box-shadow: none !important;
}
#homePageSearchButton {
    /*position: absolute;*/
    /*right: 3px;*/
    background-color:#307AB3;
    /*height: 2rem;*/
    align-self: center;
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
    color: white;
    border-color: rgba(255, 255, 255, 0.8);
}
#homePageSearchButton:hover {
    background-color: #51b1d2;
}
#homePageSearchButton:focus {
    outline: none !important;
}
/**
* NOTE: ALSO SHARES .search-dropdown CLASS IN
* CSS STYLESHEET IN BASE-LAYOUT.PHP INCLUDE.
* CHECK <HEAD> INCLUDES FOR CSS MAIN STYLES & CLASSES
    */
#homePageSearchResults {
    width: auto !important;
    left: 0;
    z-index: 10 !important;
}

/*--------------------------
    DARK MODE STYLES
---------------------------*/
body.dark-mode #introSection .glass3 {
    background-color: rgba(74, 74, 74, 0.36) !important;
}
body.dark-mode h2, body.dark-mode #introSection h2 {
    color: #36c2d7fa !important;
}
body.dark-mode h5, body.dark-mode p {
    color: rgba(236, 236, 236, 0.98) !important;
}
body.dark-mode #productCards .card h6 {
    color: rgba(158, 244, 255, 0.98) !important;
}
body.dark-mode #productCards .card li a {
    color: rgba(158, 244, 255, 0.98) !important;
}


#navyTopHeaderBanner {
    height: 50px;
    width: 100%;
    background-color: var(--darkblue);
    /* draw a faint grid in the background */
    background-size: 25px 25px;
    background-image:
            linear-gradient(to right, rgba(255, 255, 255, 0.15) 1px, transparent 1px),
            linear-gradient(to bottom, rgba(255, 255, 255, 0.15) 1px, transparent 1px);
}
#navyTopHeaderBanner a {
    margin: 0;
    font-size: 1.6rem;
    font-weight: bold;
    text-shadow: 0 0 5px #505050;
    color: #ffffff;
    text-decoration: none;
}
#navyTopHeaderBanner a:hover {
    opacity: 0.8;
    cursor: pointer;
}

#introSection {
    position: relative;
}
#introPoints {
    color: #333333;
}
#introPoints p {
    font-weight: 300;
    margin: 0;
    font-size: 0.9rem;
}
#introPoints i {
    font-size: 1.3rem;
    color: #63C088;
}
#introText {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 4 !important;
    height: 20rem;
    padding: 1rem;
}
#introSection h2 {
    color: #307ab3;
}
#greyHeaderBanner {
    background-color: #f2f2f2;
    height: 40px;
    padding: 0;

    i {
        color: #094f70;
        margin-right: 0.5rem;
    }
}
#greyHeaderBanner a {
    margin: 0;
    font-size: 1rem;
    font-weight: bold;
    color: #094f70;
    text-decoration: none;
}
#greyHeaderBanner a:hover {
    color: #3079b2 !important;
    text-decoration: underline;
}
.brandBlueBtn a {
    margin-bottom: 1rem;
    display: block;
    width: 100%;
    text-align: center;
    padding: 5px 0;
    color: white;
    background-color: #307AB3;
    border-radius: 3px;
    text-decoration: none;
}

/*--PRODUCT CARDS--*/
#productCards .notBScard ul {
    padding: 0 !important;
}
#productCards .notBScard .cardBody .img-container {
    height: 8rem;
}

/*general use card(s)*/
.cardContainer {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
}
.cards {
    width: 100% !important;
    flex-wrap: wrap;
    display: flex;
    align-items: stretch;
    justify-content: space-evenly;
    gap: 1rem; /*gutter between cards*/
}
.notBScard { /*not bootstrap's card*/
    padding: 2rem 1rem 1rem 1rem;
    margin: 2rem 0;
    position: relative;
    flex-direction: column;
    flex: 0 1 330px;    /* no grow, can shrink, 300px basis */
    display: flex;
    align-items: center;
    text-align: left;
    justify-content: center;
    border: 2px solid #094F71;
    border-radius: 0.5rem;
    background-color: white;
    box-shadow: 6px 16px 20px rgba(122, 122, 122, 0.34);
    transition: transform 1s;
}
.cardHeading {
    padding: 1rem;
    width: 300px;
    text-align: center;
    position:absolute;
    top: -30px;
    background-color: var(--blue);
    border-color: var(--darkblue);
    border-radius: 0.5rem;
    box-shadow: 6px 8px 10px rgba(122, 122, 122, 0.34);
}
.cardHeading a {
    text-decoration: none;
}
.cardHeading h6 {
    margin: 0;
    font-weight: 400;
    color: white;
    font-size: 1.3rem;
}
.cardBody {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: visible;
    /*min-height: 110px;*/
    /*min-width: 300px;*/
    align-items: center;
    /*justify-content: space-between;*/
}
.cardBodyLinks {
    display: grid;
    grid-template-columns: 1fr 1fr;
    /* center the two columns as a group: */
    justify-content: center;
    /* by default each cell centers its content: */
    justify-items: left;
    gap: 0.5rem 0;
    max-width: 18rem;
}
/* shrink‑wrapped ULs (including marker) */
.cardBodyLinks ul {
    display: inline-block;
    list-style-position: inside;
    margin: 0;
    padding: 0;
    text-align: left;
}
.cardBodyLinks ul li {
    padding-left: 0.5rem;
}
.cardBodyLinks ul li a {
    color: var(--blue);
    text-decoration: none;
    font-size: 14px;
}
.cardBodyLinks ul li a:hover {
    text-decoration: underline;
}

/*--WHY US--*/
#whyUs .blue-bg {
    background-color: #094f70;
}
#whyUs .card {
    color: white;
    width: 300px;
    min-height: 350px;
    margin-bottom: 0.5rem;
}
#whyUs .cardBody {
    padding: 1rem;
}
#whyUs .cardBody ul {
    margin: 0;
}
#whyUs .card h5, #whyUs .card ul li {
    text-shadow: 2px 2px 3px rgba(71, 71, 71, 0.5);
}
#whyUsBanner {
    color: #baffd1;
    align-content: center;
    background-color: #094f70;
    width: 100%;
}
#whyUsBanner i {
    font-size: 1.5rem;
}
#whyUsBanner p {
    font-size: 1rem;
}

/*--CUSTOMERS--*/
#customers #customerLogos {
    background-color: #094f6f;
}
#customers {
    min-height: 60vh;
    position: relative;
}

/*--MAP SECTION--*/
/*contains the #map "container" */
#mapSection {
    display: flex;
    position: relative;
    height: 600px;
    width: 100%;
}
/*contains the #svgContainer & mapInfoBox*/
#map {
    height: 100%;
    width: 55rem;
    position: relative;
    left: 0;
    bottom: 0;
}
#worldMap {
    position: absolute;
}
#mapInfoBox {
    position: absolute;
    max-width: 39rem;
    top: -65px;
    right: -293px;
}
#mapInfoBox p {
    margin: 0;
    font-size: 0.9rem;
}


/*--BLOG--*/
.blog-post-container {
    height: 16rem;
}
.blog-post {
    position: relative;
    height: 100%;
    background-color: rgba(48, 122, 179, 0.44);
    transition: background-color 0.3s ease-out;
}
.blog-heading {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 1rem;
    color: white;
    width: 13rem;
    height: 100%;
}
.blog-category {
    font-size: 14px;
}
.blog-link a {
    text-decoration: none;
    font-size: 1rem;
    position: absolute;
    bottom: 6px;
    right: 8px;
    color: white;
}
/*keepin' it clean and simple, bc that's what's cool (instead of using javascript LOL)*/
.blog-post:hover {
    background-color: transparent;
}
.blog-post:hover a {
    text-decoration: underline;
}
#post1, #post6 {
    background-color: rgba(13, 63, 101, 0.44);
}
#post3, #post4 {
    background-color: rgb(188, 188, 188);
}

/*--VIDEOS--*/
.video-post-container {
    height: 16rem;
}
.video-post {
    position: relative;
    height: 100%;
    background-color: rgba(48, 122, 179, 0.44);
    transition: background-color 0.3s ease-out;
}
.video-heading {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 1rem;
    color: white;
    width: 13rem;
    height: 100%;
}
.video-link a {
    text-decoration: none;
    font-size: 1rem;
    position: absolute;
    bottom: 6px;
    right: 8px;
    color: white;
}
.video-post:hover {
    background-color: transparent;
}
.video-post:hover a {
    text-decoration: underline;
}
#video1, #video6 {
    background-color: rgba(13, 63, 101, 0.44);
}
#video3, #video4 {
    background-color: rgb(188, 188, 188);
}



/*--BOTTOM PAGE CONTENT--*/
#learnMore .row {
    position: relative;
}
/* Ensure the parent container is relatively positioned */
#learnMore .container {
    position: relative;
}
/* Absolutely position the button in the center */
#learn-more-link {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: #58989b;
    color: white;
}
#learn-more-link:hover {
    background-color: #427772;
}
#learn-more-text-box {
    position: absolute;
    top: 10%;
    left: 35px;
    color: white;
    width: 30%;
    height: 4rem;
    font-size: 0.9rem;
    text-align: center;
    padding: 0 1rem;
}
#thxForVisitingMessage {
    font-size: 1.2rem;
    color: #636363;
    font-weight: bold;
    em {
        font-weight: normal;
        font-size: 1rem;
    }
}

/* Glassmorphism card effect */
.glass {
    backdrop-filter: blur(17px) saturate(180%);
    -webkit-backdrop-filter: blur(17px) saturate(180%);
    background-color: rgba(17, 25, 40, 0.75);
    /*border-radius: 12px;*/
    border: 1px solid rgba(255, 255, 255, 0.125);
}
/*glass container*/
.glassLight {
    z-index: 5 !important;
    padding: 1rem;
    background: linear-gradient(to bottom right, rgba(255, 255, 255, 0.64), rgba(252, 252, 252, 0.001));
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-radius: 0.5rem;
    border: 2px solid rgba(171, 171, 171, 0.057);
    box-shadow: 0 0 40px rgba(0, 0, 0, 0.3);
}
/* Glass type 3 */
.glass3 {
    margin: 0;
    background-color: rgba(255, 255, 255, 0.36) !important;
    border: 1px solid rgba(255, 255, 255, 0.312) !important;
    backdrop-filter: blur(25px) saturate(180%);
    -webkit-backdrop-filter: blur(25px) saturate(180%);
}
.imageCarousel .slideCard {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;      /* Vertically centers the image */
    justify-content: center;  /* Optionally horizontally centers the image */
}
.imageCarousel .slideCard img {
    height: 18rem;
    width: auto;
    max-width: 25rem;
    object-fit: contain;      /* Ensures the image maintains its aspect ratio */
}
.imageCarousel {
    width: 100%;
    height: var(--height);
    overflow: hidden;
    /*mask-image: linear-gradient(to right, transparent, #000 2% 98%, transparent);*/
}
.imageCarousel .list {
    display: flex;
    width: 100%;
    min-width: calc(var(--width) * var(--quantity));
    position: relative;
}
.imageCarousel .list .item {
    width: var(--width);
    height: var(--height);
    position: absolute;
    left: 100%;
    animation: autoRun 30s linear infinite;
    transition: filter 0.5s;
    animation-delay: calc(
            (30s / var(--quantity)) * (var(--position) - 1) - 30s
    ) !important;
}
@keyframes autoRun {
    from {
        left: 100%;
    }
    to {
        left: calc(var(--width) * -1);
    }
}
.img-container {
    display: flex;
    height: 4rem;         /* Fixed height */
    width: 100%;           /* Ensures container fills available width */
    overflow: hidden;      /* Hide any overflow if images are larger */
}
.img-container img {
    height: 100%;          /* Image takes up the full container height */
    width: 100%;           /* Fills the container width */
    object-fit: contain;   /* Maintains aspect ratio without stretching */
    display: block;
}

/*map, blog & youtube section mobile adjustments*/
@media (max-width: 1260px) {
    #mapInfoBox {
        max-width: 32rem;
        top: -32px;
        right: -229px;
    }
}
@media (max-width: 1199px) {
    #mapInfoBox {
        right: -115px;
    }
}
@media (max-width: 1099px) {
    #mapInfoBox {
        right: -76px;
    }
}

/*style for responsiveness*/
@media (max-width: 992px) {
    /*--MAP SECTION--*/
    #mapSection {
        justify-content: center;
        align-items: center;
        position: relative;
        height: 700px;
    }
    #map {
        width: 100%;
        position: relative;
    }
    #worldMap {
        bottom: 95px;
        left: 0;
    }
    #mapInfoBox {
        position: relative;
        max-width: 100% !important;
        top: 0 !important;
        right: 0 !important;
    }
    #mapInfoBox p {
        margin: 0;
    }
    #learn-more-text-box {
        display: none!important;
    }
    .cardContainer {
        padding: 0;
    }
}
@media (max-width: 860px) {
    #greyHeaderBanner {
        height: 95px;
    }
    #map {
        height: 600px;
    }
    #worldMap {
        bottom: -17px;
    }
}
@media (max-width: 650px) {
    #introText {
        position: relative;
        height: auto;
    }
}
/* Adjust the Navy Banner for small screens */
@media (max-width: 576px) {
    .headerContainer {
        height: 50vh;
    }
    #navyTopHeaderBanner {
        padding: 0.5rem 0;
        height: 150px;
    }
    #greyHeaderBanner {
        height: 85px;
    }
    #greyHeaderBanner a {
        font-size: 0.85rem;
    }
    #greyHeaderBanner i {
        font-size: 1rem;
    }
    #introPoints {
        p {
            font-size: 0.9rem;
            text-wrap: wrap !important;
            white-space: normal !important;
            overflow-wrap: break-word !important;
        }
    }
    #worldMap {
        bottom: 0;
    }
}
