/* IBM Color Palette */
:root {
    --ibm-blue: #0f62fe;
    --ibm-hover: #0353e9;
    --ibm-black: #161616;
    --ibm-white: #ffffff;
    --ibm-gray-10: #f4f4f4;
    --ibm-gray-20: #e0e0e0;
    --ibm-text-secondary: #525252;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
    font-family: 'IBM Plex Sans', sans-serif;
    background-color: var(--ibm-white);
    color: var(--ibm-black);
    line-height: 1.5;
    scroll-behavior: smooth;
}

.container { width: 90%; max-width: 1200px; margin: auto; }
.bold { font-weight: 600; }
.blue-text { color: var(--ibm-blue); }
.mono-label { font-family: 'IBM Plex Mono', monospace; font-size: 0.8rem; color: var(--ibm-blue); letter-spacing: 1px; }

/* Navbar */
.navbar {
    height: 3rem;
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--ibm-gray-20);
    position: sticky;
    top: 0;
    background: white;
    z-index: 100;
}

.nav-container {
    width: 90%;
    margin: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo { text-decoration: none; color: inherit; font-size: 1.2rem; }
.nav-links { display: flex; list-style: none; gap: 2rem; align-items: center; }
.nav-links a { text-decoration: none; color: var(--ibm-black); font-size: 0.9rem; }
.nav-links a.active { color: var(--ibm-blue); font-weight: 600; }

/* Hero */
.hero { padding: 6rem 0; border-bottom: 1px solid var(--ibm-gray-10); }
.hero h1 { font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 300; margin-top: 1rem; line-height: 1.1; }
.hero-subtext { max-width: 600px; font-size: 1.25rem; color: var(--ibm-text-secondary); margin: 1.5rem 0 2rem; }

/* Buttons */
.btn-primary { background: var(--ibm-blue); color: white; padding: 14px 28px; text-decoration: none; display: inline-block; transition: 0.2s; }
.btn-primary:hover { background: var(--ibm-hover); }

.btn-ghost { border: 1px solid var(--ibm-black); color: var(--ibm-black); padding: 14px 28px; text-decoration: none; display: inline-block; margin-left: 1rem; }
.btn-ghost-sm { border: 1px solid var(--ibm-blue); color: var(--ibm-blue); padding: 8px 16px; text-decoration: none; font-size: 0.85rem; }

/* Search Section */
.search-area { padding: 5rem 0; background: var(--ibm-gray-10); }
.search-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 3rem; flex-wrap: wrap; gap: 1rem; }
.search-input-wrapper { width: 100%; max-width: 400px; }
#internshipSearch { width: 100%; padding: 12px; border: none; border-bottom: 2px solid var(--ibm-black); background: transparent; font-size: 1rem; outline: none; }
#internshipSearch:focus { border-bottom-color: var(--ibm-blue); }

/* Grid & Cards */
.internship-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1px; background: var(--ibm-gray-20); border: 1px solid var(--ibm-gray-20); }
.intern-card { background: white; padding: 2rem; display: flex; flex-direction: column; min-height: 250px; transition: 0.2s; }
.intern-card:hover { outline: 2px solid var(--ibm-blue); z-index: 10; cursor: pointer; }

.tag { font-size: 0.7rem; font-weight: 600; text-transform: uppercase; background: var(--ibm-gray-10); padding: 4px 8px; width: fit-content; margin-bottom: 1.5rem; }
.intern-card h3 { font-weight: 400; margin-bottom: 1rem; }
.intern-card p { font-size: 0.9rem; color: var(--ibm-text-secondary); flex-grow: 1; }

.card-footer { margin-top: 2rem; display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--ibm-gray-10); padding-top: 1rem; }
.location { font-size: 0.8rem; color: var(--ibm-text-secondary); }
.arrow-link { text-decoration: none; color: var(--ibm-blue); font-weight: 600; }

.footer { padding: 3rem 0; border-top: 1px solid var(--ibm-gray-20); text-align: center; font-size: 0.8rem; color: var(--ibm-text-secondary); }