/* ============== Google Fonts: Inter ============== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

/* ============== CSS Variables ============== */
:root {
    --header-height: 3.5rem;
    --primary-color: #007BFF; /* Professional Blue */
    --primary-color-alt: #0056b3;
    --title-color: #2c3e50; /* Dark Blue-Gray */
    --text-color: #5d6d7e; /* Softer Gray for text */
    --text-color-light: #95a5a6;
    --body-color: #f8f9fa; /* Very light gray */
    --container-color: #ffffff;
    --border-color: #e5eaef;
    --body-font: "Inter", sans-serif;
    --h1-font-size: 1.7rem;
    --h2-font-size: 1.5rem;
    --normal-font-size: 1rem;
    --shadow: 0 10px 30px rgba(0, 123, 255, 0.1);
}

/* ============== Base ============== */
* { box-sizing: border-box; padding: 0; margin: 0; }
html { scroll-behavior: smooth; }
body, button, input { font-family: var(--body-font); font-size: var(--normal-font-size); }
body { background-color: var(--body-color); color: var(--text-color); }
h1, h2, h3 { color: var(--title-color); font-weight: 600; }
ul { list-style: none; }
a { text-decoration: none; }

/* ============== Reusable Classes ============== */
.container { max-width: 1140px; margin-left: auto; margin-right: auto; padding: 0 1.5rem; }
.section { padding: 6rem 0 2rem; }
.section__title { font-size: var(--h2-font-size); text-align: center; margin-bottom: 3rem; }
.button {
    display: inline-block;
    background-color: var(--primary-color);
    color: #fff;
    padding: .9rem 1.75rem;
    border-radius: .5rem;
    font-weight: 500;
    transition: .3s;
    border: none;
    cursor: pointer;
}
.button:hover { background-color: var(--primary-color-alt); }

/* ==================== HEADER & NAV (Mobile First) ==================== */
.header {
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    background-color: var(--body-color);
    z-index: 100;
    transition: box-shadow .4s;
}
.scroll-header { box-shadow: 0 2px 4px rgba(0,0,0,0.05); }

.nav {
    height: var(--header-height);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.nav__logo {
    color: var(--title-color);
    font-weight: 700;
    font-size: 1.5rem;
}

/* Default styles for mobile menu (off-canvas) */
.nav__menu {
    position: fixed;
    top: 0;
    right: -100%; /* Initially hidden */
    width: 70%;
    height: 100%;
    background-color: var(--container-color);
    box-shadow: -2px 0 4px rgba(0,0,0,0.1);
    padding: 4rem 2rem;
    transition: .4s;
}

.nav__list {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}

.nav__link {
    color: var(--title-color);
    font-weight: 500;
}
.nav__link:hover { color: var(--primary-color); }

.nav__close {
    position: absolute;
    top: 1rem;
    right: 1.5rem;
    font-size: 1.5rem;
    cursor: pointer;
    color: var(--title-color);
}

/* Toggle button is always visible on mobile by default */
.nav__toggle {
    font-size: 1.5rem;
    cursor: pointer;
    color: var(--title-color);
}

/* Show menu class (toggled by JS) */
.show-menu {
    right: 0;
}


/* ============== Home Section ============== */
.home { padding: 4rem 0; }
.home__container { min-height: 80vh; display: flex; align-items: center; justify-content: center; }
.home__data { text-align: center; max-width: 700px; }
.home__title { font-size: var(--h1-font-size); line-height: 1.2; margin-bottom: 1rem; }
.home__description { margin: 0 auto 2.5rem; max-width: 600px; font-size: 0.90rem; color: var(--text-color); }
.search__form { display: flex; height: 55px; box-shadow: var(--shadow); border-radius: .75rem; max-width: 550px; margin: 0 auto; }
.search__input { width: 100%; border: none; outline: none; padding: 0 1.25rem; border-radius: .75rem 0 0 .75rem; background-color: #fff; }
.search__button { border-radius: 0 .75rem .75rem 0; }

/* ============== Brands Section ============== */
.brands { padding: 2rem 0; }
.brands__container { text-align: center; }
.brands__title { font-size: 1rem; color: var(--text-color-light); margin-bottom: 2.5rem; font-weight: 500; }
.brands__logos { display: flex; justify-content: center; align-items: center; gap: 4rem; flex-wrap: wrap; }
.brand__logo { height: 35px; opacity: 0.5; filter: grayscale(100%); transition: .3s; }
.brand__logo:hover { opacity: 1; filter: none; }

/* ============== Article Section ============== */
.article { background-color: var(--container-color); padding: 6rem 0; }
.article__content { max-width: 800px; margin: 0 auto; }
.article__title { text-align: left; margin-bottom: 2rem; }
.article__content p { font-size: 1.1rem; line-height: 1.8; margin-bottom: 1.5rem; color: #34495e; }
.article__content h3 { font-size: 1.5rem; margin-top: 2.5rem; margin-bottom: 1rem; padding-bottom: .5rem; border-bottom: 2px solid var(--border-color); }

/* ============== Footer ============== */
.footer { background-color: #2c3e50; color: #bdc3c7; padding: 4rem 0 2rem; }
.footer__container { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 2rem;}
.footer__logo, .footer__title { color: #fff; }
.footer__logo { display: inline-block; margin-bottom: 1rem; }
.footer__title { font-size: 1.15rem; margin-bottom: 1rem; }
.footer__link { color: #bdc3c7; display: block; margin-bottom: .5rem; transition: .3s; }
.footer__link:hover { color: var(--primary-color); }
.footer__social { display: flex; gap: 1.5rem; }
.footer__social a { font-size: 1.25rem; color: #fff; transition: .3s; }
.footer__social a:hover { color: var(--primary-color); }
.footer__copy { text-align: center; padding-top: 3rem; margin-top: 3rem; border-top: 1px solid #34495e; }


/* .ad-container {
    width: 100%;
    max-width: 728px; 
    max-height: 90px; 
    margin: 20px auto; 
    overflow: hidden;  
    display: flex;
    justify-content: center;
    align-items: center;
} */
/* ============ Job Listing Page Styles ============ */
.job-listing-section {
    padding-top: 2rem;
}

.job-page-container {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 2rem;
}

/* Filter Sidebar */
.filter-sidebar {
    background-color: var(--container-color);
    padding: 1.5rem;
    border-radius: .75rem;
    height: fit-content;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

.filter-widget {
    margin-bottom: 2rem;
}

.widget-title {
    font-size: 1.1rem;
    margin-bottom: 1rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--border-color);
}

.filter-input, .filter-select {
    width: 100%;
    padding: .75rem;
    border-radius: .5rem;
    border: 1px solid var(--border-color);
    font-size: .9rem;
}

.filter-list {
    list-style: none;
    padding: 0;
}

.filter-list li {
    margin-bottom: .5rem;
}

.filter-list label {
    display: flex;
    align-items: center;
    gap: .5rem;
    cursor: pointer;
}

.filter-button {
    width: 100%;
    text-align: center;
}

/* Job List */
.job-list-column {
    display: grid;
    gap: 1.5rem;
}

.job-card {
    background-color: var(--container-color);
    padding: 1.5rem;
    border-radius: .75rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    transition: transform .3s, box-shadow .3s;
    border: 1px solid transparent;
}

.job-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow);
    border-color: var(--primary-color);
}

.job-card__header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.job-card__logo {
    width: 50px;
    height: 50px;
    border-radius: .5rem;
}

.job-card__title {
    font-size: 1.25rem;
    margin-bottom: .25rem;
    color: var(--title-color);
}

.job-card__company {
    color: var(--text-color);
}

.job-card__details {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
    color: var(--text-color-light);
    font-size: .9rem;
}

.job-card__details i {
    margin-right: .5rem;
}

.job-card__button {
    width: fit-content;
}

/* ============ Job Details Page Styles ============ */
.job-details-container {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 2rem;
    align-items: flex-start;
}

.job-details-main {
    background-color: var(--container-color);
    padding: 2rem;
    border-radius: .75rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

.job-details-header {
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--border-color);
    margin-bottom: 1.5rem;
}
.job-details-title { font-size: 2rem; }
.job-details-company { font-size: 1.25rem; color: var(--text-color); margin: .25rem 0; }
.job-details-location { color: var(--text-color-light); }

.job-description h3 {
    font-size: 1.25rem;
    margin-top: 2rem;
    margin-bottom: 1rem;
}
.job-description ul {
    list-style-type: disc;
    padding-left: 1.5rem;
}
.job-description li { margin-bottom: .5rem; }

.job-summary-sidebar .summary-widget {
    background-color: var(--container-color);
    padding: 1.5rem;
    border-radius: .75rem;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    position: sticky;
    top: calc(var(--header-height) + 2rem);
}
.summary-list li {
    display: flex;
    justify-content: space-between;
    padding: .75rem 0;
    border-bottom: 1px solid var(--border-color);
}
.summary-list li:last-child { border-bottom: none; }
.apply-button { width: 100%; text-align: center; margin-top: 1.5rem; }


/* ============ Responsive Adjustments ============ */
@media screen and (max-width: 992px) {
    .job-page-container, .job-details-container {
        grid-template-columns: 1fr;
    }
}
/* ==================== MEDIA QUERIES FOR RESPONSIVENESS ==================== */

/* For small devices (e.g., smaller phones) */
@media screen and (max-width: 340px) {
    .container {
        padding: 0 1rem;
    }
}

/* For medium devices (tablets) */
@media screen and (min-width: 769px) {
    /* Revert mobile menu styles and create horizontal desktop menu */
    .nav__menu {
        all: unset; /* Reset all mobile menu styles */
    }
    .nav__list {
        flex-direction: row;
        gap: 2.5rem;
    }
    .nav__toggle, .nav__close {
        display: none; /* Hide hamburger and close icons on desktop */
    }
}

/* For large devices (desktops) */
@media screen and (min-width: 1024px) {
    .container {
        padding: 0 1.5rem; /* Re-adjust padding for larger screens */
    }
}

/* Adjustments for smaller screens */
@media screen and (max-width: 768px) {
    :root {
        --h1-font-size: 1.5rem;
    }
    .home {
        padding: 8rem 0 4rem;
    }
    .home__container {
        min-height: auto;
    }
}

@media screen and (max-width: 576px) {
    .home__description {
        font-size: 1rem;
    }
    .brands__logos {
        gap: 2.5rem;
    }
    .article__content {
        padding: 1rem 0;
    }
    .article__content p {
        font-size: 1rem;
    }

}
