@import url('https://fonts.googleapis.com/css2?family=Inter&family=Open+Sans:wght@300;400;500&display=swap');
:root{
    --navy:#06263b;
    --navy2:#0a344d;
    --blue:#0879b7;
    --green:#2f8f3d;
    --lime:#83b82a;
    --light:#f5f7f7;
    --text:#26343d;
    --muted:#68757d;
    --white:#fff;
    --line:#dce5e7;
}

*,
*::before,
*::after{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
    width:100%;
    max-width:100%;
    overflow-x:hidden;
}

body{
    width:100%;
    max-width:100%;
    margin:0;
    padding:0;
    font-family:sans-serif;
    color:var(--text);
    overflow-x:hidden;
}

a{
    text-decoration:none;
    color:inherit;
}

ul{
    list-style:none;
}

img{
    max-width:100%;
}

section,
header,
footer,
main{
    max-width:100%;
}

.container{
    width:88%;
    max-width:1280px;
    margin:auto;
}


/* =========================
   TOP BAR
========================= */

.topbar{
    width:100%;
    max-width:100%;
    height:38px;
    background:var(--navy);
    color:#fff;
    font-size:12px;
    padding:9px 0;
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:2000;
    overflow:hidden;
}

.topbar .container{
    width:100%;
    max-width:none;
    margin:0;
    padding-left:15px;
    padding-right:15px;

    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
}

.top-left,
.top-right{
    display:flex;
    gap:22px;
    align-items:center;
    min-width:0;
}

.topbar i{
    color:var(--lime);
    margin-right:7px;
}


/* =========================
   HEADER
========================= */

.header{
    width:100%;
    max-width:100%;
    height:92px;
    background:#fff;
    border-bottom:1px solid var(--line);
    position:fixed;
    top:38px;
    left:0;
    right:0;
    z-index:1000;
    overflow:visible;
}

.nav{
    width:100%;
    max-width:100%;
    min-height:92px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    position:relative;
}

.header .container.nav{
    width:100%;
    max-width:none;
    margin:0;
    padding-left:0;
    padding-right:30px;
    overflow:visible;
}


/* =========================
   LOGO + BRAND TEXT
========================= */

.brand{
    display:flex;
    align-items:center;
    gap:5px;
    margin-left:0;
    padding-left:0;
    text-decoration:none;
    min-width:0;
    flex-shrink:1;
}

.brand-logo{
    width:200px;
    height:70px;
    object-fit:contain;
    display:block;
    flex-shrink:0;
    border-radius:8px;
}

.brand-text{
    margin:0;
    padding:0;
    min-width:0;
    overflow:hidden;
}

.brand-text strong{
    display:block;
    font-family:sans-serif;
    font-size:24px;
    letter-spacing:-0.5px;
    color:#15394a;
}

.brand-text strong span:nth-child(1){
    color:#508ce1;
}

.brand-text strong span:nth-child(2){
    color:#508ce1;
}

.brand-text strong span:nth-child(3){
    color:var(--green);
}

.brand-text small{
    display:block;
    color:#31434d;
    font-size:12px;
    font-weight:600;
    letter-spacing:2px;
}

.brand-text small b{
    color:var(--blue);
    margin:0 7px;
}


/* =========================
   MENU
========================= */

.menu{
    display:flex;
    align-items:stretch;
    align-self:stretch;
    height:92px;
    gap:30px;
    flex-shrink:1;
    min-width:0;
}

.menu>li{
    position:relative;
    display:flex;
    align-items:stretch;
}

.menu>li>a{
    font-size:13px;
    font-weight:600;
    color:#33434c;
    padding:0;
    display:flex;
    align-items:center;
    position:relative;
    white-space:nowrap;
    text-transform:uppercase;
}

.menu>li>a:hover,
.menu>li.active>a{
    color:var(--green);
}

.menu>li.active>a:after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:calc(50% + 11px);
    bottom:auto;
    height:3px;
    background:var(--green);
}


/* =========================
   DROPDOWN
========================= */

.dropdown{
    position:absolute;
    top:100%;
    left:-15px;
    width:285px;
    max-width:calc(100vw - 30px);
    background:#fff;
    box-shadow:0 12px 30px rgba(0,0,0,.14);
    border-top:3px solid var(--green);
    opacity:0;
    visibility:hidden;
    transform:translateY(10px);
    transition:.25s;
}

.menu li:hover .dropdown{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

.dropdown a{
    display:block;
    padding:12px 16px;
    border-bottom:1px solid #edf0f1;
    font-size:12px;
}

.dropdown a:hover{
    background:#f1f7f1;
    color:var(--green);
}

.menu>li:has(>a[href="product.html"]) .dropdown a{
    font-family:sans-serif;
    font-size:15px;
    color:#17313A;
    text-transform:uppercase;
}

.menu>li:has(>a[href="product.html"]) .dropdown a:hover{
    color:var(--green);
}

.mobile-btn{
    display:none;
    font-size:24px;
    color:var(--navy);
    cursor:pointer;
    flex-shrink:0;
}


/* =========================
   HERO
========================= */

.hero{
    width:100%;
    max-width:100%;
    min-height:575px;
    position:relative;
    overflow:hidden;
}

.hero:after{
    content:"";
    position:absolute;
    width:500px;
    height:500px;
    right:-160px;
    bottom:-230px;
}

.hero-inner{
    width:100%;
    max-width:1280px;
    min-height:575px;
    display:flex;
    align-items:center;
    position:relative;
    z-index:2;
}

.hero-content{
    max-width:720px;
    color:#fff;
    margin-top:40px;
}

.eyebrow{
    color:var(--lime);
    font-size:14px;
    font-weight:600;
    letter-spacing:3px;
    text-transform:uppercase;
    margin-bottom:15px;
}

.hero h1{
    font-family:sans-serif;
    font-size:58px;
    line-height:1.12;
    font-weight:600;
    margin-bottom:18px;
    text-shadow:0 2px 5px rgba(0,0,0,.5);
}

.hero h1 span{
    color:#82b92e;
}

.hero p{
    max-width:620px;
    color:#fff;
    font-size:16px;
    margin-top:25px;
    margin-bottom:30px;
}


/* =========================
   BUTTONS
========================= */

.btn{
    display:inline-block;
    padding:13px 26px;
    font-size:13px;
    font-weight:600;
    transition:.25s;
}

.btn-primary{
    background:var(--green);
    color:#fff;
}

.btn-primary:hover{
    background:var(--lime);
    color:var(--navy);
}

.btn-outline{
    border:1px solid rgba(255,255,255,.7);
    color:#fff;
    margin-left:10px;
}

.btn-outline:hover{
    background:#fff;
    color:var(--navy);
}


/* =========================
   HERO CARDS
========================= */

.hero-cards{
    position:absolute;
    right:0;
    display:grid;
    grid-template-columns:repeat(2,145px);
    gap:14px;
    max-width:100%;
}

.hero-card{
    height:145px;
    border:1px solid rgba(255,255,255,.2);
    background:rgba(255,255,255,.06);
    backdrop-filter:blur(5px);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    color:#fff;
    text-align:center;
}

.hero-card i{
    font-size:31px;
    color:var(--lime);
    margin-bottom:10px;
}

.hero-card span{
    font-size:11px;
    font-weight:600;
}


/* =========================
   FRONT CAROUSEL
========================= */

.front-carousel{
    width:100%;
    max-width:100%;
    position:relative;
    overflow:hidden;
    margin-top:130px;
}


/* =========================
   SECTION
========================= */

.section{
    width:100%;
    max-width:100%;
    padding:82px 0;
    overflow:hidden;
}

.section-title{
    text-align:center;
    margin-bottom:48px;
}

.section-title .small{
    color:var(--green);
    text-transform:uppercase;
    font-size:12px;
    font-weight:700;
    letter-spacing:2px;
}

.section-title h2{
    font-family:sans-serif;
    color:#003b63;
    font-size:38px;
    margin-top:7px;
}

.section-title h2:after{
    content:"";
    display:block;
    width:58px;
    height:3px;
    background:
        linear-gradient(
            90deg,
            var(--green),
            var(--blue)
        );
    margin:14px auto 0;
}


/* =========================
   ABOUT
========================= */

.about{
    background:#fff;
}

.about-grid{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:65px;
    align-items:center;
}

.about-visual{
    height:380px;
    position:relative;
    overflow:hidden;
    display:flex;
    justify-content:center;
    align-items:center;
}

.about-visual:before{
    content:"";
    width:20px;
    height:20px;
    position:absolute;
}

.about-visual i{
    color:var(--lime);
    font-size:100px;
    z-index:1;
}

.about-visual img{
    max-width:100%;
    object-fit:contain;
}

.about-content{
    min-width:0;
}

.about-content h3{
    font-family:sans-serif;
    font-size:30px;
    color:var(--navy);
    margin-bottom:15px;
}

.about-content p{
    color:#000;
    font-size:13px;
    margin-bottom:15px;
        text-align: justify;

}

.read-more{
    margin-top:10px;
}


/* =========================
   STATS
========================= */

.stats{
    width:100%;
    max-width:100%;
    background:
        linear-gradient(
            110deg,
            var(--navy),
            #0a475c
        );
    padding:42px 0;
    color:#fff;
    overflow:hidden;
}

.stats-grid{
    width:100%;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    text-align:center;
}

.stat{
    border-right:1px solid rgba(255,255,255,.15);
}

.stat:last-child{
    border:0;
}

.stat i{
    color:var(--lime);
    font-size:27px;
    margin-bottom:6px;
}

.stat h3{
    font-size:28px;
}

.stat p{
    font-size:11px;
    color:#c8d7dc;
    text-transform:uppercase;
    letter-spacing:1px;
}


/* =========================
   PRODUCTS
========================= */

.products{
    background:#f5f8f8;
}

.product-grid{
    width:100%;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px;
}

.product-card{
    background:#fff;
    min-height:205px;
    padding:28px 20px;
    border:1px solid #e3eaeb;
    position:relative;
    transition:.25s;
    min-width:0;
}

.product-card:before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:4px;
    height:0;
    background:var(--green);
    transition:.25s;
}

.product-card:hover{
    transform:translateY(-6px);
    box-shadow:
        0 15px 35px
        rgba(6,38,59,.10);
}

.product-card:hover:before{
    height:100%;
}

.product-icon{
    width:55px;
    height:55px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#edf7ee;
    color:var(--green);
    font-size:23px;
    margin-bottom:17px;
}

.product-card h3{
    font-size:14px;
    color:var(--navy);
    margin-bottom:8px;
}

.product-card p{
    font-size:11px;
    color:#000000;
        /*text-align: justify;*/

}


/* =========================
   WHY US
========================= */

.why-grid{
    width:100%;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:25px;
}

.why-card{
    background:#fff;
    min-height:205px;
    padding:28px 20px;
    border:1px solid #e3eaeb;
    position:relative;
    transition:.25s;
    min-width:0;
    text-align:left;
}

.why-card:before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:4px;
    height:0;
    background:var(--green);
    transition:.25s;
}

.why-card:hover{
    transform:translateY(-6px);
    box-shadow:
        0 15px 35px
        rgba(6,38,59,.10);
}

.why-card:hover:before{
    height:100%;
}

.why-card i{
    width:55px;
    height:55px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#edf7ee;
    color:var(--green);
    font-size:23px;
    margin-bottom:17px;
}

.why-card h3{
    font-size:16px;
    color:var(--navy);
    margin-bottom:8px;
}

.why-card p{
    font-size:12px;
    color:var(--muted);
}

.product-card h2,
.why-card h2{
    margin-bottom:16px;
    color:#003b63;
}


/* =========================
   PRINCIPAL COMPANIES
========================= */

.brands{
    background:#f5f8f8;
}

.brand-grid{
    width:100%;
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:15px;
}

.brand-box{
    height:100px;
    min-width:0;
    border:1px solid #dfe7e8;
    background:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:#65737a;
    font-size:11px;
    font-weight:600;
    padding:12px;
    transition:.2s;
    overflow:hidden;
}

.brand-box img{
    max-width:100%;
    max-height:100%;
    object-fit:contain;
}

.brand-box:hover{
    border-color:var(--green);
    color:var(--green);
}


/* =========================
   PRINCIPAL SECTION
========================= */

.principal-section{
    width:100%;
    max-width:100%;
    overflow:hidden;
}

.principal-grid{
    width:100%;
    max-width:100%;
}
@keyframes principalReveal{
    from{
        opacity:0;
        transform:translateY(12px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

#brands .principal-card{
    transition:translate .35s ease, box-shadow .35s ease;
}

#brands .principal-card img{
    transition:scale .4s ease;
}

#brands.reveal-ready:not(.is-visible) .principal-card{
    opacity:0;
}

#brands.is-visible .principal-card{
    animation:principalReveal .6s ease both;
}

#brands.is-visible .principal-card:nth-child(1){ animation-delay:.04s; }
#brands.is-visible .principal-card:nth-child(2){ animation-delay:.08s; }
#brands.is-visible .principal-card:nth-child(3){ animation-delay:.12s; }
#brands.is-visible .principal-card:nth-child(4){ animation-delay:.16s; }
#brands.is-visible .principal-card:nth-child(5){ animation-delay:.20s; }
#brands.is-visible .principal-card:nth-child(6){ animation-delay:.24s; }
#brands.is-visible .principal-card:nth-child(7){ animation-delay:.28s; }
#brands.is-visible .principal-card:nth-child(8){ animation-delay:.32s; }
#brands.is-visible .principal-card:nth-child(9){ animation-delay:.36s; }
#brands.is-visible .principal-card:nth-child(10){ animation-delay:.40s; }
#brands.is-visible .principal-card:nth-child(11){ animation-delay:.44s; }
#brands.is-visible .principal-card:nth-child(12){ animation-delay:.48s; }

@media (hover:hover){
    #brands .principal-card:hover{
        translate:0 -6px;
        box-shadow:0 12px 28px rgba(6,38,59,.10);
    }

    #brands .principal-card:hover img{
        scale:1.04;
    }
}

@media (prefers-reduced-motion:reduce){
    #brands .principal-card{
        animation:none;
    }

    #brands .principal-card,
    #brands .principal-card img{
        transition:none;
    }
}



/* =========================
   CTA
========================= */

.cta{
    width:100%;
    max-width:100%;
    padding:62px 20px;
    background:
        linear-gradient(
            110deg,
            #06263b,
            #0a5261
        );
    color:#fff;
    overflow:hidden;
}

.cta-inner{
    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:30px;
}

.cta h2{
    font-family:sans-serif;
    font-size:32px;
}

.cta p{
    color:#cbd9de;
    font-size:13px;
    margin-top:4px;
}


/* =========================
   CONTACT
========================= */

.contact{
    background:#fff;
}

.contact-grid{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1.4fr;
    gap:55px;
}

.info,
.form{
    min-width:0;
}

.info h3,
.form h3{
    font-family:sans-serif;
    font-size:27px;
    color:var(--navy);
    margin-bottom:25px;
}

.info{
    background:#EAF6F0;
    padding:35px;
    border-left:5px solid #2E9B59;
    border-radius:4px;
}

.info > h3{
    font-family:sans-serif;
    font-size:24px;
    font-weight:700;
    color:#052A35;
    margin-bottom:28px;
}

.info-item{
    display:flex;
    align-items:flex-start;
    gap:15px;
    margin-bottom:25px;
}

.info-icon{
    width:42px;
    height:42px;
    min-width:42px;
    background:#0B5A68;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
}

.info-item h3{
    font-family:sans-serif;
    font-size:16px;
    font-weight:700;
    color:#0B5A68;
    margin-bottom:5px;
}

.info-item h4{
    font-size:13px;
    color:var(--navy);
}

.info-item p{
    font-size:13px;
    color:#000;
    line-height:1.7;
    margin:0;
}

@media(max-width:600px){
    .info{
        padding:25px 20px;
    }

    .info > h3{
        font-size:21px;
    }
}


/* =========================
   FORM
========================= */

.form{
    background:#f7f9f9;
    padding:35px;
    border:1px solid #e4ebec;
}

.form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:15px;
}

.form-group{
    margin-bottom:15px;
    min-width:0;
}

input,
select,
textarea{
    width:100%;
    max-width:100%;
    border:1px solid #d6e0e2;
    background:#fff;
    padding:13px 14px;
    outline:none;
    font-family:inherit;
    font-size:12px;
}

textarea{
    height:125px;
    resize:vertical;
}

input:focus,
select:focus,
textarea:focus{
    border-color:var(--green);
}

button{
    border:0;
    cursor:pointer;
    font-family:inherit;
}


/* =========================
   FOOTER
========================= */

footer{
    width:100%;
    max-width:100%;
    /*background:#041d2d;*/
    color:#fff;
    padding-top:58px;
    overflow:hidden;
    background-color:#304554;
}

.footer-grid{
    width:100%;
    display:grid;
    grid-template-columns:1.5fr 1fr 1.3fr;
    gap:55px;
    padding-bottom:45px;
}

.footer-grid>div{
    min-width:0;
}

.footer h3{
    font-size:16px;
    font-weight:700;
    margin-bottom:20px;
    position:relative;
}

.footer h3:after{
    content:"";
    display:block;
    width:35px;
    height:2px;
    background:var(--lime);
    margin-top:8px;
}

.footer p,
.footer li,
.footer a,
.footer-contact span{
    color:#e7f1f4;
    font-size:16px;
    font-weight:700;
    line-height:1.9;
}

.footer p{
    color:#fff;
}

.footer .brand-text small{
    font-size:16px;
    font-weight:700;
}

.footer-links li{
    margin-bottom:7px;
}

.footer-links a:hover{
    color:var(--lime);
}

.footer-contact li{
    display:flex;
    gap:10px;
    margin-bottom:11px;
}

.footer-contact i{
    color:var(--lime);
    margin-top:5px;
}

.copyright{
    border-top:1px solid rgba(255,255,255,.1);
    text-align:center;
    padding:18px;
    color:#d5e3e8;
    font-size:16px;
    font-weight:700;
}


/* =========================
   FLOATING TOP BUTTON
========================= */

.to-top{
    position:fixed;
    right:22px;
    bottom:22px;
    width:46px;
    height:46px;
    background:var(--green);
    color:#fff;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    box-shadow:
        0 6px 18px
        rgba(0,0,0,.2);
    z-index:999;
}

.to-top:hover{
    background:var(--lime);
    color:var(--navy);
}


/* =========================
   RIGHT SIDE BAR
========================= */
.side-bar{
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    width:100px;
    max-width:100%;
    z-index:50;
    box-shadow:-2px 0 8px rgba(0,0,0,.15);
}

.side-item{
    width:100px;
    height:99px;
    background:var(--navy);
    color:white;
    text-decoration:none;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border-bottom:1px solid rgba(255,255,255,.12);
    transition:.3s;
}

.side-item i{
    font-size:29px;
    margin-bottom:10px;
    color:var(--lime);
}

.side-item span{
    font-size:10px;
    font-weight:500;
    text-align:center;
    line-height:1.35;
    letter-spacing:.2px;
}

.side-item:hover{
    background:var(--green);
    color:white;
}


/* =========================
   RESPONSIVE
========================= */

@media(max-width:1050px){

    .menu{
        gap:16px;
    }

    .menu>li>a{
        font-size:12px;
    }

    .brand-logo{
        width:160px;
    }

    .brand-text strong{
        font-size:20px;
    }

    .brand-text small{
        font-size:10px;
    }

    .hero-cards{
        display:none;
    }

    .product-grid{
        grid-template-columns:repeat(3,1fr);
    }

    .brand-grid{
        grid-template-columns:repeat(4,1fr);
    }

    .principal-grid{
        grid-template-columns:repeat(4,1fr) !important;
        grid-template-rows:auto !important;
    }
}


/* =========================
   TABLET / MOBILE
========================= */

@media(max-width:800px){

    .topbar .container{
        flex-direction:column;
        align-items:flex-start;
    }

    .top-left,
    .top-right{
        flex-wrap:wrap;
        gap:8px 18px;
    }

    .mobile-btn{
        display:block;
    }

    .menu{
        display:none;
        position:absolute;
        top:92px;
        height:auto;
        align-self:auto;
        align-items:flex-start;
        left:0;
        width:100%;
        max-width:100%;
        background:#fff;
        padding:15px 6%;
        box-shadow:
            0 12px 25px
            rgba(0,0,0,.12);
        flex-direction:column;
        align-items:flex-start;
        gap:0;
        overflow:hidden;
    }

    .menu.show{
        display:flex;
    }

    .menu>li{
        width:100%;
    }

    .menu>li>a{
        padding:12px 0;
        width:100%;
    }

    .menu>li.active>a:after{
        top:calc(50% + 10px);
        bottom:auto;
    }

    .dropdown{
        position:static;
        display:none;
        opacity:1;
        visibility:visible;
        transform:none;
        width:100%;
        max-width:100%;
        box-shadow:none;
    }

    .menu li:hover .dropdown{
        display:block;
    }


    /* LOGO */

    .header .container.nav{
        width:100%;
        max-width:none;
        padding-left:0;
        padding-right:20px;
    }

    .brand{
        gap:8px;
    }

    .brand-logo{
        width:130px;
        height:65px;
    }

    .brand-text{
        max-width:155px;
        min-width:0;
        overflow:hidden;
    }

    .brand-text strong{
        font-size:20px;
        line-height:1.05;
    }

    .brand-text small{
        font-size:9px;
        letter-spacing:1.2px;
        white-space:normal;
    }

    .brand-text small b{
        margin:0 4px;
    }


    /* HERO */

    .hero{
        min-height:510px;
    }

    .hero-inner{
        min-height:510px;
    }

    .hero h1{
        font-size:45px;
    }

    .hero-content{
        margin-top:20px;
    }

    .hero-content h1{
        font-size:32px;
    }

    .hero-content p{
        font-size:14px;
    }


    /* CAROUSEL */

    .front-carousel{
        width:100%;
        max-width:100%;
        height:510px;
        overflow:hidden;
        margin-top:130px;
    }


    .about-grid,
    .contact-grid{
        grid-template-columns:1fr;
    }

    .product-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .stats-grid{
        grid-template-columns:repeat(2,1fr);
        gap:25px;
    }

    .stat{
        border:0;
    }

    .why-grid{
        grid-template-columns:1fr;
    }

    .brand-grid{
        grid-template-columns:repeat(3,1fr);
    }

    .cta-inner{
        flex-direction:column;
        align-items:flex-start;
    }

    .footer-grid{
        grid-template-columns:1fr;
    }


    /* PRINCIPAL */

    .principal-grid{
        grid-template-columns:repeat(3,1fr) !important;
        grid-template-rows:auto !important;
    }


    /* RIGHT SIDEBAR */

    .side-bar{
        width:70px;
        max-width:70px;
    }

    .side-item{
        width:70px;
        height:75px;
    }

    .side-item i{
        font-size:22px;
        margin-bottom:6px;
    }

    .side-item span{
        font-size:8px;
    }
}


/* =========================
   SMALL MOBILE
========================= */

@media(max-width:520px){

    .container{
        width:90%;
        max-width:90%;
    }


    /* TOP BAR */

    .topbar{
        font-size:10px;
    }

    .topbar .container{
        padding-left:10px;
        padding-right:10px;
    }

    .top-left,
    .top-right{
        gap:5px 12px;
    }


    /* HEADER */

    .header .container.nav{
        width:100%;
        max-width:none;
        padding-left:0;
        padding-right:15px;
    }

    .brand{
        gap:6px;
        min-width:0;
        max-width:calc(100% - 45px);
    }


    /* LOGO */

    .brand-logo{
        width:105px;
        height:58px;
    }


    /* TEXT */

    .brand-text{
        max-width:155px;
        min-width:0;
        overflow:hidden;
    }

    .brand-text strong{
        font-size:15px;
        line-height:1.05;
        letter-spacing:-0.3px;
        white-space:nowrap;
    }

    .brand-text small{
        font-size:7px;
        letter-spacing:1px;
        white-space:normal;
    }

    .brand-text small b{
        margin:0 3px;
    }


    /* MOBILE MENU */

    .menu{
        top:92px;
        padding:15px 5%;
    }


    /* HERO */

    .hero{
        min-height:510px;
    }

    .hero-inner{
        min-height:510px;
    }

    .hero h1{
        font-size:36px;
    }

    .hero-content h1{
        font-size:30px;
    }

    .hero-content p{
        font-size:13px;
    }


    /* CAROUSEL */

    .front-carousel{
        width:100%;
        max-width:100%;
        height:510px;
        margin-top:130px;
    }


    /* BUTTONS */

    .btn{
        padding:11px 20px;
        font-size:12px;
    }

    .btn-outline{
        margin-left:5px;
    }


    /* SECTIONS */

    .section{
        padding:62px 0;
    }

    .section-title h2{
        font-size:30px;
    }


    /* PRODUCTS */

    .product-grid{
        grid-template-columns:1fr;
    }


    /* BRANDS */

    .brand-grid{
        grid-template-columns:repeat(2,1fr);
    }


    /* PRINCIPAL */

    .principal-grid{
        grid-template-columns:repeat(2,1fr) !important;
        grid-template-rows:auto !important;
        gap:12px !important;
    }

    .principal-grid > div{
        height:100px !important;
    }


    /* FORM */

    .form-row{
        grid-template-columns:1fr;
    }

    .form{
        padding:25px 18px;
    }


    /* SIDEBAR */

    .side-bar{
        width:60px;
        max-width:60px;
    }

    .side-item{
        width:60px;
        height:68px;
    }

    .side-item i{
        font-size:19px;
        margin-bottom:5px;
    }

    .side-item span{
        font-size:7px;
    }
}


/* =========================
   ANIMATIONS
========================= */

@keyframes fadeInDown{

    0%{
        opacity:0;
        transform:translateY(-100px);
    }

    100%{
        opacity:1;
        transform:translateY(0);
    }
}

@keyframes fadeInUp{

    0%{
        opacity:0;
        transform:translateY(100px);
    }

    100%{
        opacity:1;
        transform:translateY(0);
    }
}


/* =========================
   FINAL OVERFLOW PROTECTION
========================= */

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

*{
    max-width:100%;
}

.side-bar,
.side-item{
    max-width:100vw;
}

input,
select,
textarea{
    max-width:100%;
}

/* =========================
   HOME PAGE HEADING SPACING
========================= */

/* ABOUT US */
.about-content h2{
    margin-bottom:28px;
    color:#003b63;
}

/* PRODUCT CATEGORY */
.products .section-title{
    margin-bottom:28px;
}

/* WHY CHOOSE US */
#why .section-title{
    margin-bottom:28px;
}
body.home h1,
body.home h2,
body.home h3,
body.home h4,
body.home h5,
body.home h6,
body.home p,
body.home a,
body.home li,
body.home span,
body.home strong,
body.home small,
body.home button,
body.home input,
body.home select,
body.home textarea,
body.home label{
    font-family:sans-serif;
}

a.product-card{
    display:block;
    color:inherit;
}

.category-columns{
    min-width:0;
}

.client-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:12px 40px;
    align-items:center;
    width:100%;
    min-width:0;
}

.client-card{
    height:110px;
    min-width:0;
    background:#FFFFFF;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:2px;
    border:1px solid transparent;
    border-top:3px solid transparent;
    box-shadow:0 4px 14px rgba(5,42,53,0.18);
    padding:12px;
    transition:translate .35s ease, scale .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.client-card img,
.company-card img{
    max-width:90%;
    max-height:75px;
    width:auto;
    height:auto;
    object-fit:contain;
    transition:scale .4s ease;
}

.company-card img{
    width:85%;
    max-width:240px;
    height:75px;
}

@keyframes logoCardIn{
    from{
        opacity:0;
        transform:translateY(18px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

@media (hover:hover){
    .client-card:hover{
        translate:0 -6px;
        scale:1.02;
        border-top-color:#2E9B59;
        box-shadow:0 14px 28px rgba(6,38,59,.12);
    }

    .client-card:hover img,
    .companies-reveal .company-card:hover img{
        scale:1.03;
    }
}

.clients-reveal.reveal-ready:not(.is-visible) .client-card,
.companies-reveal.reveal-ready:not(.is-visible) .company-card{
    opacity:0;
}

.clients-reveal.is-visible .client-card,
.companies-reveal.is-visible .company-card{
    animation:logoCardIn .55s ease both;
}

@media (max-width:800px){
    .category-columns{
        grid-template-columns:1fr 1fr !important;
    }
}

@media (max-width:520px){
    .category-columns{
        grid-template-columns:1fr !important;
    }

    .product-sheet{
        width:92% !important;
    }
}

@media (max-width:1024px){
    .client-grid{
        grid-template-columns:repeat(3, minmax(0, 1fr));
        gap:14px 18px;
    }
}

@media (max-width:700px){
    .client-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:12px;
    }

    .clients-reveal{
        padding:40px 16px 56px !important;
    }

    .client-card{
        height:100px;
        padding:10px;
    }

    .client-card img{
        max-height:62px;
    }
}

@media (max-width:400px){
    .clients-reveal h1{
        font-size:26px !important;
    }

    .client-card{
        height:92px;
        padding:8px;
    }

    .client-card img{
        max-height:54px;
    }
}

@media (prefers-reduced-motion:reduce){
    .clients-reveal .client-card,
    .companies-reveal .company-card,
    .client-card img,
    .company-card img{
        animation:none !important;
        opacity:1 !important;
        translate:none !important;
        scale:none !important;
        transition:border-color .2s ease, box-shadow .2s ease !important;
    }
}

#brands{
    overflow:hidden;
}

#brands .network-heading{
    transition:none;
}

#brands.reveal-ready:not(.is-visible) .network-heading{
    opacity:0;
}

#brands.is-visible .network-heading{
    animation:principalReveal .6s ease both;
}

#brands .network-slider{
    container-type:inline-size;
    overflow:hidden;
    width:100%;
    touch-action:pan-y;
}

#brands .network-track{
    display:flex;
    width:max-content;
    will-change:transform;
}

#brands .network-track.is-sliding{
    animation:networkSlide var(--network-duration, 11s) linear infinite;
}

#brands .network-slider:hover .network-track.is-sliding,
#brands .network-slider:focus-within .network-track.is-sliding{
    animation-play-state:paused;
}

@keyframes networkSlide{
    from{ transform:translate3d(0,0,0); }
    to{ transform:translate3d(-50%,0,0); }
}

#brands .network-track .principal-card{
    flex:0 0 calc((100cqi - 90px) / 6);
    width:calc((100cqi - 90px) / 6) !important;
    margin-right:18px;
    min-width:0;
    transition:translate .35s ease, box-shadow .35s ease, border-color .35s ease;
}

@media (max-width:1050px){
    #brands .network-track .principal-card{
        flex-basis:calc((100cqi - 54px) / 4);
        width:calc((100cqi - 54px) / 4) !important;
    }
}

@media (max-width:800px){
    #brands .network-track .principal-card{
        flex-basis:calc((100cqi - 36px) / 3);
        width:calc((100cqi - 36px) / 3) !important;
    }
}

@media (max-width:520px){
    #brands .network-track .principal-card{
        flex-basis:calc((100cqi - 12px) / 2);
        width:calc((100cqi - 12px) / 2) !important;
        margin-right:12px;
        height:100px !important;
    }
}

@media (hover:hover){
    #brands .principal-card:hover{
        border-color:#16864f;
    }
}

@media (prefers-reduced-motion:reduce){
    #brands .network-track{
        display:grid;
        grid-template-columns:repeat(6, 1fr);
        gap:18px;
        width:100% !important;
        animation:none !important;
        transform:none !important;
    }

    #brands .network-track .principal-card{
        width:100% !important;
        flex:none !important;
        margin-right:0 !important;
        height:125px !important;
    }

    #brands .network-track .principal-card[aria-hidden="true"]{
        display:none !important;
    }

    #brands .network-heading,
    #brands .principal-card{
        animation:none !important;
        opacity:1 !important;
    }
}

@media (prefers-reduced-motion:reduce) and (max-width:1050px){
    #brands .network-track{
        grid-template-columns:repeat(4, 1fr);
    }
}

@media (prefers-reduced-motion:reduce) and (max-width:800px){
    #brands .network-track{
        grid-template-columns:repeat(3, 1fr);
    }
}

@media (prefers-reduced-motion:reduce) and (max-width:520px){
    #brands .network-track{
        grid-template-columns:repeat(2, 1fr);
        gap:12px;
    }

    #brands .network-track .principal-card{
        height:100px !important;
    }
}

.lab-card{
    border:1px solid #e3eaeb;
    box-shadow:0 8px 20px rgba(6,38,59,.06);
    transition:translate .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.lab-cards.reveal-ready:not(.is-visible) .lab-card{
    opacity:0;
}

.lab-cards.is-visible .lab-card{
    animation:principalReveal .55s ease both;
}

.lab-cards.is-visible .lab-card:nth-child(1){ animation-delay:.04s; }
.lab-cards.is-visible .lab-card:nth-child(2){ animation-delay:.08s; }
.lab-cards.is-visible .lab-card:nth-child(3){ animation-delay:.12s; }
.lab-cards.is-visible .lab-card:nth-child(4){ animation-delay:.16s; }
.lab-cards.is-visible .lab-card:nth-child(5){ animation-delay:.20s; }
.lab-cards.is-visible .lab-card:nth-child(6){ animation-delay:.24s; }

@media (hover:hover){
    .lab-card:hover{
        translate:0 -6px;
        border-color:#2E9B59;
        box-shadow:0 14px 28px rgba(6,38,59,.12);
    }
}

@media (prefers-reduced-motion:reduce){
    .lab-card{
        animation:none;
        opacity:1;
        transition:none;
    }
}
