/* ===========================================
   B.A.D. SITE WORX
   STYLE.CSS
   PART 1
=========================================== */

:root{

    --primary:#00b7b3;
    --secondary:#111111;
    --dark:#050505;
    --light:#f5f5f5;
    --gray:#8d8d8d;
    --white:#ffffff;

    --shadow:0 12px 30px rgba(0,0,0,.25);

    --radius:12px;

}

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:Arial, Helvetica, sans-serif;

    background:#ffffff;

    color:#222;

    line-height:1.6;

}

img{

    width:100%;

    display:block;

}

a{

    text-decoration:none;

}

ul{

    list-style:none;

}

section{

    padding:80px 8%;

}

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

.btn-primary{

    display:inline-block;

    background:var(--primary);

    color:white;

    padding:16px 34px;

    border-radius:50px;

    font-weight:bold;

    transition:.3s;

}

.btn-primary:hover{

    transform:translateY(-3px);

    box-shadow:var(--shadow);

}

.btn-secondary{

    display:inline-block;

    margin-left:15px;

    padding:16px 34px;

    border:2px solid white;

    color:white;

    border-radius:50px;

    transition:.3s;

}

.btn-secondary:hover{

    background:white;

    color:black;

}

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

header{

    position:fixed;

    width:100%;

    top:0;

    left:0;

    z-index:999;

}

.navbar{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:18px 8%;

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

    backdrop-filter:blur(12px);

}

.logo img{

    height:72px;

    width:auto;

}

.navbar ul{

    display:flex;

    gap:35px;

}

.navbar ul li a{

    color:white;

    font-weight:600;

    transition:.3s;

}

.navbar ul li a:hover{

    color:var(--primary);

}

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

.hero{

    height:100vh;

    background-image:

    linear-gradient(

        rgba(0,0,0,.55),

        rgba(0,0,0,.60)

    ),

    url("images/hero-road.jpg");

    background-size:cover;

    background-position:center;

    display:flex;

    justify-content:center;

    align-items:center;

    text-align:center;

    color:white;

}

.hero-overlay{

    max-width:850px;

    padding:30px;

}

.hero h1{

    font-size:70px;

    line-height:1.05;

    margin-bottom:25px;

    text-transform:uppercase;

}

.hero p{

    font-size:24px;

    margin-bottom:40px;

    color:#ededed;

}

.hero-buttons{

    margin-top:20px;

}

/* ===========================================
   TRUST BAR
=========================================== */

.trust-bar{

    display:grid;

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

    background:var(--secondary);

    color:white;

}

.trust-box{

    text-align:center;

    padding:45px 20px;

}

.trust-box h2{

    font-size:48px;

    color:var(--primary);

    margin-bottom:8px;

}

.trust-box p{

    color:#cccccc;

    font-size:18px;

}

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

.section-title{

    text-align:center;

    margin-bottom:60px;

}

.section-title h2{

    font-size:44px;

    margin-bottom:10px;

}

.section-title p{

    color:#777;

    font-size:18px;

} /* ===========================================
   SERVICES
=========================================== */

.services{

    background:#ffffff;

}

.service-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));

    gap:35px;

}

.service-card{

    background:#fff;

    border-radius:var(--radius);

    overflow:hidden;

    box-shadow:var(--shadow);

    transition:.35s;

}

.service-card:hover{

    transform:translateY(-10px);

}

.service-card img{

    height:240px;

    object-fit:cover;

}

.service-card h3{

    font-size:28px;

    margin:25px;

    color:var(--secondary);

}

.service-card p{

    margin:0 25px 30px;

    color:#666;

    line-height:1.8;

}

/* ===========================================
   FEATURED PROJECTS
=========================================== */

.featured-projects{

    background:#f7f7f7;

}

.project-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(340px,1fr));

    gap:40px;

}

.project{

    overflow:hidden;

    border-radius:var(--radius);

    background:white;

    box-shadow:var(--shadow);

    transition:.35s;

}

.project:hover{

    transform:translateY(-8px);

}

.project img{

    height:280px;

    object-fit:cover;

}

.project-info{

    padding:30px;

}

.project-info h3{

    font-size:30px;

    margin-bottom:15px;

}

.project-info p{

    color:#666;

}

/* ===========================================
   BEFORE & AFTER
=========================================== */

.before-after{

    background:white;

}

.before-after-container{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(420px,1fr));

    gap:45px;

    align-items:center;

}

.before,
.after{

    border-radius:var(--radius);

    overflow:hidden;

    box-shadow:var(--shadow);

}

.before img,
.after img{

    height:420px;

    object-fit:cover;

}

.before h3,
.after h3{

    background:var(--secondary);

    color:white;

    text-align:center;

    padding:18px;

    font-size:28px;

}

/* ===========================================
   IMAGE HOVER EFFECTS
=========================================== */

.service-card img,
.project img,
.before img,
.after img{

    transition:.4s;

}

.service-card:hover img,
.project:hover img{

    transform:scale(1.05);

}

/* ===========================================
   SPACING
=========================================== */

.services,
.featured-projects,
.before-after{

    padding-top:90px;

    padding-bottom:90px;

} /* ===========================================
   GALLERY PREVIEW
=========================================== */

.gallery-preview{

    background:#ffffff;

}

.gallery-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

    gap:25px;

}

.gallery-grid img{

    width:100%;

    height:260px;

    object-fit:cover;

    border-radius:var(--radius);

    box-shadow:var(--shadow);

    transition:.35s;

    cursor:pointer;

}

.gallery-grid img:hover{

    transform:scale(1.04);

}

.center-button{

    text-align:center;

    margin-top:45px;

}

/* ===========================================
   VIDEOS
=========================================== */

.videos{

    background:#f8f8f8;

}

.video-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(340px,1fr));

    gap:35px;

}

.video-grid video{

    width:100%;

    border-radius:var(--radius);

    box-shadow:var(--shadow);

}

/* ===========================================
   PROJECT MAP
=========================================== */

.project-map{

    background:white;

}

.map-content{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:50px;

    align-items:center;

}

.counties ul li{

    padding:12px 0;

    font-size:20px;

}

.map-image img{

    border-radius:var(--radius);

    box-shadow:var(--shadow);

}

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

.cta{

    text-align:center;

    background:var(--primary);

    color:white;

}

.cta h2{

    font-size:52px;

    margin-bottom:20px;

}

.cta p{

    font-size:22px;

    margin-bottom:35px;

}

.cta .btn-primary{

    background:white;

    color:var(--primary);

}

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

.contact-preview{

    background:#ffffff;

}

.contact-container{

    display:grid;

    grid-template-columns:1fr 1.2fr;

    gap:60px;

}

.contact-info h3{

    font-size:34px;

    margin-bottom:30px;

}

.contact-info p{

    margin-bottom:25px;

    font-size:19px;

}

.contact-info a{

    color:var(--primary);

}

.contact-form form{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.contact-form input,
.contact-form textarea,
.contact-form select{

    padding:18px;

    border:1px solid #ddd;

    border-radius:var(--radius);

    font-size:17px;

}

.contact-form button{

    border:none;

    cursor:pointer;

}

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

footer{

    background:#111;

    color:white;

    text-align:center;

    padding:70px 8%;

}

.footer-logo img{

    width:180px;

    margin:0 auto 30px;

}

.footer-links{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:25px;

    margin-bottom:35px;

}

.footer-links a{

    color:white;

    transition:.3s;

}

.footer-links a:hover{

    color:var(--primary);

}

.footer-contact p{

    margin:10px 0;

}

.footer-copy{

    margin-top:40px;

    padding-top:30px;

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

    color:#aaa;

}

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

@media (max-width:992px){

.hero h1{

    font-size:54px;

}

.hero p{

    font-size:20px;

}

.trust-bar{

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

}

.contact-container{

    grid-template-columns:1fr;

}

.map-content{

    grid-template-columns:1fr;

}

}

@media (max-width:768px){

.navbar{

    flex-direction:column;

    gap:20px;

}

.navbar ul{

    flex-wrap:wrap;

    justify-content:center;

    gap:18px;

}

.hero{

    padding-top:100px;

}

.hero h1{

    font-size:42px;

}

.hero p{

    font-size:18px;

}

.hero-buttons{

    display:flex;

    flex-direction:column;

    gap:15px;

}

.btn-secondary{

    margin-left:0;

}

.trust-bar{

    grid-template-columns:1fr;

}

.before-after-container{

    grid-template-columns:1fr;

}

.before img,
.after img{

    height:300px;

}

.section-title h2{

    font-size:34px;

}

.cta h2{

    font-size:36px;

}

}

@media (max-width:480px){

.hero h1{

    font-size:34px;

}

.hero p{

    font-size:16px;

}

.logo img{

    height:58px;

}

section{

    padding:60px 6%;

}

}