/* =============================
   ZACO – Dark Modern Theme
   ============================= */
:root{
    --primary-color: #ffffff;         /* White – Primary text */
    --secondary-color: #cccccc;      /* Light gray – Secondary text */
    --accent-color: #4a90e2;     
    --third-color: #1A1A1A;  
    --forth-color: white;
    /* Lighter blue accent for better
         
visibility */
    --accent-hover: #357abd;         /* Darker blue on hover */
    --feature-bg: #3a3a3a;           /* Feature boxes background */
    --job-card-bg: #2a2a2a;          /* Job cards background */
    --bg-dark: #1a1a1a;              /* Page background */
    --bg-darker: #0e0e0e;            /* Header background */
    --hover-bg: #444444;             /* Hover background */
    --border-color: #555555;         /* Borders */
    --shadow-color: rgba(0,0,0,0.4); /* Stronger shadow color */
}

/* ---------- 1. Reset ---------- */
*,
*::before,
*::after { box-sizing:border-box; }

body{
    margin:0;
    font-family:'Inter',sans-serif;
    background:var(--bg-dark);
    color:var(--secondary-color);
    line-height: 1.6; /* Improved readability */
}

/* ---------- 2. Navbar ---------- */
.navbar{
    background:var(--bg-darker) !important;
    padding:1rem 2rem;
    box-shadow:0 4px 10px var(--shadow-color);
    z-index:1020;
}
.navbar .nav-link{ color:var(--primary-color); }
.navbar .nav-link:hover{ color:var(--accent-hover); }

/* ---------- 3. Hero ---------- */
.hero{
    min-height:45vh; /* Reduced height */
    /* default fallback background; JS can override using data-bg attribute on the .hero element for dynamic images */
    background: var(--hero-fallback, url('https://fastly.picsum.photos/id/1018/1920/1080.jpg?hmac=Z-0vPrMvqfkGFzkq3vnamIQKXBk0KSXVxNIKXKCtW4I')) center/cover no-repeat;
    color:var(--primary-color);
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:1rem;
}
.hero::before{
    content:"";
    inset:0; position:absolute;
    background:rgba(0,0,0,.65);
    z-index:1;
}
.hero-content{ position:relative; z-index:2; }
.hero-title{ font-size:2rem; font-weight:600; }
.hero-subtitle{ font-size:1rem; font-weight:400; }
.btn-light{ background-color:var(--primary-color); color:var(--bg-dark); }
.btn-outline-light{ border-color:var(--primary-color); color:var(--primary-color); }
.btn-light:hover, .btn-outline-light:hover{ opacity:0.9; }

/* ---------- 4. Features section ---------- */
#about {

    padding: 1rem 0;
}

.feature-card {
    padding: 1rem;
    text-align: center;
    border-radius: 8px;

    color: var(--primary-color);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    width: 100%;
    max-width: 300px; /* Consistent size for all feature cards */
    margin: 0 auto 0.5rem;
    box-shadow: 0 2px 8px var(--shadow-color);
}

.feature-card:hover {
    transform: scale(1.05);
    box-shadow: 0 4px 12px var(--shadow-color);
}

.feature-card .feature-icon {
    width: 50px;
    height: 50px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    margin: 0 auto 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.feature-card .feature-icon i {
    color: var(--primary-color);
    font-size: 1.25rem;
}

.feature-card h4 {
    font-size: 1.1rem;
    margin-bottom: 0.25rem;
    font-weight: 500;
}

.feature-card p {
    font-size: 0.70rem;
    color: var(--secondary-color);
    margin-bottom: 0;
}

/* ---------- 5. Job cards ---------- */
.job-card{
    background:var(--job-card-bg);
     
    border-radius:10px;
    padding:1.8rem; /* Slightly reduced padding */
    color:var(--primary-color);
    border:1px solid var(--border-color);
    transition:transform .4s ease, box-shadow .4s ease;
    box-shadow:5px 8px 20px var(--shadow-color); /* Stronger shadow */
    margin-bottom:1rem;
    max-width: 350px; /* Slightly smaller width */
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.job-card:hover{ 
    transform:translateY(-10px); 
    box-shadow:5 16px 30px var(--shadow-color); /* Deeper shadow on hover */
}


.job-card .card-title{ color:var(--forth-color); font-size:1.3rem; font-weight:600; }
.job-card .card-text{ color:var(--secondary-color); font-size:0.95rem; }
.job-card .btn-primary{
    background:var(--third-color);
    border:none;
    color:var(--primary-color);
    padding:0.7rem 1.25rem;
    border-radius:0.75rem;
    font-weight:800;
    transition:background .3s, transform .2s, box-shadow .2s;
}
.job-card .btn-primary:hover{ 
    background:var(--accent-hover); 
    transform:translateY(-5px); 
    box-shadow: 5 4px 10px var(--shadow-color);
}

/* ---------- 6. Apply modal ---------- */
.modal-content{
    background:var(--bg-dark);
    border-radius:1.5rem;
    box-shadow:0 15px 25px -5px var(--shadow-color);
}
.modal-header{
    background:var(--accent-color);
    color:var(--primary-color);
    border-bottom:none;
}
.modal-body{ padding:1.5rem; }
.form-control, .form-select{
    border-radius:.5rem;
    padding:.75rem 1rem;
    background:#222;
    color:var(--primary-color);
    border:1px solid #555;
}
.form-control:focus,.form-select:focus{
    border-color:var(--accent-color);
    box-shadow:0 0 0 3px rgba(74, 144, 226, .2);
}
.form-text{ color:var(--secondary-color); }
.d-grid .btn-primary{ width:100%; }

/* ---------- 7. Footer ---------- */
footer{
    background:var(--bg-dark);
    color:var(--secondary-color);
    padding:1rem 2rem;
    text-align:center;
}
footer a{ color:var(--accent-color); }
footer a:hover{ color:var(--accent-hover); }

/* Site footer: allow dynamic background via data-bg attribute */
.site-footer{ background-color: var(--bg-dark); }
.site-footer[data-bg]{ background-color: var(--bg-dark); }

/* Hidden helper for back-to-top button */
.hidden{ display:none !important; }

/* Inline form helper (replaces style="display:inline;") */
.inline-form{ display:inline; }

/* Small helpers for header badges and dropdown widths (avoid inline styles) */
.badge-unread{ font-size:12px; }
.dropdown-min-350{ min-width:350px; }

/* ---------- 8. Pagination ---------- */
.pagination .page-item.active .page-link{ background:var(--accent-color); border-color:var(--accent-color); }
.pagination .page-link{ color:var(--secondary-color); }
.pagination .page-link:hover{
    color:var(--primary-color);
    background:var(--hover-bg);
    border-color:var(--border-color);
}

/* ---------- 9. Responsive tweaks ---------- */
@media (max-width:576px){
    .hero{ min-height:40vh; padding:0.75rem; }
    .feature-card{ padding:0.75rem; max-width:220px; }
    .job-card{ padding:1rem; max-width:280px; }
}

/* ---------- 10. Job Details Modal & Button Styling ---------- */
/* Ensure modal content is readable and matches dark theme */
#jobDetailsModal .modal-content{
    background: linear-gradient(180deg, rgba(18,18,18,0.95), rgba(12,12,12,0.95));
    color: var(--primary-color);
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.04);
}
#jobDetailsModal .modal-header{
    background: linear-gradient(90deg, var(--accent-color), var(--accent-hover));
    color: var(--forth-color);
    border-bottom: none;
}
#jobDetailsModal .modal-title{ color: var(--forth-color); font-weight:700; }
#jobDetailsModal .modal-body{ color: var(--primary-color) !important; background: transparent; }
#jobMeta{ color: #bfc9d9; font-size:0.95rem; margin-bottom:0.75rem; }
#jobFullDescription{
    color: #e9f0fb; /* brighter than primary for better contrast on dark greys */
    line-height:1.8;
    white-space:pre-line;
    font-size: 1rem;
}
#jobFullDescription p, #jobFullDescription ul { color: #e9f0fb; }
#jobFullDescription a { color: var(--accent-color); text-decoration: underline; }
#jobImageContainer img{ max-width:100%; max-height:360px; object-fit:cover; border-radius:6px; box-shadow:0 6px 18px rgba(0,0,0,0.6); }

/* Global primary button styling to match design */
.btn-primary{
    background: #0b1220 !important; /* deeper/darker apply button */
    border: 1px solid rgba(255,255,255,0.04) !important;
    color: #eaf2ff !important;
    padding: 0.6rem 1rem !important;
    border-radius: 0.65rem !important;
    font-weight: 700 !important;
    box-shadow: 0 8px 22px rgba(2,6,12,0.6) !important;
}
.btn-primary:hover{ background: #0e1624 !important; transform: translateY(-2px); box-shadow: 0 10px 28px rgba(2,6,12,0.7) !important; }

/* Read Details button (secondary/outline style matching accent) */
.read-btn{
    background: transparent;
    color: var(--accent-color);
    border: 1px solid rgba(74,144,226,0.16);
    border-radius: 0.5rem;
    padding: 0.45rem 0.85rem;
}
.read-btn:hover{ background: rgba(74,144,226,0.06); color: var(--primary-color); border-color: var(--accent-color); }

/* Stronger overrides for modal footer buttons to ensure visibility on dark backgrounds */
#jobDetailsModal .modal-footer .btn-primary{
    background: var(--accent-color) !important;
    color: #ffffff !important;
    border: none !important;
    box-shadow: 0 8px 22px rgba(74,144,226,0.15) !important;
}
#jobDetailsModal .modal-footer .btn-secondary{
    background: rgba(255,255,255,0.04) !important;
    color: #d6dbe6 !important;
    border: 1px solid rgba(255,255,255,0.06) !important;
}

/* Make sure text inside job description uses high contrast even if other CSS rules try to override */
#jobDetailsModal, #jobDetailsModal *{
    color: inherit !important;
}

/* Ensure small modals and buttons look good on small screens */
@media (max-width:576px){
    #jobDetailsModal .modal-content{ padding:0.5rem; }
    .read-btn, .btn-primary{ width:100%; }
}

/* ---------- 11. Extra button overrides (high specificity) ---------- */
/* Apply and primary buttons inside cards and other components */
.job-card .btn-primary,
.card .btn-primary,
.apply-btn,
#jobDetailsModal .btn-primary,
.modal .btn-primary {
    background: var(--accent-color) !important;
    color: #ffffff !important;
    border: none !important;
    box-shadow: 0 6px 18px rgba(74,144,226,0.14) !important;
}
.job-card .btn-primary:hover,
.card .btn-primary:hover,
.apply-btn:hover,
#jobDetailsModal .btn-primary:hover,
.modal .btn-primary:hover {
    background: var(--accent-hover) !important;
    transform: translateY(-2px);
}

/* Ensure outline/secondary buttons contrast on dark backgrounds */
.btn-outline-light,
.btn-secondary {
    background: rgba(255,255,255,0.04) !important;
    color: #dfe8f8 !important;
    border: 1px solid rgba(255,255,255,0.06) !important;
}
.btn-outline-light:hover,
.btn-secondary:hover {
    background: rgba(255,255,255,0.06) !important;
    color: var(--primary-color) !important;
}

/* Focus states for accessibility */
.btn-primary:focus, .read-btn:focus, .btn-secondary:focus {
    outline: 3px solid rgba(74,144,226,0.18) !important;
    outline-offset: 2px;
}