/* ============================================================
   Professional theme enhancements.
   Built on top of app.css and its CSS variables
   (--background, --front, --highlight) so the color scheme
   stays in one place. Fonts: Inter — clean and readable.
   ============================================================ */

html {
    scrollbar-color: var(--front) var(--background);
}

body {
    font-family: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    background-color: var(--background);
    color: var(--text);
    min-height: 100vh;
}

/* ---------- navbar ---------- */
.site-nav {
    background-color: var(--background);
    border-color: var(--front) !important;
}

.site-nav .nav-link {
    color: var(--front);
    font-weight: 500;
}

.site-nav .nav-link:hover,
.site-nav .nav-link.active {
    color: #ffffff;
    background-color: var(--highlight);
    border-radius: 0;
}

.navbar-toggler {
    border-color: var(--front);
}

.navbar-toggler-icon {
    filter: invert(48%) sepia(85%) saturate(2222%) hue-rotate(345deg);
}

.brand-name {
    color: var(--front);
    font-weight: 700;
    letter-spacing: 0.01em;
}

.brand-name:hover {
    color: var(--highlight-text);
}

/* ---------- typography helpers ---------- */
.text-eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--highlight-text);
    margin-bottom: 0.4rem;
}

.text-label {
    color: var(--highlight-text);
    font-size: 0.9rem;
}

h1, h2, h3, h4, h5, h6,
.display-5, .display-6, .lead {
    font-family: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    letter-spacing: -0.01em;
}

/* ---------- contact list ---------- */
.contact-list dt,
.contact-list dd {
    padding: 0.15rem 0;
}

/* ---------- section titles ---------- */
.section-title {
    font-size: 1.35rem;
    font-weight: 700;
    border-left: 6px solid var(--front);
    padding-left: 0.75rem;
    margin-bottom: 1rem;
}

/* ---------- skills ---------- */
.skill-list {
    padding-left: 1.1rem;
}

.skill-list li {
    padding: 0.2rem 0;
}

/* ---------- lists ---------- */
.detail-list {
    padding-left: 1.1rem;
}

.detail-list li {
    padding: 0.15rem 0;
}

/* ---------- project cards ---------- */
.project-card {
    height: 100%;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, transform 0.15s ease-in-out;
    text-decoration: none;
    display: block;
}

.project-card:hover,
.project-card:focus-visible {
    transform: translateY(-3px);
    border-color: var(--highlight);
    color: var(--text);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.55);
}

.project-card .card-title {
    font-weight: 700;
    color: var(--front);
    font-size: 1.1rem;
}

.project-card:hover .card-title,
.project-card:focus-visible .card-title {
    color: var(--highlight-text);
}

.repo-ref {
    color: var(--highlight-text);
    font-size: 0.85rem;
    word-break: break-all;
}

.project-tech .badge {
    font-weight: 500;
    margin: 0 0.25rem 0.25rem 0;
}

.card-link-footer {
    color: var(--front);
    font-weight: 600;
    font-size: 0.9rem;
}

/* ---------- footer ---------- */
.site-footer {
    color: var(--front);
    opacity: 0.8;
    font-size: 0.85rem;
    border-top: 1px solid var(--front);
    padding-top: 0.75rem;
    margin-top: 1.5rem;
}
