html{
    scroll-behavior:smooth;
}
/* ==========================================================================
   THEME CONFIGURATION VARIABLES & FONTS RESET
   ========================================================================== */
:root {
    --brand-blue: #0A3D62;
    --brand-blue-dark: #031B2F;
    --brand-blue-light: #005691;
    --brand-green: #52B202;
    --brand-green-hover: #439602;
    --bg-light-gray: #F8F9FA;
    --text-dark: #333333;
    --text-muted: #666666;
}

* {
    font-family: 'Poppins', sans-serif;
    box-sizing: border-box;
}

body {
    background-color: #ffffff;
    color: var(--text-dark);
    overflow-x: hidden;
    width: 100%;
}

/* ==========================================================================
   GLOBAL DESIGN MODULES & HELPER MODIFIERS
   ========================================================================== */
.btn-green {
    background-color: var(--brand-green);
    color: #ffffff !important;
    font-weight: 500;
    border-radius: 4px;
    border: 1px solid transparent;
    transition: all 0.3s ease;
}
.btn-green:hover {
    background-color: var(--brand-green-hover);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(82, 178, 2, 0.3);
}

.btn-blue-dark {
    background-color: var(--brand-blue-light);
    color: #ffffff !important;
    font-weight: 500;
    border-radius: 4px;
    border: 1px solid transparent;
    transition: all 0.3s ease;
}
.btn-blue-dark:hover {
    background-color: var(--brand-blue);
    transform: translateY(-2px);
}

.text-green { color: var(--brand-green) !important; }
.text-blue-light { color: var(--brand-blue-light) !important; }
.text-blue { color: var(--brand-blue) !important; }
.bg-light-gray { background-color: var(--bg-light-gray); }
.text-light-muted { color: #CCD7E0 !important; }

.section-subtitle {
    font-size: 13px;
    font-weight: 700;
    color: var(--brand-green);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    display: inline-block;
    margin-bottom: 12px;
}

.section-title {
    font-size: 2rem;
    font-weight: 700;
    color: var(--brand-blue);
}

@media (min-width: 768px) {
    .section-title {
        font-size: 2.25rem;
    }
}

/* ==========================================================================
   NAVBAR & TOP BANNER STYLING
   ========================================================================== */
.top-bar {
    background-color: #02233C;
    color: #B2C4D2;
    font-size: 13px;
}
.top-socials a {
    color: #B2C4D2;
    transition: color 0.2s ease-in-out;
}
.top-socials a:hover {
    color: #ffffff;
}

.main-navbar {
    padding: 12px 0;
    transition: all 0.3s ease;
}
.main-navbar .nav-link {
    color: #444444;
    font-weight: 500;
    font-size: 15px;
    padding: 8px 15px !important;
    transition: color 0.2s ease;
}
.main-navbar .nav-link:hover, 
.main-navbar .nav-link.active {
    color: var(--brand-green) !important;
}

.navbar-brand {
    margin: 0;
    padding: 0;
    flex-shrink: 0;
}
.navbar-brand img {
    width: 200px;
    max-width: 100%;
    height: auto;
    display: block;
}

/* ==========================================================================
   HERO BANNER DESIGN SYSTEM
   ========================================================================== */
.hero-section {
    background: linear-gradient(rgba(3, 27, 47, 0.5), rgba(3, 27, 47, 0.5)), 
                url('../images/Main.png') no-repeat center center;
    background-size: cover;
    min-height: 500px;
    padding: 80px 0;
    display: flex;
    align-items: center;
    image-rendering: -webkit-optimize-contrast;
    transform: translateZ(0);
    backface-visibility: hidden;
}

.hero-title {
    font-size: 2.25rem;
    line-height: 1.2;
    margin: 20px 0;
    letter-spacing: -0.5px;
}

.hero-section p {
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 30px;
    color: #f8f9fa;
    max-width: 650px;
}

/* ==========================================================================
   FEATURES BAR
   ========================================================================== */
.features-bar {
    background-color: #072944;
}
.feature-col {
    padding: 10px;
}

/* ==========================================================================
   DYNAMIC PRODUCT CARD INTERACTION ELEMENTS
   ========================================================================== */
.product-card {
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    border-bottom: 3px solid transparent !important;
}
.product-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 30px rgba(0,0,0,0.1) !important;
    border-bottom: 3px solid var(--brand-green) !important;
}
.product-img-wrapper {
    position: relative;
    overflow: hidden;
    background: #eaeaea;
    aspect-ratio: 240 / 160;
}
.product-img-wrapper img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}
.product-heading {
    font-size: 16px;
    font-weight: 600;
    color: var(--brand-blue);
    margin-bottom: 8px;
}
.product-desc {
    font-size: 13px;
    line-height: 1.5;
}
.view-link {
    font-size: 13px;
    text-decoration: none;
    display: inline-block;
    transition: transform 0.2s ease;
}
.view-link:hover {
    transform: translateX(3px);
}

/* ==========================================================================
   COUNTERS STATS ACCENTS
   ========================================================================== */
.stats-ribbon {
    background: linear-gradient(135deg, #094775 0%, #032138 100%);
}
.text-light-blue { color: #43A4EC; }
.text-light-blue-muted { color: #A4C1D6; font-size: 13px; }

/*=============================
ABOUT IMAGE SECTION
=============================*/

.about-gallery{
    display:flex;
    gap:18px;
    align-items:stretch;
}

.about-left{
    flex:1.6;
}

.about-right{
    flex:1;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
}

.about-gallery img{
    width:100%;
    border-radius:12px;
    object-fit:cover;
    display:block;
    transition:.3s;
}

.about-left img{
    height:420px;
}

.about-right img{
    height:200px;
}

.about-gallery img:hover{
    transform:scale(1.02);
}

/* Tablet */

@media(max-width:991px){

.about-gallery{
    flex-direction:column;
}

.about-left img,
.about-right img{
    height:auto;
}

.about-right{
    flex-direction:row;
    gap:15px;
}

.about-right img{
    width:50%;
}

}

/* Mobile */

@media(max-width:576px){

.about-right{
    flex-direction:column;
}

.about-right img{
    width:100%;
}

}
.checklist-grid {
    font-size: 14px;
}

/* ==========================================================================
   INDUSTRIES GRID HOVER EFFECT
   ========================================================================== */
.industry-box {
    transition: all 0.25s ease-in-out;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 105px;
}
.industry-box:hover {
    transform: translateY(-4px);
    background-color: var(--brand-blue) !important;
    box-shadow: 0 8px 20px rgba(10, 61, 98, 0.15);
}
.industry-box:hover i,
.industry-box:hover span {
    color: #ffffff !important;
}

/*=========================================================
FEATURE SECTION
=========================================================*/

.about-feature-section{
    padding:60px 0;
    background:#ffffff;
}

.feature-wrapper{

    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:25px;

}


/*==========================
CARD
===========================*/

.feature-card{

    background:#fff;
    border-radius:16px;
    overflow:hidden;

    display:grid;
    grid-template-columns:60% 40%;

    height:200px;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.35s;

}




/*==========================
LEFT CONTENT
===========================*/

.feature-content{

    padding:35px;

    display:flex;
    flex-direction:column;
    justify-content:center;

}

.feature-tag{

    color:#77a72c;

    font-size:13px;

    font-weight:700;

    text-transform:uppercase;

    margin-bottom:10px;

    letter-spacing:.8px;

}

.feature-content h2{

    font-size:15px;

    line-height:1.25;

    font-weight:700;

    color:#1f2937;

   
}

.feature-content p{

    color:#6b7280;

    line-height:1.8;

    font-size:12px;

   

}


/*==========================
LIST
===========================*/

.feature-list{

    list-style:none;

    padding:0;

    margin:0;

}

.feature-list li{

    display:flex;

    align-items:center;

    gap:4px;

    

    font-size:12px;

    color:#444;

}

.feature-list i{

    color:#3ba9ff;

    font-size:12px;

}


/*==========================
BUTTON
===========================*/

.feature-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:100px;

    height:30px;

    border-radius:8px;

    background:#0d63c9;

    color:#fff;

    text-decoration:none;

    font-weight:200;

    transition:.3s;

}

.feature-btn:hover{

    background:#084ea3;

    color:#fff;

}


/*==========================
IMAGE
===========================*/

.feature-image{

    width:100%;

    height:100%;

    overflow:hidden;

    position:relative;

}

.feature-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    object-position:center;

    display:block;

}


/*=========================================================
TABLET
=========================================================*/

@media(max-width:991px){

.feature-wrapper{

    grid-template-columns:1fr;

}

.feature-card{

    height:320px;

}

.feature-content h2{

    font-size:28px;

}

}


/*=========================================================
MOBILE
=========================================================*/

@media(max-width:767px){

.feature-card{

    grid-template-columns:1fr;

    grid-template-rows:auto 220px;

    height:auto;

}

.feature-content{

    order:1;

    padding:25px;

}

.feature-image{

    order:2;

    height:220px;

}

.feature-content h2{

    font-size:24px;

}

.feature-content p{

    font-size:14px;

}

.feature-list li{

    font-size:14px;

}

.feature-btn{

    width:100%;

}

}

/*=====================================================
CONTACT SECTION
=====================================================*/

.contact-banner-section{

    background:
    linear-gradient(rgba(3,27,47,.95),rgba(3,27,47,.95)),
    url('https://via.placeholder.com/1920x700')
    center center/cover no-repeat;

    padding:70px 0;

}

/*=============================
LEFT SIDE
=============================*/

.contact-heading{

    font-size:38px;

    font-weight:700;

    color:#fff;

    line-height:1.3;

}

.contact-text{

    color:#cfd8df;

    font-size:15px;

    line-height:1.8;

}

.contact-details{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.contact-item{

    display:flex;

    align-items:center;

    gap:12px;

    font-size:15px;

    color:#fff;

}

.contact-item i{

    color:var(--brand-green);

    font-size:20px;

}


/*=============================
CONTACT FORM
=============================*/

.floating-contact-form{

    background:#fff;

    border-radius:12px;

    padding:22px;

    border-top:4px solid var(--brand-green);

    box-shadow:0 10px 30px rgba(0,0,0,.12);

    max-width:580px;

    margin-left:auto;

}

.floating-contact-form .form-control{

    background:#f7f8fa;

    border:none;

    border-radius:8px;

    height:44px;

    padding:10px 14px;

    font-size:14px;

    box-shadow:none;

}

.floating-contact-form textarea.form-control{

    height:100px;

    resize:none;

    padding-top:12px;

}

.floating-contact-form .form-control:focus{

    border:1px solid var(--brand-green);

    box-shadow:0 0 0 .2rem rgba(82,178,2,.15);

}

.btn-green{

    background:var(--brand-green);

    color:#fff;

    border:none;

    height:46px;

    font-size:14px;

    font-weight:600;

    border-radius:8px;

    transition:.3s;

}

.btn-green:hover{

    background:#429300;

    color:#fff;

}


/*=====================================================
TABLET
=====================================================*/

@media (max-width:991px){

.contact-banner-section{

    padding:60px 0;

}

.contact-heading{

    font-size:30px;

}

.floating-contact-form{

    margin-top:15px;

    max-width:100%;

}

}


/*=====================================================
MOBILE
=====================================================*/

@media (max-width:767px){

.contact-banner-section{

    padding:45px 0;

}

.contact-heading{

    font-size:24px;

    text-align:center;

}

.contact-text{

    text-align:center;

}

.contact-details{

    align-items:center;

}

.floating-contact-form{

    padding:18px;

}

.floating-contact-form .form-control{

    height:42px;

    font-size:13px;

}

.floating-contact-form textarea.form-control{

    height:90px;

}

.btn-green{

    height:44px;

    font-size:13px;

}

}

/*==========================
        FOOTER
==========================*/

.main-footer{

    background:#071d31;
    color:#fff;
    padding:70px 0 25px;

}

.footer-logo{

    width:220px;
    max-width:100%;
}

.footer-about{

    color:#d8dde5;
    font-size:16px;
    line-height:1.9;
    margin-bottom:30px;
}

.footer-title{

    color:#fff;
    font-size:18px;
    font-weight:700;
    margin-bottom:25px;
    position:relative;
}

.footer-title::after{

    content:"";
    position:absolute;
    left:0;
    bottom:-10px;
    width:60px;
    height:3px;
    background:#59b600;
    border-radius:20px;

}

.footer-links{

    list-style:none;
    padding:0;
    margin:0;

}

.footer-links li{

    margin-bottom:8px;

}

.footer-links a{

    color:#d6dce5;
    text-decoration:none;
    transition:.3s;
    font-size:15px;

}

.footer-links a:hover{

    color:#59b600;
    padding-left:8px;

}

.footer-contact{

    list-style:none;
    padding:0;
    margin:0;

}

.footer-contact li{

    display:flex;
    align-items:flex-start;
    gap:15px;
    margin-bottom:22px;
    color:#d6dce5;
    line-height:1.7;

}

.footer-contact i{

    color:#59b600;
    font-size:18px;
    width:20px;
    margin-top:5px;

}

.footer-social-icons{

    display:flex;
    gap:12px;

}

.footer-social-icons a{

    width:46px;
    height:46px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    transition:.35s;

}

.footer-social-icons a:hover{

    background:#59b600;
    transform:translateY(-4px);

}

.copyright-text{

    color:#c7d1dc;
    margin:0;
    font-size:15px;

}

/*==========================
        MOBILE
==========================*/

@media(max-width:991px){

.main-footer{

    text-align:center;

}

.footer-title::after{

    left:50%;
    transform:translateX(-50%);

}

.footer-social-icons{

    justify-content:center;

}

.footer-contact li{

    justify-content:center;
    text-align:left;

}

}

@media(max-width:576px){

.main-footer{

    padding:55px 0 20px;

}

.footer-title{

    margin-top:15px;
}

.footer-about{

    font-size:15px;

}

.footer-links a{

    font-size:15px;

}

.footer-contact{

    margin-top:5px;

}

}

/* ==========================================================================
   RESPONSIVE MEDIA BREAKPOINTS (MOBILE & TABLET OPTIMIZATIONS)
   ========================================================================== */

/* Large Desktop Screens */
@media (min-width: 1200px) {
    .hero-title {
        font-size: 3.25rem;
    }
    /* Restructures custom 8-col grid inside bootstrap layout seamlessly */
    .row-cols-lg-8 > .col {
        flex: 0 0 12.5%;
        max-width: 12.5%;
    }
}

/* Tablets and Notebooks (Under 1200px) */
@media (max-width: 1199.98px) {
    .row-cols-lg-8 > .col {
        flex: 0 0 25%;
        max-width: 25%;
    }
    .image-collage-container {
        height: 340px;
    }
}

/* Medium Tablets & Mobile Views (Under 992px) */
@media (max-width: 991.98px) {
    .main-navbar {
        padding: 10px 0;
    }
    .navbar-brand img {
        width: 180px;
    }
    .navbar-collapse {
        background: #ffffff;
        padding: 20px;
        border-radius: 8px;
        margin-top: 15px;
        box-shadow: 0 8px 30px rgba(0,0,0,0.1);
    }
    .main-navbar .nav-link {
        padding: 10px 0 !important;
        border-bottom: 1px solid #f1f1f1;
    }
    .main-navbar .nav-link:last-child {
        border-bottom: none;
    }
    .main-navbar .navbar-nav {
        margin-bottom: 20px !important;
    }
    .hero-section {
        text-align: center !important;
        padding: 60px 0;
        min-height: auto;
    }
    .hero-section .text-start {
        text-align: center !important;
    }
    .hero-section p {
        margin-left: auto;
        margin-right: auto;
    }
    .hero-section .d-flex {
        justify-content: center;
    }
    .feature-col {
        text-align: center;
        flex-direction: column;
        gap: 10px !important;
    }
    .image-collage-container {
        display: none !important; /* Safety fail-safe to prevent broken absolute positioning metrics */
    }
    .row-cols-lg-8 > .col {
        flex: 0 0 33.333%;
        max-width: 33.333%;
    }
}

/* Small Mobile Viewports (Under 576px) */
@media (max-width: 575.98px) {
    .hero-title {
        font-size: 2rem;
    }
    .hero-section p {
        font-size: 0.9rem;
    }
    .hero-section .d-flex {
        flex-direction: column;
        width: 100%;
        gap: 12px !important;
    }
    .hero-section .btn {
        width: 100%;
    }
    .row-cols-lg-8 > .col {
        flex: 0 0 50%;
        max-width: 50%;
    }
    .product-card .text-start, 
    .product-card h5, 
    .product-card p {
        text-align: center !important;
    }
    .product-card .text-start {
        text-align: center !important;
    }
    .floating-contact-form {
        padding: 25px 20px !important;
    }
    .base-copyright-row {
        flex-direction: column-reverse;
        gap: 10px;
    }
}

/*======================================
Gallery Section
======================================*/

.gallery-section{

    padding:80px 0;

    background:#f8fafc;

}

.section-title{

    margin-bottom:50px;

}

.section-title span{

    color:#52B202;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;

    text-transform:uppercase;

}

.section-title h2{

    font-size:40px;

    font-weight:700;

    color:#0A3D62;

    margin:15px 0;

}

.section-title p{

    max-width:650px;

    margin:auto;

    color:#666;

}


/*=========================
Gallery Image
=========================*/

.gallery-img{

    width:100%;

    height:240px;

    object-fit:cover;

    border-radius:15px;

    transition:.4s;

    cursor:pointer;

    box-shadow:0 8px 20px rgba(0,0,0,.08);

}

.gallery-img:hover{

    transform:translateY(-8px) scale(1.04);

    box-shadow:0 20px 35px rgba(0,0,0,.15);

}


/*=========================
Tablet
=========================*/

@media(max-width:991px){

.gallery-img{

    height:200px;

}

.section-title h2{

    font-size:34px;

}

}


/*=========================
Mobile
=========================*/

@media(max-width:767px){

.gallery-section{

    padding:60px 0;

}

.gallery-img{

    height:150px;

    border-radius:10px;

}

.section-title{

    margin-bottom:35px;

}

.section-title h2{

    font-size:28px;

}

.section-title p{

    font-size:14px;

}

}

/* Remove extra gap between Industries and Gallery */

.industries-section{
    padding-bottom:20px !important;
}

.gallery-section{
    padding-top:20px !important;
    padding-bottom:70px;
}

.gallery-section .section-title{
    margin-bottom:25px;
}

/*======================================
        OUR PRODUCTS
=======================================*/

.our-products{
    background:#f8f9fa;
}

.section-title span{
    color:#0d6efd;
    font-weight:600;
    letter-spacing:1px;
}

.section-title h2{
    font-size:38px;
    font-weight:700;
    margin-top:10px;
}

.section-title p{
    color:#777;
    max-width:700px;
    margin:auto;
}


/* Card */

.product-card{

    display:flex;
    flex-direction:column;

    height:100%;

    background:#fff;

    border-radius:15px;

    overflow:hidden;

    transition:.3s;

    box-shadow:0 8px 25px rgba(0,0,0,.08);

}

.product-card:hover{

    transform:translateY(-6px);

    box-shadow:0 15px 35px rgba(0,0,0,.15);

}


/* Image */

.product-image{

    width:100%;

    height:220px;

    overflow:hidden;

}

.product-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.5s;

}

.product-card:hover img{

    transform:scale(1.08);

}


/* Content */

.product-content{

    padding:20px;

    display:flex;

    flex-direction:column;

    flex:1;

}

.product-content h4{

    font-size:20px;

    font-weight:700;

    margin-bottom:12px;

    color:#222;

}

.product-content p{

    color:#666;

    line-height:1.7;

    flex:1;

    margin-bottom:18px;

}

.view-btn{

    color:#0d6efd;

    text-decoration:none;

    font-weight:600;

}

.view-btn:hover{

    color:#003f91;

}

/*=========================
        PRODUCT ARROWS
==========================*/

#productCarousel{
    position: relative;
    overflow: visible;
}

.product-arrow{
    width:60px;
    opacity:1;
}

.carousel-control-prev{
    left:-70px;
}

.carousel-control-next{
    right:-70px;
}

.product-arrow .carousel-control-prev-icon,
.product-arrow .carousel-control-next-icon{

    width:50px;
    height:50px;
    border-radius:50%;
    background-color:#0d6efd;

    background-repeat:no-repeat;
    background-position:center;
    background-size:20px;

}

/* White Left Arrow */
.carousel-control-prev-icon{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3E%3C/svg%3E");
}

/* White Right Arrow */
.carousel-control-next-icon{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 1.646a.5.5 0 0 0 0 .708L10.293 8l-5.647 5.646a.5.5 0 0 0 .708.708l6-6a.5.5 0 0 0 0-.708l-6-6a.5.5 0 0 0-.708 0z'/%3E%3C/svg%3E");
}

/* Mobile */

@media(max-width:991px){

.carousel-item .row{

    flex-wrap:nowrap;

    overflow-x:auto;

    scroll-behavior:smooth;

    padding-bottom:10px;

}

.carousel-item .row::-webkit-scrollbar{

    display:none;

}

.carousel-item .col-md-6{

    min-width:300px;

}

.product-arrow{

    display:none;

}

}


@media(max-width:768px){

.section-title h2{

    font-size:28px;

}

.product-image{

    height:200px;

}

.product-content{

    padding:16px;

}

.product-content h4{

    font-size:18px;

}

.product-content p{

    font-size:14px;

}

}