* {
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Segoe UI', Arial, sans-serif;
}

html {
    scroll-behavior:smooth;
}

body {
    background:#f5f5f5;
    color:#222;
}


/* =========================
   NAVBAR
========================= */

nav {
    position:fixed;
    top:0;
    width:100%;

    display:flex;
    justify-content:space-between;
    align-items:center;

    padding:20px 8%;

    background:rgba(0,0,0,0.75);
    backdrop-filter:blur(10px);

    z-index:1000;
}


.logo {
    color:#f5a623;
    font-size:24px;
    font-weight:bold;
}


nav ul {
    display:flex;
    gap:30px;
    list-style:none;
}


nav ul a {
    color:white;
    text-decoration:none;
    font-weight:600;
    transition:.3s;
}


nav ul a:hover {
    color:#f5a623;
}


/* =========================
   LANGUAGE
========================= */

.language button {
    color:wheat;
    background:none;
    border:none;

    font-size:22px;
    cursor:pointer;

    transition:.3s;
}


.language button:hover {
    color:wheat;
    text-shadow:0 0 8px wheat;
}


.language span {
    color:wheat;
    font-size:22px;
}


/* =========================
   HERO
========================= */

.hero {

    height:100vh;

    background:
    linear-gradient(
        rgba(0,0,0,.55),
        rgba(0,0,0,.7)
    ),
    url("images/earthMovingCrop.png");

    background-size:cover;
    background-position:center;

    display:flex;
    align-items:center;
    justify-content:center;

    text-align:center;

    color:white;

    animation:heroZoom 15s infinite alternate;
}


.hero-content {
    animation:fadeUp 1.5s ease;
}


.hero h1 {
    font-size:60px;
    margin-bottom:20px;
}


.hero p {
    font-size:25px;
    margin-bottom:40px;
}


.btn {

    background:#f5a623;

    padding:15px 35px;

    border-radius:30px;

    color:white;
    text-decoration:none;

    font-weight:bold;

    transition:.3s;
}


.btn:hover {

    background:#ffbe55;

    transform:scale(1.05);

}


/* =========================
   SECTIONS
========================= */

section {
    padding:80px 10%;
}


section h2 {

    text-align:center;

    font-size:40px;

    margin-bottom:50px;
}


/* =========================
   CARDS
========================= */

.cards {

    display:flex;

    gap:30px;

    justify-content:center;

    flex-wrap:wrap;
}


.card {

    background:white;

    padding:35px;

    width:300px;

    border-radius:20px;

    text-align:center;

    box-shadow:
        0 10px 30px rgba(0,0,0,.1);

    transition:.4s;
}


.card:hover {
    transform:translateY(-15px);
}


.card i {

    font-size:45px;

    color:#f5a623;

    margin-bottom:20px;
}


.card h3 {
    margin-bottom:15px;
}


/* =========================
   PROJECTS SLIDESHOW
========================= */

#projects {
    background:#f5f5f5;
}


/* Slideshow container */

.slideshow {

    position:relative;

    width:min(1000px, 95vw);

    /*
       Keeps the slideshow proportional
       on desktop, tablet and mobile.
    */
    aspect-ratio:16 / 9;

    margin:0 auto;

    overflow:hidden;

    border-radius:20px;

    box-shadow:
        0 15px 40px rgba(0,0,0,.18);

    background:#111;
}


/* Images */

.slide {

    position:absolute;

    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;

    opacity:0;

    /*
       Fade transition
    */
    transition:opacity .8s ease-in-out;

    /*
       Prevents the browser from
       treating the images as selectable.
    */
    user-select:none;
}


.slide.active {
    opacity:1;
}


/* =========================
   SLIDESHOW ARROWS
========================= */

.arrow {

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:52px;
    height:52px;

    border:none;

    border-radius:50%;

    background:rgba(0,0,0,.45);

    color:white;

    font-size:30px;

    display:flex;

    align-items:center;
    justify-content:center;

    cursor:pointer;

    z-index:10;

    transition:
        background .3s ease,
        transform .3s ease,
        opacity .3s ease;
}


/* Previous */

#prev {
    left:20px;
}


/* Next */

#next {
    right:20px;
}


/* Arrow hover */

.arrow:hover {

    background:#f5a623;

    transform:
        translateY(-50%)
        scale(1.08);
}


/* =========================
   TABLET
========================= */

@media(max-width:768px){

    nav {

        flex-direction:column;

        gap:15px;

    }


    nav ul {
        gap:15px;
    }


    .hero h1 {
        font-size:35px;
    }


    .hero p {
        font-size:18px;
    }


    .slideshow {

        width:95vw;

        border-radius:15px;

    }


    .arrow {

        width:44px;
        height:44px;

        font-size:24px;

    }


    #prev {
        left:12px;
    }


    #next {
        right:12px;
    }


    .lang-btn {

        padding:6px 12px;

        border:1px solid #ccc;

        border-radius:4px;

        background:#fff;

        cursor:pointer;

        font-weight:bold;

    }


    .lang-btn:hover {
        background:#f0f0f0;
    }

}


/* =========================
   MOBILE
========================= */

@media(max-width:480px){

    section {
        padding:60px 5%;
    }


    section h2 {

        font-size:32px;

        margin-bottom:35px;

    }


    .slideshow {

        width:100%;

        aspect-ratio:4 / 3;

        border-radius:12px;

    }


    .arrow {

        width:38px;
        height:38px;

        font-size:20px;

    }


    #prev {
        left:8px;
    }


    #next {
        right:8px;
    }

}


/* =========================
   CONTACT
========================= */

.contact {

    background:#222;

    color:white;

    text-align:center;
}


.contact p {

    margin:15px;

    font-size:20px;

}


/* =========================
   FOOTER
========================= */

footer {

    background:#111;

    color:white;

    text-align:center;

    padding:20px;

}

footer a {
    color: #f5a623;
    text-decoration: none;
    font-weight: 600;
    transition: .3s;
}

footer a:hover {
    color: #ffbe55;
    text-decoration: underline;
}


/* =========================
   ANIMATIONS
========================= */

@keyframes fadeUp {

    from {

        opacity:0;

        transform:translateY(50px);

    }

    to {

        opacity:1;

        transform:translateY(0);

    }

}


/* Hero zoom */

@keyframes heroZoom {

    from {
        background-size:100%;
    }

    to {
        background-size:110%;
    }

}


/* =========================
   HERO - PC
========================= */

@media(min-width:769px){

    .hero {

        background:
        linear-gradient(
            rgba(0,0,0,.55),
            rgba(0,0,0,.7)
        ),
        url("images/earthMovingCrop.png");

        background-size:cover;

        background-position:center;

    }

}


/* =========================
   HERO - MOBILE
========================= */

@media(max-width:768px){

    .hero {

        background:
        linear-gradient(
            rgba(0,0,0,.55),
            rgba(0,0,0,.7)
        ),
        url("images/earthmoving.png");

        background-size:cover;

        background-position:center;

        animation:
            heroZoom 15s infinite alternate;

    }

}