/* ==============================
   GRUVBOX DARK MEDIUM PALETTE
   ============================== */

:root {
    --gb-bg: #3c3836;
    --gb-surface: #504945;
    --gb-surface-light: #665c54;
    --gb-text: #ebdbb2;
    --gb-yellow: #fabd2f;
    --gb-orange: #fe9019;
    --gb-aqua: #8ec07c;
    --gb-border: #665c54;
}


/* ==============================
   GLOBAL PAGE STYLING
   ============================== */

body {
    background-color: var(--gb-bg);
    color: var(--gb-text);
}

.container {
    padding-top: 2rem;
    padding-bottom: 2rem;
}

a {
    color: var(--gb-orange);
    text-decoration: none;
}

a:hover {
    color: var(--gb-yellow);
}

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

footer {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;

    background-color: #282828; /* darker than gb-bg */
    color: #bdae93;           /* soft muted gruvbox text */

    border-top: 1px solid var(--gb-border);
    padding: 0.75rem 0;
    text-align: center;

    font-size: 0.9rem;
    z-index: 1000;
}

/* Footer links */
footer a {
    color: var(--gb-aqua);
}

footer a:hover {
    color: var(--gb-yellow);
}


/* ==============================
   NAVBAR STYLING
   ============================== */

.navbar {
    background-color: var(--gb-bg) !important;
    border-bottom: 1px solid var(--gb-border);
}

.navbar-dark .navbar-brand {
    color: var(--gb-yellow);
    font-weight: 600;
    letter-spacing: 1px;
}

.navbar-dark .navbar-brand:hover {
    color: var(--gb-orange);
}

.navbar-dark .navbar-nav .nav-link {
    color: var(--gb-orange);
    transition: color 0.2s ease;
}

.navbar-dark .navbar-nav .nav-link:hover {
    color: var(--gb-yellow);
}

.navbar-dark .navbar-nav .nav-link.active {
    color: var(--gb-yellow);
}


/* Navbar Toggler */
.navbar-toggler {
    border-color: var(--gb-border);
}

.navbar-toggler:focus {
    box-shadow: none;
}


/* ==============================
   PAGE HEADINGS
   ============================== */

h1, h2, h3, h4, h5, h6 {
    color: var(--gb-yellow);
}

.heading {
    margin-bottom: 1.5rem;
}


/* ==============================
   PORTFOLIO CARD STYLING
   ============================== */

.card {
    background-color: var(--gb-surface);
    border: 1px solid var(--gb-border);
    color: var(--gb-text);
    border-radius: 8px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card:hover {
    transform: translateY(-6px);
    box-shadow: 0 0 20px rgba(250, 189, 47, 0.25);
}

.card-title {
    color: var(--gb-yellow);
    font-weight: 600;
}

.card-text {
    color: var(--gb-text);
}


/* Card Images */
.card-img-top {
    border-bottom: 1px solid var(--gb-border);
    filter: brightness(0.9);
}


/* ==============================
   BUTTON STYLING
   ============================== */

.btn {
    border-radius: 6px;
    font-weight: 500;
    padding: 0.5rem 1rem;
}

.btn-primary {
    background-color: var(--gb-orange);
    border: none;
    color: var(--gb-bg);
}

.btn-primary:hover {
    background-color: var(--gb-yellow);
    color: var(--gb-bg);
}


/* Optional Custom Button Class */
.portfolio-btn {
    background-color: var(--gb-orange);
    border: none;
    color: var(--gb-bg);
}

.portfolio-btn:hover {
    background-color: var(--gb-yellow);
    color: var(--gb-bg);
}


/* ==============================
   CONTENT SECTIONS
   ============================== */

.content {
    background-color: var(--gb-surface);
    padding: 1rem 1.5rem;  
    margin: 1.5rem 0;      
    border-radius: 8px;
    border: 1px solid var(--gb-border);
}


/* ==============================
   GRID SPACING IMPROVEMENTS
   ============================== */

.row {
    margin-top: 1rem;
}


/* ==============================
   FOOTER (Optional)
   ============================== */

.footer {
    border-top: 1px solid var(--gb-border);
    padding: 1rem 0;
    text-align: center;
    color: var(--gb-surface-light);
}


/* ==============================
   SMOOTH TRANSITIONS
   ============================== */

* {
    transition: background-color 0.2s ease, color 0.2s ease;
}
