/* =======================================================
   BS PM Solutions
   Version 0.3
======================================================= */

/* =======================================================
   VARIABLES
======================================================= */

:root{

    --blue:#1B5FA7;
    --dark:#2F343C;
    --background:#FFFFFF;
    --light:#F7F8FA;
    --text:#222222;

}

/* =======================================================
   RESET
======================================================= */

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

html{

    scroll-behavior:smooth;

}

body{

    font-family:'Inter',sans-serif;
    background:var(--background);
    color:var(--text);

}

section{

    scroll-margin-top:90px;

}

img{

    display:block;
    max-width:100%;
    height:auto;

}

a{

    text-decoration:none;
    color:inherit;

}

.container{

    width:min(94%,1400px);

    margin:auto;

}

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

header{

    position:sticky;

    top:0;

    z-index:1000;

    background:rgba(255,255,255,.92);

    backdrop-filter:blur(12px);

    border-bottom:1px solid #ECECEC;

    height:75px;

    display:flex;

    align-items:center;

}

.nav{

    display:flex;
    justify-content:space-between;
    align-items:center;

}

.logo img{

    width:165px;

}

nav{

    display:flex;
    gap:50px;

}

nav a{

    position:relative;

    font-size:14px;

    font-weight:600;

    letter-spacing:1px;

    text-transform:uppercase;

    padding:6px 0;

    transition:.3s;

}

nav a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-4px;

    width:0;

    height:2px;

    background:var(--blue);

    transition:.3s;

}

nav a:hover::after{

    width:100%;

}

nav a:hover{

    color:var(--blue);

}

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

.hero{

    display:flex;

    align-items:center;

    padding:60px 0 80px;

}

.hero-grid{

    display:grid;

    grid-template-columns:45% 55%;

    gap:30px;

    align-items:center;

}

.eyebrow{

    color:var(--blue);

    font-size:13px;

    font-weight:700;

    letter-spacing:2px;

    text-transform:uppercase;

}

.hero h1{

    font-size:58px;

    line-height:1.05;

    color:var(--dark);

    margin:18px 0;

}

.hero p{

    max-width:480px;

    font-size:20px;

    color:#666;

    line-height:1.7;

    margin-bottom:45px;

}

.btn{

    display:inline-block;

    background:var(--blue);

    color:white;

    padding:18px 36px;

    border-radius:50px;

    font-weight:600;

    box-shadow:0 12px 30px rgba(27,95,167,.20);

    transition:.35s;

}

.btn:hover{

    transform:translateY(-4px);

    box-shadow:0 18px 40px rgba(27,95,167,.28);

}

.hero-image{

    display:flex;

    justify-content:center;

    align-items:center;

    padding-left:20px;

}

.hero-image img{

    width:100%;

    max-width:780px;

}

/* =======================================================
   EXPERIENCE
======================================================= */

.stats{

    padding:100px 0;

    background:var(--light);

}


.section-title{

    text-align:center;

    margin-bottom:70px;

}

.section-title h2{

    font-size:42px;

    color:var(--dark);

    margin-bottom:15px;

}

.section-title p{

    color:#666;

    font-size:18px;

}

.stats-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:30px;

}

.stat-card{

    background:white;

    padding:55px 30px;

    border-radius:16px;

    text-align:center;

    box-shadow:0 8px 25px rgba(0,0,0,.05);

    transition:.3s;

}

.stat-card:hover{


    transform:translateY(-10px);

    box-shadow:0 18px 45px rgba(0,0,0,.10);

}

.stat-card h3{

    color:var(--blue);

    font-size:60px;

    font-weight:800;

    margin-bottom:12px;

}

.stat-card span{

    color:#666;

    font-size:18px;

    line-height:1.4;

}

/* =======================================================
   EXPERTISE
======================================================= */

.expertise{

    padding:120px 0;

}

.expertise-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:35px;

}

.expertise-card{

    background:white;

    border-radius:18px;

    overflow:hidden;

    box-shadow:0 10px 30px rgba(0,0,0,.06);

    transition:.35s;

}

.expertise-card:hover{

    transform:translateY(-8px);

}

.expertise-card img{

    width:100%;

    height:240px;

    object-fit:cover;

}

.expertise-content{

        padding:38px;

        min-height:220px;

}

.expertise-content h3{

    font-size:26px;

    color:var(--dark);

    margin-bottom:20px;

}

.expertise-content ul{

    list-style:none;

}

.expertise-content li{

    position:relative;

    padding-left:20px;

    margin-bottom:14px;

    color:#666;

}

.expertise-content li::before{

    content:"•";

    color:var(--blue);

    position:absolute;

    left:0;

    font-size:20px;

}

.expertise-content .project-link{

    display:inline-block;

    margin-top:18px;

}

/* =======================================================
   SELECTED CASE STUDIES
======================================================= */

.case-studies{

    padding:120px 0;

    background:var(--light);

}

.project-row{

    display:grid;

    grid-template-columns:60% 40%;

    gap:70px;

    align-items:center;
}

.project-row:not(:last-child){
    
    margin-bottom:100px;

}



.project-image{

    display:flex;

    justify-content:center;

    align-items:center;

}

.project-image img{

    max-width:420px;
    width:100%;
    border-radius:20px;

    box-shadow:0 18px 45px rgba(0,0,0,.10);

}





.project-tag{

    display:inline-block;

    margin-bottom:18px;

    color:var(--blue);

    font-size:13px;

    font-weight:700;

    letter-spacing:2px;

    text-transform:uppercase;

}

.project-content h3{

    font-size:46px;

    color:var(--dark);

    margin-bottom:22px;

}

.project-content p{

    font-size:20px;

    line-height:1.7;

    color:#666;

    margin-bottom:30px;

}

.project-content ul{

    list-style:none;

    margin-bottom:35px;

}

.project-content li{

    position:relative;

    padding-left:24px;

    margin-bottom:14px;

    color:#555;

}

.project-content li::before{

    content:"✓";

    position:absolute;

    left:0;

    color:var(--blue);

    font-weight:700;

}

.project-link{

    color:var(--blue);

    font-weight:700;

    transition:.3s;

}

.project-link:hover{

    letter-spacing:.5px;

}

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

.about{

    padding:120px 0;

}

.about-grid{

    display:grid;
    grid-template-columns:1fr 220px;
    gap:60px;
    align-items:center;

    margin-bottom:60px;

}

.about-text h3{

    font-size:26px;
    font-weight:700;
    color:#2F343C;

}

.about-text p{

    font-size:18px;
    line-height:1.7;
    color:#666;
    margin-top:20px;

}

.about-image img{

    width:100%;
    max-width:220px;

    border-radius:12px;
    margin-left:auto;

    display:block;

}

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

.contact{

    padding:120px 0;

    background:#7f838b;

    color:white;

}

.contact-grid{

    display:grid;

    grid-template-columns:60% 40%;

    gap:40px;

    align-items:center;

}

.contact-left h2{

    font-size:48px;

    margin:20px 0;

    line-height:1.15;

}

.contact-left p{

    font-size:20px;

    line-height:1.8;

    color:rgba(255,255,255,.85);

    margin-bottom:45px;

}

.contact-right{

    background:rgba(0,0,0,.12);

    padding:45px;

    border-radius:20px;

    border:1px solid rgba(255, 255, 255, 0.15);

     text-align:center;

}

.contact-right h3{

    font-size:32px;

    margin-bottom:12px;

    color:white;

    line-height:1.3;

}

.contact-subtitle{

    color:var(--blue);

    font-size:18px;

    font-weight:600;

    line-height:1.8;

    margin-bottom:45px;

}


.contact-info strong{


    display:block;

    font-size:20px;

    margin-bottom:0;

    color:white;

    font-weight:700;

}


.contact-item{

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:8px;

}

.contact-info{

    display:flex;

    flex-direction:column;

    gap:40px;

}
.contact-item a {

    color: rgba(255,255,255,.90);
    font-size: 17px;
    text-decoration: none;
    transition: color .2s ease;

}

.contact-item a:hover {

    color: white;
    text-decoration: underline;

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

.footer{

    background:#7f838b;

    color:white;

    padding:35px 0 18px;

}

.footer-grid{

    display:flex;

    justify-content:space-between;

    align-items:flex-start;

    margin-bottom:25px;

}

.footer-left h3{

    font-size:24px;

    margin-bottom:10px;

}

.footer-left p{

    color:rgba(255,255,255,.82);

    font-size:16px;

}

.footer-logo{

    width:190px;

    height:auto;

    margin-bottom:15px;
}

.footer-right{

    display:flex;

    gap:30px;

}

.footer-right a{

    color:rgba(255,255,255,.80);

    transition:.3s;

}

.footer-right a:hover{

    color:var(--blue);

}

.footer-bottom{

    border-top:1px solid rgba(255,255,255,.10);

    padding-top:20px;

    text-align:center;

}

.footer-bottom p{

    font-size:14px;

    color:rgba(255,255,255,.60);

}

/* =======================================================
   CASE STUDY HERO
======================================================= */

.case-hero{

    padding:110px 0 90px;

}

.case-hero-grid{

    display:grid;

    grid-template-columns:55% 45%;

    gap:70px;

    align-items:center;

}

.case-hero-text h1{

    font-size:58px;

    line-height:1.1;

    color:var(--dark);

    margin:20px 0;

}

.case-hero-text p{

    font-size:22px;

    line-height:1.7;

    color:#666;

    max-width:600px;

}

.case-hero-image{

    display:flex;

    justify-content:center;

}

.case-hero-image img{

    width:100%;

    max-width:520px;

    border-radius:20px;

    box-shadow:0 18px 45px rgba(0,0,0,.12);

}

.case-highlights{

    display:flex;

    flex-wrap:wrap;

    gap:12px;

    margin:10px 0 28px;

}

.case-highlights span{

    background:#EEF5FC;

    color:var(--blue);

    padding:10px 18px;

    border-radius:30px;

    font-size:14px;

    font-weight:600;

    border:1px solid rgba(27,95,167,.15);

}


/* =======================================================
   CASE OVERVIEW
======================================================= */

.case-overview{

    padding:40px 0 100px;

}

.overview-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:25px;

}

.overview-card{

    background:white;

    padding:28px 32px;

    border-radius:18px;

    box-shadow:0 6px 18px rgba(0,0,0,.05);

    border-top:4px solid var(--blue);

}

.overview-card h4{

    font-size:14px;

    color:var(--blue);

    text-transform:uppercase;

    letter-spacing:1px;

    margin-bottom:15px;

}

.overview-card p{

    font-size:18px;

    font-weight:600;

    line-height:1.5;

    color:var(--dark);

}

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

.case-section{

    padding:100px 0;

}

.case-grid{

    display:grid;

    grid-template-columns:55% 45%;

    gap:70px;

    align-items:center;

}

.case-text h2{

    font-size:42px;

    color:var(--dark);

    margin:18px 0 30px;

    line-height:1.2;

}

.case-text p{

    font-size:20px;

    color:#666;

    line-height:1.8;

    margin-bottom:24px;

}

.case-image{

    display:flex;

    justify-content:center;

}

.case-image img{

    width:100%;

    max-width:500px;

    border-radius:20px;

    box-shadow:0 18px 45px rgba(0,0,0,.10);

}

.challenge-image{

    display:flex;

    flex-direction:column;

    align-items:center;

}

.challenge-image img{

    width:100%;

    max-width:500px;

    border-radius:20px;

    box-shadow:0 18px 45px rgba(0,0,0,.10);

}

.challenge-image .image-caption{

    margin-top:18px;

    text-align:center;

    max-width:500px;

    font-size:15px;

    color:#666;

    font-style:italic;

}

/* =======================================================
   ENGINEERING SCOPE
======================================================= */

.case-scope{

    padding:120px 0;

    background:var(--light);

}

.scope-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:35px;

}

.scope-card{

    background:white;

    padding:40px;

    border-radius:20px;

    box-shadow:0 8px 25px rgba(0,0,0,.05);

    transition:.3s;

}

.scope-card:hover{

    transform:translateY(-6px);

}

.scope-card h3{

    font-size:24px;

    color:var(--dark);

    margin-bottom:25px;

}

.scope-card ul{

    list-style:none;

}

.scope-card li{

    position:relative;

    padding-left:26px;

    margin-bottom:16px;

    color:#666;

    line-height:1.5;

}

.scope-card li::before{

    content:"✓";

    position:absolute;

    left:0;

    color:var(--blue);

    font-weight:700;

}

.related-projects{

    padding:120px 0;

}

/* =======================================================
   CASE NAVIGATION
======================================================= */

.case-navigation{

    padding:70px 0 90px;

}

.navigation-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:30px;

}

.nav-card{

    display:flex;
    flex-direction:column;
    justify-content:center;

    min-height:150px;

    background:white;

    padding:35px;

    border-radius:18px;

    box-shadow:0 8px 25px rgba(0,0,0,.05);

    transition:.3s;

}

.nav-card:hover{

    transform:translateY(-6px);

    box-shadow:0 18px 40px rgba(0,0,0,.10);

}

.nav-card span{

    color:var(--blue);

    font-size:14px;

    font-weight:700;

    text-transform:uppercase;

    letter-spacing:1px;

}

.nav-card h3{

    margin-top:12px;

    font-size:28px;

    color:var(--dark);

}

/* =======================================================
   RESULTS
======================================================= */

.case-results{

    padding:120px 0;

    background:var(--light);

}

.results-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

.result-card{

    background:white;

    padding:40px;

    border-radius:20px;

    text-align:center;

    box-shadow:0 8px 25px rgba(0,0,0,.05);

}

.result-card h3{

    font-size:54px;

    color:var(--blue);

    margin-bottom:12px;

}

.result-card p{

    font-size:18px;

    color:#666;

    line-height:1.5;

}

.case-scope .case-image{

    display:flex;
    flex-direction:column;
    align-items:center;

    max-width:900px;
    margin:50px auto 60px;

}

.image-caption{

    width:100%;
    text-align:center;
    margin-top:15px;
    font-size:15px;
    color:#666;
    font-style:italic;

}

.finished-product-image{

    max-width:900px;

    margin:50px auto 0;

    text-align:center;

}

.finished-product-image img{

    width:100%;

    border-radius:20px;

    box-shadow:0 18px 45px rgba(0,0,0,.10);

}

.finished-product-image .image-caption{

    margin-top:18px;

    color:#666;

    font-size:15px;

    font-style:italic;

}

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

@media (max-width:980px){

    .hero-grid{

        grid-template-columns:1fr;

    }

    .stats-grid{

        grid-template-columns:repeat(2,1fr);

    }

    .expertise-grid{

        grid-template-columns:repeat(2,1fr);

    }

    .hero{

        padding:80px 0;

    }

    .hero h1{

        font-size:48px;

    }

    nav{

        gap:20px;

    }

    .project-row{

        grid-template-columns:1fr;

        gap:40px;

    }

    .contact-grid{

        grid-template-columns:1fr;

        gap:50px;

    }

    .about-grid{

        grid-template-columns:1fr;
        gap:30px;

    }

    .about-image img{

        max-width:160px;
        margin:0 auto;

    }

    .overview-grid{

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

    .case-hero-grid{

        grid-template-columns:1fr;

        gap:50px;

    }

    .case-grid{

        grid-template-columns:1fr;

        gap:50px;

    }

    .scope-grid{

        grid-template-columns:1fr;

    }

    .results-grid{

    grid-template-columns:repeat(2,1fr);

    }

}





@media (max-width:700px){

    header{

        height:auto;

        padding:25px 0;

    }

    .nav{

        flex-direction:column;

        gap:25px;

    }

    nav{

        flex-wrap:wrap;
        justify-content:center;
        gap:15px 20px;

    }

    .hero h1{

        font-size:40px;

    }

    .hero p{

        font-size:18px;

    }

    .stats-grid{

        grid-template-columns:1fr;

    }

    .expertise-grid{

        grid-template-columns:1fr;

    }


    .contact-left h2{

        font-size:38px;

    }

    .contact-right{

        padding:30px;

    }

    .footer-grid{

    flex-direction:column;

    gap:25px;

    }

    .footer-right{

    flex-direction:column;

    gap:15px;

    }

    .overview-grid{

    grid-template-columns:1fr;

    }

    .case-hero-text h1{

    font-size:42px;

    }

    .case-hero-text p{

    font-size:18px; 

    }

    .case-text h2{

    font-size:36px;

    }

    .case-text p{

    font-size:18px;

    }

    .navigation-grid{

    grid-template-columns:1fr;

    }

    .results-grid{

    grid-template-columns:1fr;

    }

    .stats,
    .expertise,
    .case-studies,
    .about,
    .contact,
    .case-section,
    .case-scope,
    .case-results,
    .related-projects,
    .legal{

    padding:60px 0;

    }

    .case-hero{

    padding:60px 0 40px;

    }

    .case-overview{

    padding:20px 0 50px;

    }

    .case-navigation{

    padding:40px 0 50px;

    }

    .project-link,
    .footer-right a,
    .contact-item a{

    display:inline-block;
    padding:10px 0;

    }
}

/* =======================================================
   LEGAL PAGES
======================================================= */

.legal{

    padding:120px 0;

}

.legal h3{

    margin-top:50px;
    margin-bottom:18px;

    font-size:28px;

}

.legal p{

    font-size:18px;

    line-height:1.9;

    color:#555;

    margin-bottom:24px;
}

/* =======================================================
   COOKIE BANNER
======================================================= */

.cookie-banner{

    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:9999;

    background:var(--dark);
    color:#fff;

    padding:20px 30px;

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

    box-shadow:0 -4px 20px rgba(0,0,0,.2);

}

.cookie-banner p{

    margin:0;
    max-width:640px;

    font-size:14px;
    line-height:1.6;
    color:rgba(255,255,255,.85);

}

.cookie-banner a{

    color:#fff;
    text-decoration:underline;

}

.cookie-banner-actions{

    display:flex;
    gap:12px;
    flex-shrink:0;

}

.cookie-btn{

    border:none;
    border-radius:6px;

    padding:12px 24px;

    font-size:14px;
    font-weight:600;
    font-family:inherit;

    cursor:pointer;
    transition:.2s;

}

.cookie-btn-decline{

    background:transparent;
    color:#fff;
    border:1px solid rgba(255,255,255,.4);

}

.cookie-btn-decline:hover{

    background:rgba(255,255,255,.1);

}

.cookie-btn-accept{

    background:var(--blue);
    color:#fff;

}

.cookie-btn-accept:hover{

    opacity:.9;

}

@media (max-width:700px){

    .cookie-banner{

        flex-direction:column;
        align-items:stretch;
        text-align:center;

    }

    .cookie-banner-actions{

        justify-content:center;

    }


}