/* VFJ Theme — base styles. Inspired by Welcome to the Jungle: heavy whitespace, monochrome surface, single bold accent, large editorial type. */

/* ── Segment landing pages (/for/{slug}/) ────────────────────── */
.vfj-segment-landing { padding-bottom: 4rem; }
.vfj-segment-landing__hero {
    background: linear-gradient(180deg, #f7f7f9 0%, #fff 100%);
    padding: 4rem 0 2.5rem;
    text-align: center;
}
.vfj-segment-landing__eyebrow { color: var(--vfj-fg-muted, #64748b); text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.85rem; font-weight: 600; margin: 0 0 0.6rem; }
.vfj-segment-landing__headline { font-family: 'Space Grotesk', system-ui, sans-serif; font-size: clamp(2rem, 5vw, 3.2rem); line-height: 1.1; max-width: 820px; margin: 0 auto 1rem; }
.vfj-segment-landing__subhead { font-size: 1.15rem; color: var(--vfj-fg, #0f172a); max-width: 740px; margin: 0 auto 1.5rem; line-height: 1.5; }
.vfj-segment-landing__cta-row { display: flex; gap: 0.5rem; justify-content: center; flex-wrap: wrap; margin: 0 0 1rem; }
.vfj-segment-landing__live-stat { color: var(--vfj-fg-muted); font-size: 0.95rem; margin: 0; }
.vfj-segment-landing__live-stat strong { color: var(--vfj-fg, #0f172a); }
.vfj-segment-landing__pain { padding: 3rem 0; background: #fff; }
.vfj-segment-landing__pain h2 { font-family: 'Space Grotesk', system-ui, sans-serif; font-size: 1.6rem; margin: 0 0 1rem; }
.vfj-segment-landing__pain-list { max-width: 720px; }
.vfj-segment-landing__pain-list li { margin: 0.6rem 0; color: var(--vfj-fg, #0f172a); padding-left: 1.4rem; position: relative; }
.vfj-segment-landing__pain-list li::before { content: "✗"; color: #dc2626; position: absolute; left: 0; font-weight: 700; }
.vfj-segment-landing__value { padding: 3rem 0; background: var(--vfj-bg-soft, #f7f7f9); }
.vfj-segment-landing__value h2 { font-family: 'Space Grotesk', system-ui, sans-serif; font-size: 1.6rem; margin: 0 0 1.5rem; }
.vfj-segment-landing__value-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 720px) { .vfj-segment-landing__value-grid { grid-template-columns: 1fr 1fr; } }
.vfj-segment-landing__value-card { background: #fff; border: 1px solid var(--vfj-border, #e5e7eb); border-left: 4px solid #2563eb; border-radius: 12px; padding: 1.3rem 1.5rem; }
.vfj-segment-landing__value-card h3 { font-family: 'Space Grotesk', system-ui, sans-serif; font-size: 1.05rem; margin: 0 0 0.5rem; }
.vfj-segment-landing__value-card p { margin: 0; color: var(--vfj-fg-muted); }
.vfj-segment-landing__pricing { padding: 3rem 0; background: #fff; }
.vfj-segment-landing__pricing h2 { font-family: 'Space Grotesk', system-ui, sans-serif; font-size: 1.6rem; margin: 0 0 0.6rem; }
.vfj-segment-landing__price-anchor { color: var(--vfj-fg, #0f172a); font-size: 1.05rem; margin: 0 0 1.5rem; max-width: 720px; }
.vfj-segment-landing__plan-card { background: linear-gradient(135deg, #eff6ff 0%, #fef3c7 100%); border: 1px solid #2563eb; border-radius: 14px; padding: 1.8rem 2rem; max-width: 520px; }
.vfj-segment-landing__plan-eyebrow { color: #2563eb; font-weight: 600; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.06em; margin: 0 0 0.4rem; }
.vfj-segment-landing__plan-card h3 { font-family: 'Space Grotesk', system-ui, sans-serif; font-size: 1.3rem; margin: 0 0 1rem; }
.vfj-segment-landing__plan-card ul { margin: 0 0 1.5rem; padding-left: 1.4rem; }
.vfj-segment-landing__plan-card li { margin: 0.4rem 0; }
.vfj-segment-landing__close { padding: 3rem 0; text-align: center; background: var(--vfj-bg-soft, #f7f7f9); }
.vfj-segment-landing__close h2 { font-family: 'Space Grotesk', system-ui, sans-serif; font-size: 1.8rem; margin: 0 0 0.6rem; }
.vfj-segment-landing__small { font-size: 0.85rem; color: var(--vfj-fg-muted); margin: 1rem 0 0; }
.btn--lg { padding: 0.9rem 1.6rem; font-size: 1.05rem; }


:root {
    --vfj-bg:           #ffffff;
    --vfj-bg-soft:      #f7f7f9;
    --vfj-fg:           #0e0e10;
    --vfj-fg-muted:     #5a5b62;
    --vfj-border:       #e6e6ea;
    --vfj-accent:       #2563eb;
    --vfj-accent-hover: #1d4ed8;
    --vfj-accent-fg:    #ffffff;
    --vfj-success:      #16a34a;
    --vfj-danger:       #dc2626;
    --vfj-radius:       6px;
    --vfj-radius-lg:    12px;
    --vfj-shadow-sm:    0 1px 2px rgba(14, 14, 16, 0.06);
    --vfj-shadow-md:    0 1px 2px rgba(14, 14, 16, 0.06), 0 4px 12px rgba(14, 14, 16, 0.05);
    --vfj-container:    1200px;
    --vfj-font-sans:    "Inter", "Helvetica Neue", Arial, sans-serif;
    --vfj-font-display: "Inter", "Helvetica Neue", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    font-family: var(--vfj-font-sans);
    color: var(--vfj-fg);
    background: var(--vfj-bg);
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: var(--vfj-accent); text-decoration: none; }
a:hover, a:focus-visible { text-decoration: underline; }

h1, h2, h3, h4 {
    font-family: var(--vfj-font-display);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.01em;
    margin: 0 0 0.5em;
}
h1 { font-size: clamp(2rem, 4vw, 3.25rem); }
h2 { font-size: clamp(1.5rem, 3vw, 2.25rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.5rem); }

p { margin: 0 0 1em; }

.container {
    width: 100%;
    max-width: var(--vfj-container);
    margin: 0 auto;
    padding: 0 1.25rem;
}

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px; width: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    word-wrap: normal !important;
}
.skip-link:focus {
    clip: auto; clip-path: none;
    height: auto; width: auto;
    background: var(--vfj-fg);
    color: #fff;
    padding: 0.75rem 1rem;
    position: fixed; top: 0.5rem; left: 0.5rem;
    z-index: 100;
    border-radius: var(--vfj-radius);
}

/* Header */
.site-header {
    border-bottom: 1px solid var(--vfj-border);
    background: var(--vfj-bg);
    position: sticky;
    top: 0;
    z-index: 50;
}
.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 1rem 1.25rem;
}
.site-brand {
    display: inline-flex;
    align-items: center;
    font-weight: 800;
    font-size: 1.25rem;
    color: var(--vfj-fg);
    letter-spacing: -0.02em;
}
.site-brand:hover { text-decoration: none; }
.site-nav__list {
    display: flex;
    gap: 1.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}
.site-nav__list a {
    color: var(--vfj-fg);
    font-weight: 500;
}

/* Hero */
.hero {
    padding: 6rem 0 7rem;
    background: linear-gradient(180deg, var(--vfj-bg-soft) 0%, var(--vfj-bg) 100%);
    border-bottom: 1px solid var(--vfj-border);
}
.hero__inner { max-width: 64rem; }
.hero__eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--vfj-fg-muted);
    margin: 0 0 1rem;
}
.hero__title { max-width: 22ch; margin-bottom: 1rem; }
.hero__lede {
    font-size: 1.25rem;
    color: var(--vfj-fg-muted);
    max-width: 56ch;
    margin-bottom: 0;
}
.hero__cta {
    display: flex;
    gap: 0.75rem;
    margin-top: 2.25rem;
    flex-wrap: wrap;
}

/* Buttons */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.875rem 1.5rem;
    border-radius: var(--vfj-radius);
    font-weight: 600;
    font-size: 1rem;
    line-height: 1;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.05s ease;
}
a.btn, .btn { text-decoration: none; }
.btn:hover, .btn:focus-visible { text-decoration: none; }
.btn:active { transform: translateY(1px); }
.btn--primary,
a.btn--primary { background: var(--vfj-accent); color: #fff; }
.btn--primary:hover,
a.btn--primary:hover { background: var(--vfj-accent-hover); color: #fff; text-decoration: none; }
.btn--primary:visited,
a.btn--primary:visited { color: #fff; }
.btn--secondary { background: transparent; color: var(--vfj-fg); border-color: var(--vfj-fg); }
.btn--secondary:hover { background: var(--vfj-fg); color: #fff; }

/* Footer */
.site-footer {
    border-top: 1px solid var(--vfj-border);
    margin-top: 6rem;
    padding: 3rem 0 2.5rem;
    background: var(--vfj-bg);
    color: var(--vfj-fg-muted);
}
.site-footer__inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}
@media (min-width: 720px) {
    .site-footer__inner {
        grid-template-columns: auto 1fr auto;
        align-items: center;
    }
}
.site-footer__brand {
    font-weight: 800;
    font-size: 1.05rem;
    letter-spacing: -0.02em;
    color: var(--vfj-fg);
}
.site-footer__brand:hover { text-decoration: none; }
.site-footer__legal {
    font-size: 0.825rem;
    margin: 0;
    color: var(--vfj-fg-muted);
}
.site-footer__nav {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
}
.site-footer__nav a {
    color: var(--vfj-fg-muted);
    font-size: 0.9rem;
}
.site-footer__nav a:hover { color: var(--vfj-fg); text-decoration: none; }

/* Forms */
.search-form { display: flex; gap: 0.5rem; max-width: 32rem; }
.search-form__field {
    flex: 1;
    padding: 0.75rem 1rem;
    border: 1px solid var(--vfj-border);
    border-radius: var(--vfj-radius);
    font: inherit;
    background: #fff;
}
.search-form__field:focus-visible {
    outline: 2px solid var(--vfj-accent);
    outline-offset: 1px;
    border-color: var(--vfj-accent);
}
.search-form__submit {
    padding: 0.75rem 1.25rem;
    border: 0;
    background: var(--vfj-accent);
    color: #fff;
    border-radius: var(--vfj-radius);
    font-weight: 600;
    cursor: pointer;
}

/* ── Auth pages ── */
.vfj-auth { padding: 4rem 0 6rem; }
.vfj-auth__inner { max-width: 64rem; }
.vfj-auth__inner--narrow { max-width: 28rem; }
.vfj-auth__header { margin-bottom: 2rem; }
.vfj-auth__lede { color: var(--vfj-fg-muted); margin: 0; }
.vfj-auth__choice { display: grid; grid-template-columns: 1fr; gap: 1rem; margin: 2rem 0; }
@media (min-width: 720px) {
    .vfj-auth__choice { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
}
.vfj-auth__alt { color: var(--vfj-fg-muted); font-size: 0.95rem; margin-top: 1.5rem; }
.vfj-auth__alt a { font-weight: 600; }

/* ── Card / choice ── */
.vfj-card {
    display: block;
    padding: 1.75rem;
    background: var(--vfj-bg);
    border: 1px solid var(--vfj-border);
    border-radius: var(--vfj-radius-lg);
    color: var(--vfj-fg);
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.05s;
}
.vfj-card:hover {
    border-color: var(--vfj-fg);
    text-decoration: none;
    box-shadow: var(--vfj-shadow-md);
}
.vfj-card h2 { margin: 0 0 0.5rem; font-size: 1.35rem; }
.vfj-card p { color: var(--vfj-fg-muted); margin: 0 0 1rem; }
.vfj-card__cta { font-weight: 600; color: var(--vfj-accent); }

/* ── Forms ── */
.vfj-form { display: grid; gap: 1rem; }
.vfj-form__field { display: grid; gap: 0.4rem; }
.vfj-form__field label { font-weight: 600; font-size: 0.9rem; }
.vfj-form__field input[type="text"],
.vfj-form__field input[type="email"],
.vfj-form__field input[type="password"],
.vfj-form__field input[type="tel"],
.vfj-form__field input[type="url"],
.vfj-form__field input[type="number"],
.vfj-form__field input[type="date"],
.vfj-form__field select,
.vfj-form__field textarea {
    width: 100%;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--vfj-border);
    border-radius: var(--vfj-radius);
    font: inherit;
    background: #fff;
}
.vfj-form__field input:focus-visible,
.vfj-form__field select:focus-visible,
.vfj-form__field textarea:focus-visible {
    outline: 2px solid var(--vfj-accent);
    outline-offset: 1px;
    border-color: var(--vfj-accent);
}
.vfj-form__field--checkbox label,
.vfj-form__inline {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 500;
    font-size: 0.95rem;
    color: var(--vfj-fg);
}
.vfj-form__field--inline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.vfj-form__hint { color: var(--vfj-fg-muted); font-size: 0.85rem; margin: 0; }
.vfj-form__link { color: var(--vfj-accent); font-size: 0.9rem; }
.vfj-form__actions { margin-top: 1rem; }

/* ── Field framework (front-end render) ── */
.vfj-fields { display: grid; gap: 1.25rem; }
.vfj-field { display: grid; gap: 0.4rem; }
.vfj-field__label { font-weight: 600; font-size: 0.9rem; }
.vfj-field__required { color: var(--vfj-danger); }
.vfj-field__description { color: var(--vfj-fg-muted); font-size: 0.825rem; margin: 0; }
.vfj-field__empty { color: var(--vfj-fg-muted); font-style: italic; font-size: 0.9rem; margin: 0; }
.vfj-input {
    width: 100%;
    padding: 0.7rem 0.85rem;
    border: 1px solid var(--vfj-border);
    border-radius: var(--vfj-radius);
    font: inherit;
    background: #fff;
}
.vfj-input:focus-visible {
    outline: 2px solid var(--vfj-accent);
    outline-offset: 1px;
    border-color: var(--vfj-accent);
}
.vfj-input--textarea { min-height: 6em; line-height: 1.5; }
.vfj-checkbox-group {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    gap: 0.5rem 1rem;
    padding: 0.75rem;
    border: 1px solid var(--vfj-border);
    border-radius: var(--vfj-radius);
    background: var(--vfj-bg-soft);
}
.vfj-checkbox-group--terms { max-height: 22rem; overflow-y: auto; }
.vfj-checkbox-group__option,
.vfj-radio-group__option,
.vfj-checkbox {
    display: inline-flex; align-items: center; gap: 0.5rem;
    font-size: 0.95rem;
}
.vfj-radio-group { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }

/* ── Alerts ── */
.vfj-alert {
    padding: 0.85rem 1rem;
    border-radius: var(--vfj-radius);
    margin-bottom: 1rem;
    font-size: 0.95rem;
    border: 1px solid transparent;
}
.vfj-alert ul { margin: 0; padding-left: 1.25rem; }
.vfj-alert--error { background: #fef2f2; color: #991b1b; border-color: #fecaca; }
.vfj-alert--info  { background: #eff6ff; color: #1e3a8a; border-color: #bfdbfe; }
.vfj-alert--success { background: #f0fdf4; color: #14532d; border-color: #bbf7d0; }

/* ── Dashboard layout ── */
.vfj-dashboard { padding: 3rem 0 5rem; }
.vfj-dashboard__inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}
@media (min-width: 880px) {
    .vfj-dashboard__inner {
        grid-template-columns: 220px 1fr;
        gap: 3rem;
    }
}
.vfj-dashboard__nav {
    border-right: 1px solid var(--vfj-border);
    padding-right: 1.5rem;
}
@media (max-width: 879px) {
    .vfj-dashboard__nav { border-right: 0; border-bottom: 1px solid var(--vfj-border); padding: 0 0 1rem; }
}
.vfj-dashboard__heading {
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.7rem;
    color: var(--vfj-fg-muted);
    margin: 0 0 0.75rem;
    font-weight: 600;
}
.vfj-dashboard__nav ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.15rem; }
.vfj-dashboard__nav a {
    display: block;
    padding: 0.5rem 0.75rem;
    border-radius: var(--vfj-radius);
    color: var(--vfj-fg);
    font-weight: 500;
    text-decoration: none;
}
.vfj-dashboard__nav a:hover { background: var(--vfj-bg-soft); }
.vfj-dashboard__nav a.is-active { background: var(--vfj-fg); color: #fff; }
.vfj-dashboard__nav-sep { height: 1px; background: var(--vfj-border); margin: 0.5rem 0; }
.vfj-dashboard__signout { color: var(--vfj-fg-muted) !important; }
.vfj-dashboard__main { min-width: 0; }
.vfj-dashboard__header { margin-bottom: 1.5rem; }
.vfj-dashboard__header h1 { margin: 0; font-size: clamp(1.5rem, 2.5vw, 2rem); }

/* ── Empty state ── */
.vfj-empty-state {
    text-align: center;
    padding: 3rem 1rem;
    border: 1px dashed var(--vfj-border);
    border-radius: var(--vfj-radius-lg);
    background: var(--vfj-bg-soft);
}
.vfj-empty-state p { color: var(--vfj-fg-muted); margin-bottom: 1rem; }

/* ── Job list / cards on dashboard ── */
.vfj-job-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.75rem; }
.vfj-job-card {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 0.5rem 1rem;
    padding: 1rem 1.25rem;
    border: 1px solid var(--vfj-border);
    border-radius: var(--vfj-radius-lg);
    background: var(--vfj-bg);
}
.vfj-job-card__title { font-weight: 600; font-size: 1.05rem; color: var(--vfj-fg); grid-column: 1; }
.vfj-job-card__meta  { color: var(--vfj-fg-muted); font-size: 0.875rem; margin: 0; grid-column: 1; }
.vfj-job-card__action { grid-row: 1 / span 2; grid-column: 2; }

.vfj-application-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.5rem; }
.vfj-application-row {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--vfj-border);
    border-radius: var(--vfj-radius);
    background: var(--vfj-bg);
    align-items: center;
}
.vfj-application-row__status { color: var(--vfj-fg-muted); font-size: 0.85rem; }
.vfj-application-row__date   { color: var(--vfj-fg-muted); font-size: 0.85rem; }

.vfj-link-button {
    background: none; border: 0; padding: 0; cursor: pointer;
    color: var(--vfj-danger); font: inherit; font-weight: 500;
}
.vfj-link-button:hover { text-decoration: underline; }

/* ── Header auth nav ── */
.site-header__auth { display: flex; align-items: center; gap: 1rem; font-weight: 500; }
.site-header__auth a { color: var(--vfj-fg); }
.site-header__auth .btn { padding: 0.5rem 1rem; font-size: 0.9rem; }

/* ── Dashboard header w/ actions ── */
.vfj-dashboard__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}
.vfj-dashboard__actions { display: flex; gap: 0.5rem; }

/* ── Tables ── */
.vfj-table-wrap { overflow-x: auto; border: 1px solid var(--vfj-border); border-radius: var(--vfj-radius-lg); background: var(--vfj-bg); }
.vfj-table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.vfj-table th,
.vfj-table td { text-align: left; padding: 0.85rem 1rem; vertical-align: middle; }
.vfj-table thead th {
    background: var(--vfj-bg-soft);
    font-weight: 600;
    font-size: 0.825rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--vfj-fg-muted);
    border-bottom: 1px solid var(--vfj-border);
}
.vfj-table tbody tr + tr td { border-top: 1px solid var(--vfj-border); }
.vfj-table__title { font-weight: 600; color: var(--vfj-fg); }
.vfj-table__actions { white-space: nowrap; text-align: right; }
.vfj-link { color: var(--vfj-accent); font-weight: 500; }
.vfj-inline-form { display: inline; margin: 0; padding: 0; }

/* ── Badges ── */
.vfj-badge {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    background: var(--vfj-bg-soft);
    color: var(--vfj-fg-muted);
    border: 1px solid var(--vfj-border);
}
.vfj-badge--publish { background: #f0fdf4; color: #14532d; border-color: #bbf7d0; }
.vfj-badge--draft   { background: #f5f3ff; color: #4c1d95; border-color: #ddd6fe; }
.vfj-badge--pending { background: #fffbeb; color: #78350f; border-color: #fde68a; }
.vfj-badge--private { background: #f1f5f9; color: #1e293b; border-color: #cbd5e1; }
.vfj-badge--future  { background: #eff6ff; color: #1e3a8a; border-color: #bfdbfe; }

/* ── Form divider for grouping job-edit sections ── */
.vfj-form__divider {
    border: 0;
    border-top: 1px solid var(--vfj-border);
    margin: 1.5rem 0;
}

/* ── Browse / search ── */
.vfj-browse__head { padding: 3rem 0 2rem; border-bottom: 1px solid var(--vfj-border); background: var(--vfj-bg-soft); }
.vfj-browse__title { margin: 0 0 0.5rem; }
.vfj-browse__lede { color: var(--vfj-fg-muted); margin: 0; max-width: 56ch; }
.vfj-browse__layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    padding: 2rem 1.25rem 4rem;
}
@media (min-width: 880px) {
    .vfj-browse__layout { grid-template-columns: 260px 1fr; gap: 2.5rem; }
}
.vfj-browse__sidebar {
    align-self: start;
    position: sticky;
    top: 5rem;
    max-height: calc(100vh - 6rem);
    overflow-y: auto;
}
@media (max-width: 879px) {
    .vfj-browse__sidebar { position: static; max-height: none; }
}
.vfj-browse__toolbar {
    display: flex; justify-content: space-between; align-items: center;
    padding-bottom: 1rem; border-bottom: 1px solid var(--vfj-border);
    margin-bottom: 1rem;
}
.vfj-browse__count { margin: 0; color: var(--vfj-fg-muted); font-size: 0.95rem; }
.vfj-browse__count [data-vfj-total] { font-weight: 700; color: var(--vfj-fg); }
.vfj-browse__results { display: grid; gap: 1rem; transition: opacity 0.15s; }
.vfj-browse__results.is-loading { opacity: 0.5; }

/* ── Job card (browse / saved-jobs / dashboard share) ── */
.vfj-job-card--browse {
    /* Single-column flex flow. Overrides the base .vfj-job-card 1fr/auto grid that
       was squashing the title into a narrow column. */
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1.25rem 1.5rem;
    border: 1px solid var(--vfj-border);
    border-radius: var(--vfj-radius-lg);
    background: var(--vfj-bg);
    transition: border-color 0.15s, box-shadow 0.15s, transform 0.05s;
}
.vfj-job-card--browse:hover { border-color: var(--vfj-fg); box-shadow: var(--vfj-shadow-md); transform: translateY(-1px); }
.vfj-job-card--browse:hover .vfj-job-card__title { text-decoration: none; }
.vfj-job-card--browse .vfj-job-card__title {
    display: block;
    font-size: 1.05rem;
    line-height: 1.3;
    color: var(--vfj-fg);
    word-break: normal;
    overflow-wrap: break-word;
}
.vfj-job-card--browse .vfj-job-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.85rem;
    color: var(--vfj-fg-muted);
    font-size: 0.875rem;
    margin: 0;
}
.vfj-job-card__excerpt { color: var(--vfj-fg-muted); font-size: 0.95rem; line-height: 1.5; }
.vfj-job-card__tags { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.25rem; }

.vfj-tag {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    background: var(--vfj-bg-soft);
    color: var(--vfj-fg);
    border: 1px solid var(--vfj-border);
}
.vfj-tag--sponsor       { background: #ecfdf5; color: #065f46; border-color: #bbf7d0; }
.vfj-tag--sponsor-maybe { background: #fffbeb; color: #92400e; border-color: #fde68a; }
.vfj-tag--offshore      { background: #eff6ff; color: #1e3a8a; border-color: #bfdbfe; }
.vfj-tag--visa          { background: #f5f3ff; color: #5b21b6; border-color: #ddd6fe; }
.vfj-tag--more          { background: var(--vfj-fg); color: #fff; border-color: var(--vfj-fg); }
.vfj-tag--accom         { background: #f1f5f9; color: #1e293b; border-color: #cbd5e1; }

/* ── Filter form ── */
.vfj-filters { display: grid; gap: 0.75rem; padding: 1rem; background: var(--vfj-bg); border: 1px solid var(--vfj-border); border-radius: var(--vfj-radius-lg); }
.vfj-filters__group summary {
    cursor: pointer;
    font-weight: 600;
    padding: 0.4rem 0;
    border-bottom: 1px solid var(--vfj-border);
    list-style: none;
}
.vfj-filters__group summary::-webkit-details-marker { display: none; }
.vfj-filters__group[open] summary::after { content: "−"; float: right; }
.vfj-filters__group summary::after { content: "+"; float: right; color: var(--vfj-fg-muted); }
.vfj-filters__label { display: block; font-weight: 600; font-size: 0.85rem; margin-bottom: 0.4rem; }
.vfj-filters__group input[type=search] {
    width: 100%; padding: 0.6rem 0.75rem;
    border: 1px solid var(--vfj-border); border-radius: var(--vfj-radius); font: inherit;
}
.vfj-filters__options { display: grid; gap: 0.4rem; padding: 0.75rem 0; max-height: 18rem; overflow-y: auto; font-size: 0.9rem; }
.vfj-filters__options--scroll { max-height: 14rem; }
.vfj-filters__options--cols { grid-template-columns: repeat(4, 1fr); gap: 0.3rem; }
.vfj-filters__options label { display: inline-flex; gap: 0.5rem; align-items: center; }
.vfj-filters__radio-set { font-weight: 600; font-size: 0.85rem; padding-top: 0.5rem; }
.vfj-filters__actions { display: flex; gap: 0.5rem; padding-top: 0.5rem; border-top: 1px solid var(--vfj-border); }

/* ── Job detail page ── */
.vfj-job-detail { padding: 0 0 5rem; }
.vfj-job-detail__article { padding-top: 2rem; }
.vfj-job-detail__layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.5rem;
    padding: 0 1.25rem;
}
@media (min-width: 880px) {
    .vfj-job-detail__layout { grid-template-columns: 1fr 320px; }
}
.vfj-job-detail__header { grid-column: 1 / -1; padding-bottom: 1.5rem; border-bottom: 1px solid var(--vfj-border); }
.vfj-job-detail__title { margin: 0 0 0.75rem; }
.vfj-job-detail__meta { color: var(--vfj-fg-muted); margin: 0 0 1rem; }
.vfj-job-detail__tags { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.vfj-job-detail__content { line-height: 1.65; font-size: 1.05rem; }
.vfj-job-detail__content p { margin: 0 0 1em; }
.vfj-job-detail__section { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--vfj-border); }
.vfj-job-detail__visa-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.vfj-job-detail__visa-list a {
    display: inline-block; padding: 0.4rem 0.85rem;
    border: 1px solid var(--vfj-border); border-radius: 999px;
    color: var(--vfj-fg); font-size: 0.875rem; font-weight: 500;
}
.vfj-job-detail__visa-list a:hover { border-color: var(--vfj-fg); text-decoration: none; }
.vfj-job-detail__aside {
    align-self: start;
    padding: 1.5rem;
    background: var(--vfj-bg-soft);
    border: 1px solid var(--vfj-border);
    border-radius: var(--vfj-radius-lg);
    position: sticky;
    top: 5rem;
}
.vfj-job-detail__apply-hint { font-size: 0.85rem; color: var(--vfj-fg-muted); margin: 0.75rem 0 0; }
.vfj-job-detail__facts { margin-top: 1.5rem; display: grid; grid-template-columns: max-content 1fr; gap: 0.5rem 1rem; font-size: 0.9rem; }
.vfj-job-detail__facts dt { color: var(--vfj-fg-muted); font-weight: 500; }
.vfj-job-detail__facts dd { margin: 0; font-weight: 600; }

.vfj-no-results { padding: 3rem 1rem; text-align: center; color: var(--vfj-fg-muted); border: 1px dashed var(--vfj-border); border-radius: var(--vfj-radius-lg); }

.btn--full { width: 100%; }

/* ── Apply form on job detail ── */
.vfj-apply-form { display: grid; gap: 0.5rem; }
.vfj-apply-form label { font-weight: 600; font-size: 0.9rem; }
.vfj-apply-form textarea {
    width: 100%; padding: 0.65rem 0.85rem;
    border: 1px solid var(--vfj-border); border-radius: var(--vfj-radius); font: inherit;
    min-height: 6rem;
}
.vfj-apply-form textarea:focus-visible { outline: 2px solid var(--vfj-accent); outline-offset: 1px; border-color: var(--vfj-accent); }

/* ── Messaging ── */
.vfj-thread-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.5rem; }
.vfj-thread { border: 1px solid var(--vfj-border); border-radius: var(--vfj-radius-lg); background: var(--vfj-bg); }
.vfj-thread.has-unread { border-color: var(--vfj-accent); }
.vfj-thread__link { display: grid; gap: 0.25rem; padding: 1rem 1.25rem; color: var(--vfj-fg); }
.vfj-thread__link:hover { text-decoration: none; background: var(--vfj-bg-soft); }
.vfj-thread__title { font-weight: 600; }
.vfj-thread__meta { font-size: 0.85rem; color: var(--vfj-fg-muted); display: flex; gap: 0.5rem; align-items: center; }
.vfj-thread__badge { background: var(--vfj-accent); color: #fff; font-size: 0.7rem; padding: 0.1rem 0.45rem; border-radius: 999px; font-weight: 700; }
.vfj-thread__preview { color: var(--vfj-fg-muted); font-size: 0.9rem; }

.vfj-thread-header { padding-bottom: 1rem; border-bottom: 1px solid var(--vfj-border); margin-bottom: 1.5rem; }
.vfj-thread-header__partner { margin: 0; font-size: 1.1rem; }
.vfj-thread-header__job { margin: 0.4rem 0 0; color: var(--vfj-fg-muted); font-size: 0.95rem; }

.vfj-thread-body { display: grid; gap: 0.75rem; padding-bottom: 1rem; }
.vfj-thread-body__empty { color: var(--vfj-fg-muted); font-style: italic; }

.vfj-msg { display: grid; gap: 0.25rem; max-width: 70%; }
.vfj-msg--own    { justify-self: end; text-align: right; }
.vfj-msg--theirs { justify-self: start; }
.vfj-msg__bubble {
    padding: 0.65rem 0.95rem;
    border-radius: 14px;
    background: var(--vfj-bg-soft);
    border: 1px solid var(--vfj-border);
}
.vfj-msg--own .vfj-msg__bubble { background: var(--vfj-accent); color: #fff; border-color: var(--vfj-accent); }
.vfj-msg__body { margin: 0; line-height: 1.5; white-space: pre-wrap; }
.vfj-msg__meta { font-size: 0.75rem; color: var(--vfj-fg-muted); margin: 0; }

.vfj-thread-compose { display: grid; gap: 0.5rem; padding-top: 1rem; border-top: 1px solid var(--vfj-border); }
.vfj-thread-compose textarea {
    width: 100%; padding: 0.65rem 0.85rem;
    border: 1px solid var(--vfj-border); border-radius: var(--vfj-radius); font: inherit; min-height: 4rem;
}
.vfj-thread-compose button { justify-self: end; }
.vfj-thread-back { margin-top: 1rem; }

/* ── Plans / subscription ── */
.vfj-plans {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}
.vfj-plan {
    border: 1px solid var(--vfj-border);
    border-radius: var(--vfj-radius-lg);
    padding: 1.5rem;
    background: var(--vfj-bg);
    display: grid;
    gap: 0.75rem;
    align-content: start;
}
.vfj-plan.is-current { border-color: var(--vfj-accent); box-shadow: 0 0 0 2px rgba(37,99,235,0.15); }
.vfj-plan__name { margin: 0; font-size: 1.1rem; }
.vfj-plan__price { margin: 0; font-size: 1.5rem; }
.vfj-plan__price strong { font-weight: 800; }
.vfj-plan__price span { font-size: 0.85rem; color: var(--vfj-fg-muted); font-weight: 500; }
.vfj-plan__features { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.4rem; font-size: 0.9rem; color: var(--vfj-fg-muted); }
.vfj-plan__features li::before { content: "✓"; color: var(--vfj-success); margin-right: 0.5rem; font-weight: 700; }
.vfj-plan__current { color: var(--vfj-accent); font-weight: 600; margin: 0; }
.vfj-plan__unavailable { color: var(--vfj-fg-muted); font-size: 0.85rem; margin: 0; }

.vfj-billing-portal { margin-bottom: 2rem; }
.vfj-usage { padding: 1rem 1.25rem; background: var(--vfj-bg-soft); border-radius: var(--vfj-radius-lg); border: 1px solid var(--vfj-border); }
.vfj-usage h3 { margin: 0 0 0.5rem; font-size: 1rem; }
.vfj-usage ul { list-style: none; padding: 0; margin: 0; display: flex; gap: 1.5rem; flex-wrap: wrap; font-size: 0.95rem; }

/* ── Hero search ── */
.hero__search {
    display: flex; gap: 0.5rem; max-width: 38rem; margin-top: 1.5rem;
    background: #fff; border: 1px solid var(--vfj-border); border-radius: var(--vfj-radius-lg);
    padding: 0.4rem;
    box-shadow: var(--vfj-shadow-sm);
}
.hero__search input { flex: 1; padding: 0.7rem 0.85rem; border: 0; font: inherit; outline: none; background: transparent; }
.hero__search button { white-space: nowrap; }

/* ── Home categories ── */
.vfj-home-cats { padding: 4rem 0; border-bottom: 1px solid var(--vfj-border); }
.vfj-home-cats__title { margin: 0 0 2rem; }
.vfj-home-cats__grid { display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.vfj-home-cats__card {
    display: block; padding: 1.1rem 1.25rem;
    background: var(--vfj-bg); border: 1px solid var(--vfj-border); border-radius: var(--vfj-radius-lg);
    color: var(--vfj-fg); font-weight: 600;
    transition: border-color 0.15s, transform 0.05s;
}
.vfj-home-cats__card:hover { border-color: var(--vfj-fg); text-decoration: none; transform: translateY(-1px); }

/* ── Home featured jobs ── */
.vfj-home-jobs { padding: 4rem 0; }
.vfj-home-jobs__title { margin: 0 0 2rem; }
.vfj-home-jobs__grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)); }
.vfj-home-jobs__more { margin-top: 2rem; }

/* ── Language switcher (legacy flat list, kept for any old shortcode usage) ── */
.vfj-lang-switcher { list-style: none; padding: 0; margin: 0; display: flex; gap: 0.5rem; }
.vfj-lang-switcher a { color: var(--vfj-fg-muted); font-size: 0.9rem; }
.vfj-lang-switcher .is-current a { color: var(--vfj-fg); font-weight: 700; }

/* ── Language switcher v2 — <details> disclosure (mobile-friendly) ── */
.vfj-lang { position: relative; display: inline-block; }
.vfj-lang > summary {
    list-style: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.7rem;
    border: 1px solid var(--vfj-border, #e5e7eb);
    border-radius: 999px;
    background: #fff;
    color: var(--vfj-fg, #0f172a);
    font: inherit;
    font-size: 0.9rem;
    line-height: 1;
    transition: border-color .15s ease, box-shadow .15s ease;
    white-space: nowrap;
}
.vfj-lang > summary::-webkit-details-marker { display: none; }
.vfj-lang > summary::marker { content: ''; }
.vfj-lang > summary:hover,
.vfj-lang > summary:focus-visible {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
    outline: none;
}
.vfj-lang__globe { color: #2563eb; flex: 0 0 auto; }
.vfj-lang__current { font-weight: 600; }
.vfj-lang__caret { color: var(--vfj-fg-muted, #64748b); font-size: 0.7rem; }
.vfj-lang[open] > summary .vfj-lang__caret { transform: rotate(180deg); }

.vfj-lang__panel {
    position: absolute;
    top: calc(100% + 0.5rem);
    right: 0;
    z-index: 50;
    min-width: 220px;
    max-height: min(70vh, 420px);
    overflow-y: auto;
    background: #fff;
    border: 1px solid var(--vfj-border, #e5e7eb);
    border-radius: 14px;
    box-shadow: 0 14px 38px rgba(15, 23, 42, 0.18);
    padding: 0.5rem;
}
.vfj-lang__heading {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--vfj-fg-muted, #64748b);
    padding: 0.35rem 0.6rem;
    margin: 0;
}
.vfj-lang__list { list-style: none; padding: 0; margin: 0; }
.vfj-lang__item a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.55rem 0.6rem;
    border-radius: 10px;
    color: var(--vfj-fg, #0f172a);
    text-decoration: none;
    font-size: 0.95rem;
    line-height: 1.2;
    min-height: 40px; /* tap target */
}
.vfj-lang__item a:hover,
.vfj-lang__item a:focus-visible {
    background: #f1f5f9;
    outline: none;
}
.vfj-lang__item.is-current a {
    background: rgba(37, 99, 235, 0.08);
    color: #1d4ed8;
    font-weight: 600;
}
.vfj-lang__check { color: #2563eb; }

@media (max-width: 640px) {
    .vfj-lang > summary { padding: 0.55rem 0.7rem; font-size: 0.95rem; }
    .vfj-lang__current { max-width: 100px; overflow: hidden; text-overflow: ellipsis; }
    .vfj-lang__panel {
        position: fixed;
        top: auto;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100%;
        max-height: 70vh;
        border-radius: 18px 18px 0 0;
        padding: 1rem 0.75rem 1.25rem;
        box-shadow: 0 -14px 38px rgba(15, 23, 42, 0.25);
    }
    .vfj-lang__panel::before {
        content: '';
        display: block;
        width: 36px;
        height: 4px;
        background: #cbd5e1;
        border-radius: 999px;
        margin: 0 auto 0.75rem;
    }
    .vfj-lang__item a { padding: 0.85rem 0.75rem; font-size: 1rem; }
}

/* ── Blog Agent posts ── */
.vfj-blog-scenario {
    font-size: 1.15rem;
    color: var(--vfj-fg);
    background: var(--vfj-bg-soft);
    border-left: 4px solid var(--vfj-accent);
    padding: 1rem 1.25rem;
    border-radius: var(--vfj-radius);
    margin: 1.5rem 0 2rem;
}
.vfj-blog-inline-cta {
    margin: 1.75rem 0;
    padding: 1rem 1.25rem 1rem 1.1rem;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.06) 0%, rgba(249, 115, 22, 0.06) 100%);
    border: 1px solid rgba(37, 99, 235, 0.2);
    border-left: 4px solid #f97316;
    border-radius: 12px;
    font-size: 0.97rem;
    color: var(--vfj-fg);
    line-height: 1.55;
}
.vfj-blog-inline-cta strong { color: #1e40af; font-weight: 700; }
.vfj-blog-inline-cta a {
    font-weight: 700;
    color: #2563eb;
    text-decoration: none;
    border-bottom: 2px solid rgba(37, 99, 235, 0.25);
    padding-bottom: 1px;
}
.vfj-blog-inline-cta a:hover {
    color: #1e40af;
    border-bottom-color: #1e40af;
}

.vfj-blog-cta {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin: 3.5rem 0 1.5rem;
}
@media (min-width: 720px) {
    .vfj-blog-cta { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
}
.vfj-blog-cta__half {
    position: relative;
    border: 1px solid var(--vfj-border);
    border-radius: 18px;
    padding: 1.75rem 1.85rem 1.85rem;
    background: var(--vfj-bg);
    display: grid;
    gap: 0.55rem;
    align-content: start;
    overflow: hidden;
    isolation: isolate;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.vfj-blog-cta__half::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: 0.55;
}
.vfj-blog-cta__half:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px -12px rgba(15, 23, 42, 0.18);
}
.vfj-blog-cta__half--candidate {
    border-color: rgba(37, 99, 235, 0.25);
}
.vfj-blog-cta__half--candidate::before {
    background: linear-gradient(135deg, #eff6ff 0%, #fdf2f8 100%);
}
.vfj-blog-cta__half--employer {
    border-color: rgba(16, 185, 129, 0.28);
}
.vfj-blog-cta__half--employer::before {
    background: linear-gradient(135deg, #ecfdf5 0%, #fef3c7 100%);
}

.vfj-blog-cta__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    color: #fff;
    margin-bottom: 0.25rem;
    box-shadow: 0 6px 16px -6px rgba(15, 23, 42, 0.25);
}
.vfj-blog-cta__half--candidate .vfj-blog-cta__icon {
    background: linear-gradient(135deg, #2563eb 0%, #6d28d9 100%);
}
.vfj-blog-cta__half--employer .vfj-blog-cta__icon {
    background: linear-gradient(135deg, #059669 0%, #f59e0b 100%);
}

.vfj-blog-cta__eyebrow {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--vfj-fg-muted);
}
.vfj-blog-cta__half h3 {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    margin: 0;
    font-size: 1.35rem;
    line-height: 1.2;
    color: var(--vfj-fg);
}
.vfj-blog-cta__lede {
    margin: 0;
    color: var(--vfj-fg-muted);
    font-size: 0.97rem;
    line-height: 1.55;
}
.vfj-blog-cta__bullets {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--vfj-fg);
    opacity: 0.65;
}
.vfj-blog-cta__half .btn {
    margin-top: 0.6rem;
    justify-self: start;
}
.btn--cta-employer {
    background: linear-gradient(135deg, #059669 0%, #f59e0b 100%);
    color: #fff;
    box-shadow: 0 8px 20px -6px rgba(5, 150, 105, 0.45);
}
.btn--cta-employer:hover {
    background: linear-gradient(135deg, #047857 0%, #d97706 100%);
    box-shadow: 0 12px 28px -6px rgba(5, 150, 105, 0.55);
    color: #fff;
}

/* ─────────────────────────────────────────────────────────────────────
   SPICE LAYER (overrides + new components for the redesigned home)
   ───────────────────────────────────────────────────────────────────── */

:root {
    --vfj-fg: #0b0b14;
    --vfj-fg-muted: #545467;
    --vfj-bg: #ffffff;
    --vfj-bg-soft: #f7f6fb;
    --vfj-border: #ececf2;
    --vfj-accent: #2f53eb;
    --vfj-accent-hover: #1f3ec9;
    --vfj-coral: #ff7849;
    --vfj-mint: #14b8a6;
    --vfj-amber: #f59e0b;
    --vfj-violet: #8b5cf6;
    --vfj-pink: #ec4899;
    --vfj-lime: #84cc16;
    --vfj-sky: #0ea5e9;
    --vfj-rose: #f43f5e;
    --vfj-orange: #f97316;
    --vfj-font-sans: "Inter", "Helvetica Neue", Arial, sans-serif;
    --vfj-font-display: "Space Grotesk", "Inter", "Helvetica Neue", Arial, sans-serif;
}

body { font-family: var(--vfj-font-sans); }
h1, h2, h3, .hero__title { font-family: var(--vfj-font-display); letter-spacing: -0.02em; }

/* ── Logo + brand ── */
.site-brand { display: inline-flex; align-items: center; gap: 0.6rem; }
.site-brand__mark { display: inline-flex; }
.site-brand__mark svg { display: block; border-radius: 9px; }
.site-brand__text { font-weight: 800; font-size: 1.1rem; letter-spacing: -0.02em; }

/* ── Buttons polish ── */
.btn { border-radius: 999px; padding: 0.85rem 1.5rem; font-weight: 600; transition: transform .08s ease, background .15s, box-shadow .15s, border-color .15s; }
.btn:hover { transform: translateY(-1px); }
.btn--primary,
a.btn--primary { background: var(--vfj-accent); color: #fff; box-shadow: 0 6px 20px -6px rgba(47,83,235,0.5); text-decoration: none; }
.btn--primary:hover,
a.btn--primary:hover { background: var(--vfj-accent-hover); box-shadow: 0 10px 30px -6px rgba(47,83,235,0.55); color: #fff; text-decoration: none; }
.btn--primary:visited,
a.btn--primary:visited { color: #fff; }
.btn--secondary { background: #fff; color: var(--vfj-fg); border: 1px solid var(--vfj-border); }
.btn--secondary:hover { border-color: var(--vfj-fg); }
.btn--lg { padding: 1rem 1.75rem; font-size: 1.05rem; }
.btn--ghost-invert { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.4); padding: 0.85rem 1.5rem; border-radius: 999px; font-weight: 600; }
.btn--ghost-invert:hover { background: rgba(255,255,255,0.08); border-color: #fff; color: #fff; text-decoration: none; }

/* ── Hero with mesh-gradient blobs ── */
.hero { position: relative; padding: 6rem 0 7rem; overflow: hidden; background: linear-gradient(180deg, #fff 0%, #fff7f1 100%); border-bottom: 1px solid var(--vfj-border); }
.hero__bg { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.hero__blob { position: absolute; border-radius: 50%; filter: blur(80px); opacity: 0.55; }
.hero__blob--1 { width: 32rem; height: 32rem; background: var(--vfj-accent); top: -8rem; left: -10rem; opacity: 0.18; }
.hero__blob--2 { width: 28rem; height: 28rem; background: var(--vfj-coral); top: -4rem; right: -6rem; opacity: 0.22; }
.hero__blob--3 { width: 22rem; height: 22rem; background: var(--vfj-mint); bottom: -8rem; left: 30%; opacity: 0.18; }

.hero__inner { position: relative; max-width: 64rem; }
.hero__eyebrow {
    display: inline-flex; align-items: center; gap: 0.55rem;
    padding: 0.4rem 0.9rem;
    background: rgba(11,11,20,0.06);
    border-radius: 999px;
    text-transform: none; letter-spacing: 0;
    font-size: 0.8rem; font-weight: 600; color: var(--vfj-fg);
    margin: 0 0 1.5rem;
}
.hero__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--vfj-coral); animation: vfj-pulse 1.6s ease-in-out infinite; }
@keyframes vfj-pulse { 0%,100% { transform: scale(1); opacity:1; } 50% { transform: scale(1.4); opacity: .55; } }

.hero__title {
    font-family: var(--vfj-font-display);
    font-size: clamp(2.4rem, 5.5vw, 4.5rem);
    font-weight: 700;
    line-height: 1.05;
    margin: 0 0 1rem;
    max-width: 22ch;
}
.hero__title--accent {
    background: linear-gradient(90deg, var(--vfj-accent), var(--vfj-coral));
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
}
.hero__lede { font-size: 1.2rem; color: var(--vfj-fg-muted); max-width: 56ch; margin: 0 0 2rem; }

.hero__search {
    display: flex; align-items: center; gap: 0.5rem; max-width: 40rem;
    background: #fff; border: 1px solid var(--vfj-border); border-radius: 999px;
    padding: 0.4rem 0.45rem 0.4rem 1.25rem;
    box-shadow: 0 12px 40px -12px rgba(11,11,20,0.18);
}
.hero__search-icon { font-size: 1.05rem; opacity: 0.7; }
.hero__search input { flex: 1; padding: 0.85rem 0.5rem; border: 0; font: inherit; outline: none; background: transparent; }
.hero__search button { white-space: nowrap; }

.hero__chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.5rem; }
.hero__chip {
    padding: 0.5rem 0.95rem;
    background: rgba(255,255,255,0.7);
    border: 1px solid var(--vfj-border);
    border-radius: 999px;
    font-size: 0.875rem; font-weight: 500;
    color: var(--vfj-fg);
    -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.hero__chip:hover { background: #fff; border-color: var(--vfj-fg); text-decoration: none; transform: translateY(-1px); transition: all .15s; }

/* ── Section heads ── */
.vfj-section__eyebrow {
    display: inline-block;
    text-transform: uppercase; letter-spacing: 0.12em;
    font-size: 0.72rem; font-weight: 700;
    color: var(--vfj-accent);
    margin: 0 0 0.5rem;
}
.vfj-section__eyebrow--invert { color: rgba(255,255,255,0.7); }
.vfj-section__title { font-size: clamp(1.6rem, 3vw, 2.5rem); margin: 0 0 0.5rem; font-weight: 700; }
.vfj-section__lede { color: var(--vfj-fg-muted); margin: 0 0 2rem; max-width: 60ch; }

/* ── Home: categories with color tones ── */
.vfj-home-cats { padding: 5rem 0; }
.vfj-home-cats__grid {
    display: grid; gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    margin-top: 1.5rem;
}
.vfj-home-cats__card {
    position: relative;
    display: grid; gap: 0.4rem; align-content: start;
    padding: 1.5rem; min-height: 9rem;
    background: var(--card-bg, var(--vfj-bg-soft));
    border: 1px solid var(--vfj-border);
    border-radius: 18px;
    color: var(--vfj-fg);
    overflow: hidden;
    transition: transform .15s ease, box-shadow .15s, border-color .15s;
}
.vfj-home-cats__card::after {
    content: ""; position: absolute; right: -2rem; top: -2rem;
    width: 8rem; height: 8rem;
    background: var(--card-accent, var(--vfj-accent));
    border-radius: 50%; opacity: 0.10;
    transition: transform .25s;
}
.vfj-home-cats__card:hover { transform: translateY(-3px); border-color: var(--vfj-fg); text-decoration: none; box-shadow: 0 18px 40px -16px rgba(11,11,20,0.18); }
.vfj-home-cats__card:hover::after { transform: scale(1.4); }
.vfj-home-cats__emoji { font-size: 2rem; line-height: 1; margin-bottom: 0.4rem; }
.vfj-home-cats__label { font-weight: 700; font-size: 1.1rem; }
.vfj-home-cats__sub { font-size: 0.85rem; color: var(--vfj-fg-muted); }

.vfj-tone--sky    { --card-bg: #ecfeff; --card-accent: var(--vfj-sky); }
.vfj-tone--mint   { --card-bg: #f0fdfa; --card-accent: var(--vfj-mint); }
.vfj-tone--amber  { --card-bg: #fffbeb; --card-accent: var(--vfj-amber); }
.vfj-tone--rose   { --card-bg: #fff1f2; --card-accent: var(--vfj-rose); }
.vfj-tone--lime   { --card-bg: #f7fee7; --card-accent: var(--vfj-lime); }
.vfj-tone--violet { --card-bg: #f5f3ff; --card-accent: var(--vfj-violet); }
.vfj-tone--orange { --card-bg: #fff7ed; --card-accent: var(--vfj-orange); }
.vfj-tone--pink   { --card-bg: #fdf2f8; --card-accent: var(--vfj-pink); }

/* ── Home map section ── */
.vfj-home-map { padding: 4rem 0; background: linear-gradient(180deg, var(--vfj-bg-soft) 0%, #fff 100%); }
.vfj-map { width: 100%; border-radius: 18px; overflow: hidden; box-shadow: 0 12px 40px -16px rgba(11,11,20,0.2); border: 1px solid var(--vfj-border); }
.vfj-map__canvas { width: 100%; height: 100%; }
.vfj-map__empty { padding: 2rem; text-align: center; color: var(--vfj-fg-muted); }
/* Map shortcode emits an inline height attribute. Override on mobile so the map doesn't
   eat the entire viewport. */
@media (max-width: 720px) {
    .vfj-home-map { padding: 2.5rem 0; }
    .vfj-map { height: 320px !important; border-radius: 14px; }
}
@media (max-width: 480px) {
    .vfj-map { height: 260px !important; }
}

/* ── Latest jobs ── */
.vfj-home-jobs { padding: 5rem 0; }
.vfj-home-jobs__grid {
    display: grid; gap: 1.25rem;
    grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
    margin-top: 1.5rem;
}

/* ── Employer CTA banner ── */
.vfj-home-employer-cta {
    margin: 4rem auto 6rem;
    padding: 4rem 1rem;
    background: linear-gradient(125deg, #0b0b14 0%, #1d2050 50%, #2f53eb 120%);
    color: #fff;
    border-radius: 28px;
    width: calc(100% - 2.5rem); max-width: var(--vfj-container);
    overflow: hidden;
    position: relative;
}
.vfj-home-employer-cta::before {
    content: ""; position: absolute; right: -8rem; bottom: -8rem;
    width: 24rem; height: 24rem; border-radius: 50%;
    background: radial-gradient(circle at center, rgba(255,120,73,0.6), transparent 65%);
    pointer-events: none;
}
.vfj-home-employer-cta__inner {
    display: grid; gap: 2rem; align-items: center;
    grid-template-columns: 1fr;
    position: relative;
}
@media (min-width: 880px) {
    .vfj-home-employer-cta__inner { grid-template-columns: 1.4fr 1fr; }
}
.vfj-home-employer-cta__title { font-size: clamp(1.6rem, 3vw, 2.4rem); margin: 0 0 0.75rem; color: #fff; }
.vfj-home-employer-cta__lede  { color: rgba(255,255,255,0.78); margin: 0; max-width: 50ch; }
.vfj-home-employer-cta__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }

/* ── Polish on browse-card chips/tags inside the new layout ── */
.vfj-tag { padding: 0.25rem 0.65rem; font-size: 0.75rem; }

/* ── Footer multi-col ── */
.site-footer { background: #0b0b14; color: rgba(255,255,255,0.85); margin-top: 0; padding: 4rem 0 2rem; border-top: 0; }
.site-footer__inner {
    display: grid;
    grid-template-columns: 1.4fr repeat(4, 1fr);
    gap: 2rem;
}
@media (max-width: 880px) {
    .site-footer__inner { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 540px) {
    .site-footer__inner { grid-template-columns: 1fr; }
}
.site-footer__brand-block { display: grid; gap: 0.75rem; }
.site-footer__brand { display: inline-flex; align-items: center; gap: 0.5rem; color: #fff; text-decoration: none; }
.site-footer__brand .site-brand__text { color: #fff; font-size: 1rem; }
.site-footer__tagline { color: rgba(255,255,255,0.65); font-size: 0.9rem; margin: 0; max-width: 28ch; }
.site-footer__col h4.site-footer__heading {
    text-transform: uppercase; letter-spacing: 0.1em;
    font-size: 0.72rem; font-weight: 700;
    color: rgba(255,255,255,0.5);
    margin: 0 0 1rem;
}
.site-footer__col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.5rem; }
.site-footer__col a { color: rgba(255,255,255,0.85); font-size: 0.9rem; text-decoration: none; }
.site-footer__col a:hover { color: #fff; text-decoration: underline; }
.site-footer__legal-row { grid-column: 1 / -1; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,0.1); margin-top: 1rem; }
.site-footer__legal { color: rgba(255,255,255,0.55); font-size: 0.85rem; margin: 0; }

/* ── Button size variant ── */
.btn--sm { padding: 0.55rem 1rem; font-size: 0.875rem; }

/* ── Thread header actions (Start video call) ── */
.vfj-thread-header__actions { margin-top: 1rem; display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* ── Video call iframe page ── */
.vfj-call { display: grid; gap: 1rem; }
.vfj-call__header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.75rem; }
.vfj-call__header p { margin: 0; }
.vfj-call__actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.vfj-call__frame {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    min-height: 480px;
    border-radius: var(--vfj-radius-lg);
    overflow: hidden;
    border: 1px solid var(--vfj-border);
    background: #0b0b14;
}
.vfj-call__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.vfj-call__note { font-size: 0.85rem; color: var(--vfj-fg-muted); margin: 0; }

/* ── Doc / page templates (Terms, Privacy, Contact, single guide, single employer) ── */
.vfj-doc { background: var(--vfj-bg); }
.vfj-doc__hero {
    background: linear-gradient(180deg, #f1f5ff 0%, var(--vfj-bg) 100%);
    border-bottom: 1px solid var(--vfj-border);
    padding: 3.5rem 0 2.5rem;
}
.vfj-doc__hero--guide {
    background: linear-gradient(135deg, #eef2ff 0%, #fef3c7 100%);
}
.vfj-doc__hero--employer {
    background: linear-gradient(135deg, #ecfdf5 0%, #f0fdfa 100%);
}
.vfj-doc__eyebrow {
    color: #2563eb;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0 0 0.5rem;
}
.vfj-doc__title {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: clamp(2rem, 4vw, 2.75rem);
    line-height: 1.15;
    margin: 0 0 0.75rem;
    color: var(--vfj-fg);
}
.vfj-doc__lede {
    color: var(--vfj-fg-muted);
    font-size: 1.1rem;
    max-width: 60ch;
    margin: 0 0 1rem;
}
.vfj-doc__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0;
}
.vfj-doc__article {
    padding: 2.5rem 0 4rem;
    max-width: 880px;
}
.vfj-doc__article--guide { max-width: 760px; }

/* ── Long-form prose styling ── */
.vfj-prose { color: var(--vfj-fg); font-size: 1.05rem; line-height: 1.7; }
.vfj-prose > * + * { margin-top: 1.1em; }
.vfj-prose h2 {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 1.65rem;
    line-height: 1.25;
    margin-top: 2.2em;
    margin-bottom: 0.6em;
    color: var(--vfj-fg);
}
.vfj-prose h3 {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 1.3rem;
    margin-top: 1.8em;
    margin-bottom: 0.5em;
}
.vfj-prose p { margin: 0; }
.vfj-prose a:not(.btn) { color: #2563eb; text-decoration: underline; text-underline-offset: 3px; }
.vfj-prose a:not(.btn):hover { color: #1e40af; }
.vfj-prose a.btn { text-decoration: none; }
.vfj-prose ul, .vfj-prose ol { padding-left: 1.4rem; }
.vfj-prose li + li { margin-top: 0.4em; }
.vfj-prose blockquote {
    border-left: 4px solid #f97316;
    background: #fff7ed;
    padding: 1rem 1.25rem;
    margin: 1.5em 0;
    color: var(--vfj-fg);
    border-radius: 0 10px 10px 0;
}
.vfj-prose code {
    background: #f1f5f9;
    padding: 0.15em 0.35em;
    border-radius: 4px;
    font-size: 0.92em;
}
.vfj-prose hr {
    border: 0;
    border-top: 1px solid var(--vfj-border);
    margin: 2em 0;
}
.vfj-prose img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
}

.vfj-doc__cta,
.vfj-archive__cta {
    margin-top: 3rem;
    padding: 1.75rem;
    background: linear-gradient(135deg, #eff6ff 0%, #fef3c7 100%);
    border: 1px solid var(--vfj-border);
    border-radius: 16px;
}
.vfj-doc__cta h2,
.vfj-archive__cta h2 {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    margin: 0 0 0.5rem;
    font-size: 1.4rem;
}
.vfj-doc__cta p,
.vfj-archive__cta p { margin: 0 0 0.75rem; color: var(--vfj-fg-muted); }
.vfj-doc__cta p:last-child,
.vfj-archive__cta p:last-child { margin-bottom: 0; }
.vfj-doc__cta .btn + .btn,
.vfj-archive__cta .btn + .btn { margin-left: 0.4rem; }

.vfj-doc__website { margin-top: 1.5rem; }
.vfj-doc__jobs { margin-top: 3rem; }
.vfj-doc__jobs h2 {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 1.5rem;
    margin: 0 0 1rem;
}

/* ── Archive (guides, employers, locations) ── */
.vfj-archive__hero {
    background: linear-gradient(180deg, var(--vfj-bg-soft) 0%, var(--vfj-bg) 100%);
    border-bottom: 1px solid var(--vfj-border);
    padding: 3rem 0 2rem;
    margin-bottom: 2rem;
}
.vfj-archive--guide .vfj-archive__hero {
    background: linear-gradient(135deg, #eef2ff 0%, #fef3c7 100%);
}
.vfj-archive--employer .vfj-archive__hero {
    background: linear-gradient(135deg, #ecfdf5 0%, #f0fdfa 100%);
}
.vfj-archive--location .vfj-archive__hero {
    background: linear-gradient(135deg, #fdf2f8 0%, #fff7ed 100%);
}
.vfj-archive__eyebrow {
    color: #2563eb;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0 0 0.4rem;
}
.vfj-archive__title {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: clamp(1.9rem, 3.5vw, 2.5rem);
    line-height: 1.15;
    margin: 0 0 0.75rem;
}
.vfj-archive__lede {
    color: var(--vfj-fg-muted);
    font-size: 1.05rem;
    max-width: 60ch;
    margin: 0;
}
.vfj-archive__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.25rem;
    margin: 1.5rem 0;
}
.vfj-archive__pagination {
    margin: 2.5rem 0 1rem;
    display: flex;
    justify-content: center;
}
.vfj-card--link {
    display: block;
    color: inherit;
    text-decoration: none;
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.vfj-card--link:hover {
    border-color: #2563eb;
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(37, 99, 235, 0.10);
}
.vfj-card--link h2,
.vfj-card--link h3 {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 1.15rem;
    line-height: 1.3;
    margin: 0 0 0.5rem;
    color: var(--vfj-fg);
}
.vfj-card__excerpt {
    color: var(--vfj-fg-muted);
    margin: 0 0 0.75rem;
    font-size: 0.95rem;
    line-height: 1.5;
}
.vfj-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0;
}

/* ── Mobile header & hamburger menu ─────────────────────────────────────
   Pure CSS toggle: hidden checkbox + label. No JS, accessible via keyboard.
   ───────────────────────────────────────────────────────────────────── */
.vfj-mobile-toggle { position: absolute; opacity: 0; pointer-events: none; }
.vfj-burger {
    display: none;
    width: 44px; height: 44px;
    padding: 10px 8px;
    cursor: pointer;
    border-radius: 10px;
    transition: background .15s ease;
    flex-direction: column;
    justify-content: space-between;
    box-sizing: border-box;
}
.vfj-burger:hover,
.vfj-burger:focus-visible { background: #f1f5f9; outline: none; }
.vfj-burger__bar {
    display: block;
    height: 2.5px;
    width: 100%;
    background: var(--vfj-fg, #0f172a);
    border-radius: 2px;
    transition: transform .2s ease, opacity .2s ease;
    transform-origin: center;
}
.vfj-mobile-toggle:checked ~ .site-header__inner .vfj-burger .vfj-burger__bar:nth-child(1) {
    transform: translateY(10px) rotate(45deg);
}
.vfj-mobile-toggle:checked ~ .site-header__inner .vfj-burger .vfj-burger__bar:nth-child(2) {
    opacity: 0;
}
.vfj-mobile-toggle:checked ~ .site-header__inner .vfj-burger .vfj-burger__bar:nth-child(3) {
    transform: translateY(-10px) rotate(-45deg);
}

@media (max-width: 880px) {
    .site-header__inner { gap: 0.75rem; padding: 0.85rem 1rem; flex-wrap: wrap; }
    .vfj-burger { display: inline-flex; }
    .site-header__menu {
        order: 99;
        flex-basis: 100%;
        max-height: 0;
        overflow: hidden;
        transition: max-height .25s ease;
        display: flex;
        flex-direction: column;
        gap: 0;
    }
    .vfj-mobile-toggle:checked ~ .site-header__inner .site-header__menu {
        max-height: 80vh;
        overflow-y: auto;
    }
    .site-header__menu .site-nav { padding: 0.75rem 0 0.5rem; border-top: 1px solid var(--vfj-border); margin-top: 0.5rem; }
    .site-header__menu .site-nav__list { flex-direction: column; gap: 0; }
    .site-header__menu .site-nav__list li { width: 100%; }
    .site-header__menu .site-nav__list a {
        display: block;
        padding: 0.85rem 0.25rem;
        border-bottom: 1px solid var(--vfj-border);
        font-size: 1rem;
        min-height: 44px;
    }
    .site-header__menu .site-header__auth {
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
        padding: 1rem 0 0.5rem;
        border-top: 1px solid var(--vfj-border);
        margin-top: 0.5rem;
        font-size: 1rem;
    }
    .site-header__menu .site-header__auth a:not(.btn) {
        display: block;
        padding: 0.6rem 0.25rem;
        min-height: 44px;
    }
    .site-header__menu .site-header__auth .btn { width: 100%; padding: 0.85rem 1rem; }
    .site-header__menu .vfj-lang { align-self: flex-start; }
}
@media (min-width: 881px) {
    .site-header__menu { display: contents; }
}

/* ── Mobile responsiveness pass ────────────────────────────────────── */
@media (max-width: 720px) {
    /* Hero: trim padding so the fold isn't all whitespace */
    .hero { padding: 3rem 0 3.5rem; }
    .vfj-doc__hero,
    .vfj-doc__hero--guide,
    .vfj-doc__hero--employer { padding: 2.25rem 0 1.75rem; }
    .vfj-archive__hero { padding: 2rem 0 1.5rem; margin-bottom: 1.25rem; }
    .vfj-doc__article { padding: 1.5rem 0 2.5rem; }
    .vfj-prose { font-size: 1rem; line-height: 1.65; }
    .vfj-prose h2 { font-size: 1.4rem; margin-top: 1.6em; }
    .vfj-prose h3 { font-size: 1.15rem; }
    .vfj-doc__lede { font-size: 1rem; }
    .vfj-archive__lede { font-size: 0.97rem; }
    .vfj-doc__cta,
    .vfj-archive__cta { padding: 1.25rem; }
    .vfj-doc__cta h2,
    .vfj-archive__cta h2 { font-size: 1.2rem; }
    .vfj-doc__cta .btn,
    .vfj-archive__cta .btn { width: 100%; margin: 0.4rem 0 0; }

    /* Browse jobs: tighter padding, wrap toolbar */
    .vfj-browse__head { padding: 2rem 0 1.25rem; }
    .vfj-browse__layout { padding: 1.25rem 1rem 3rem; gap: 1.25rem; }
    .vfj-browse__toolbar { flex-wrap: wrap; gap: 0.5rem; }
    .vfj-job-card--browse { padding: 1rem 1.1rem; }

    /* Single-job: aside drops below content */
    .vfj-job-detail { padding: 0 0 3rem; }
    .vfj-job-detail__layout { padding: 0 1rem; gap: 1.5rem; }
    .vfj-job-detail__aside { position: static; padding: 1.25rem; }

    /* Dashboard cards: stack action button under content */
    .vfj-job-card { grid-template-columns: 1fr; }
    .vfj-job-card__action { grid-row: auto; grid-column: 1; justify-self: stretch; }
    .vfj-job-card__action .btn { width: 100%; }

    /* Application row — three columns are too tight; stack date/status under title */
    .vfj-application-row {
        grid-template-columns: 1fr;
        gap: 0.35rem;
    }
    .vfj-application-row__date,
    .vfj-application-row__status { font-size: 0.8rem; }

    /* Filter form: drop 4-col options to 2-col on mobile */
    .vfj-filters__options--cols { grid-template-columns: repeat(2, 1fr); }

    /* Auth forms: full-width row form should wrap */
    .vfj-form--row { flex-direction: column; align-items: stretch; }
    .vfj-form--row .btn { width: 100%; }

    /* Blog Agent CTAs already stack via grid-template-columns: 1fr; tighten padding */
    .vfj-blog-cta__half { padding: 1.4rem 1.4rem 1.5rem; }

    /* Footer brand block already collapses; tighten padding */
    .site-footer { padding: 3rem 0 1.75rem; }

    /* Video call iframe: shorter on mobile so it isn't taller than viewport */
    .vfj-call__frame { min-height: 340px; }

    /* Tags wrap nicely already; reduce font size for density */
    .vfj-tag { font-size: 0.72rem; padding: 0.18rem 0.55rem; }
}

@media (max-width: 480px) {
    /* Even tighter on small phones */
    .container { padding-left: 1rem; padding-right: 1rem; }
    .site-header__inner { padding: 0.7rem 0.85rem; }
    .site-brand__text { font-size: 1.05rem; }
    .hero__title { font-size: clamp(1.85rem, 8vw, 2.4rem); }
    .vfj-doc__title { font-size: clamp(1.7rem, 7vw, 2.1rem); }
    .vfj-archive__title { font-size: clamp(1.6rem, 6.5vw, 2rem); }
    .vfj-blog-cta__half h3 { font-size: 1.2rem; }
}

/* ── Compact AI assist row under the description textarea ── */
.vfj-ai-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem 0.85rem;
    margin-top: 0.55rem;
}
.vfj-ai-row__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.5rem 0.95rem;
    border: 1px solid rgba(124, 58, 237, 0.32);
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.08) 0%, rgba(249, 115, 22, 0.08) 100%);
    border-radius: 999px;
    color: #4c1d95;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s, transform .08s, background .15s;
}
.vfj-ai-row__btn:hover:not(:disabled) {
    border-color: #7c3aed;
    box-shadow: 0 6px 16px -8px rgba(124, 58, 237, 0.45);
    transform: translateY(-1px);
}
.vfj-ai-row__btn:disabled { opacity: 0.7; cursor: progress; }
.vfj-ai-row__sparkle { font-size: 0.95rem; }
.vfj-ai-row__hint    { color: var(--vfj-fg-muted); font-size: 0.85rem; }
.vfj-ai-row__error   {
    margin: 0.6rem 0 0;
    padding: 0.55rem 0.8rem;
    border-radius: 8px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
    font-size: 0.88rem;
}
.vfj-ai-row__spinner {
    display: inline-block;
    width: 12px; height: 12px;
    border: 2px solid rgba(76, 29, 149, 0.25);
    border-top-color: #7c3aed;
    border-radius: 50%;
    animation: vfj-spin 0.7s linear infinite;
}

/* ── Field-fill flash animation ── */
@keyframes vfj-ai-flash {
    0%   { box-shadow: 0 0 0 0 rgba(124, 58, 237, 0); background-color: transparent; }
    25%  { box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.18); background-color: rgba(124, 58, 237, 0.06); }
    100% { box-shadow: 0 0 0 0 rgba(124, 58, 237, 0); background-color: transparent; }
}
.vfj-ai-flash { animation: vfj-ai-flash 1.1s ease-out; border-radius: 8px; }

/* ── Success toast after a "magic fill" ── */
.vfj-ai-toast {
    position: fixed;
    left: 50%;
    bottom: 1.5rem;
    transform: translate(-50%, 16px);
    opacity: 0;
    z-index: 1000;
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.85rem 1.15rem;
    background: #0f172a;
    color: #fff;
    border-radius: 999px;
    font-size: 0.95rem;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.35);
    transition: transform .25s ease, opacity .25s ease;
    max-width: calc(100% - 2rem);
}
.vfj-ai-toast--show { transform: translate(-50%, 0); opacity: 1; }
.vfj-ai-toast__icon { font-size: 1.05rem; }

/* ── AI assist button + dialog (job-edit form) ── */
.vfj-form__label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.4rem;
}
.vfj-form__label-row > label { margin-bottom: 0; }
.vfj-ai-assist__open {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.45rem 0.85rem;
    border: 1px solid rgba(124, 58, 237, 0.35);
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.08) 0%, rgba(249, 115, 22, 0.08) 100%);
    border-radius: 999px;
    color: #4c1d95;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s, transform .08s;
}
.vfj-ai-assist__open:hover {
    border-color: #7c3aed;
    box-shadow: 0 6px 16px -8px rgba(124, 58, 237, 0.45);
    transform: translateY(-1px);
}
.vfj-ai-assist__sparkle { font-size: 0.95rem; }

.vfj-ai-assist__dialog {
    border: 0;
    border-radius: 16px;
    padding: 0;
    width: min(560px, 92vw);
    box-shadow: 0 20px 60px rgba(15, 23, 42, 0.25);
    background: var(--vfj-bg, #fff);
}
.vfj-ai-assist__dialog::backdrop {
    background: rgba(15, 23, 42, 0.55);
    -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
}
.vfj-ai-assist__inner { padding: 1.5rem 1.5rem 1.25rem; }
.vfj-ai-assist__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}
.vfj-ai-assist__header h3 {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 1.25rem;
    margin: 0;
}
.vfj-ai-assist__close {
    border: 0;
    background: transparent;
    font-size: 1.4rem;
    line-height: 1;
    padding: 0.25rem 0.5rem;
    color: var(--vfj-fg-muted);
    cursor: pointer;
    border-radius: 8px;
}
.vfj-ai-assist__close:hover { background: var(--vfj-bg-soft); color: var(--vfj-fg); }
.vfj-ai-assist__lede { color: var(--vfj-fg-muted); font-size: 0.95rem; margin: 0 0 1rem; line-height: 1.5; }
.vfj-ai-assist__actions { display: flex; gap: 0.5rem; margin-top: 1rem; flex-wrap: wrap; }
.vfj-ai-assist__error {
    margin: 0.75rem 0 0;
    padding: 0.6rem 0.85rem;
    border-radius: 10px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
    font-size: 0.9rem;
}
.vfj-ai-assist__spinner {
    display: inline-block;
    width: 14px; height: 14px;
    border: 2px solid rgba(255,255,255,0.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: vfj-spin 0.7s linear infinite;
    margin-left: 0.4rem;
}
@keyframes vfj-spin { to { transform: rotate(360deg); } }

/* ── Public-shareable candidate profile (/p/{handle}/) ─────────── */
.vfj-public-profile { background: linear-gradient(180deg, #f7f7f9 0%, #fff 240px); padding: 2.5rem 0 5rem; }
.vfj-public-profile__inner { max-width: 760px; }
.vfj-public-profile__header {
    display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
    flex-wrap: wrap;
    background: #fff; padding: 1.6rem 1.75rem;
    border: 1px solid var(--vfj-border, #e5e7eb);
    border-left: 4px solid #2563eb;
    border-radius: 14px;
}
.vfj-public-profile__name-block h1 { font-family: 'Space Grotesk', system-ui, sans-serif; margin: 0 0 0.25rem; font-size: clamp(1.5rem, 3vw, 2rem); }
.vfj-public-profile__headline { color: var(--vfj-fg); font-size: 1.05rem; margin: 0 0 0.4rem; }
.vfj-public-profile__location { color: var(--vfj-fg-muted); margin: 0; font-size: 0.95rem; }
.vfj-public-profile__share { display: flex; gap: 0.4rem; flex-wrap: wrap; margin: 0; }

.vfj-public-profile__chips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 1.25rem 0; }

.vfj-public-profile__section {
    background: #fff;
    border: 1px solid var(--vfj-border, #e5e7eb);
    border-radius: 14px;
    padding: 1.4rem 1.6rem;
    margin-bottom: 1rem;
}
.vfj-public-profile__section h2 {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 1.15rem; margin: 0 0 0.8rem;
}
.vfj-public-profile__facts { display: grid; grid-template-columns: max-content 1fr; gap: 0.5rem 1rem; margin: 0; }
.vfj-public-profile__facts dt { font-weight: 600; color: var(--vfj-fg-muted); }
.vfj-public-profile__facts dd { margin: 0; }
.vfj-public-profile__chip-row { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; margin: 0 0 0.6rem; }
.vfj-public-profile__chip-row strong { color: var(--vfj-fg); font-size: 0.9rem; margin-right: 0.25rem; }

.vfj-public-profile__cta {
    margin-top: 1.5rem;
    padding: 1.5rem 1.75rem;
    border-radius: 14px;
    background: linear-gradient(135deg, #eff6ff 0%, #fef3c7 100%);
    border: 1px solid var(--vfj-border, #e5e7eb);
    text-align: center;
}
.vfj-public-profile__cta h3 { font-family: 'Space Grotesk', system-ui, sans-serif; margin: 0 0 0.4rem; }
.vfj-public-profile__cta p  { color: var(--vfj-fg-muted); margin: 0 0 0.85rem; }

/* ── Share panel on /dashboard/profile/ ─────────────────────────── */
.vfj-share-panel {
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.08) 0%, rgba(124, 58, 237, 0.08) 100%);
    border: 1px solid rgba(124, 58, 237, 0.2);
    border-radius: 14px;
    padding: 1.1rem 1.3rem;
    margin: 0 0 1.5rem;
}
.vfj-share-panel h3 { font-family: 'Space Grotesk', system-ui, sans-serif; font-size: 1.05rem; margin: 0 0 0.4rem; display: flex; align-items: center; gap: 0.4rem; }
.vfj-share-panel__url { margin: 0 0 0.6rem; font-family: ui-monospace, monospace; font-size: 0.95rem; word-break: break-all; }
.vfj-share-panel__url a { color: #2563eb; }
.vfj-share-panel__actions { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 0.5rem; }

/* ── Pricing-page additions: founding 100 + interval toggle + one-off ── */
.vfj-founding {
    margin: 2rem auto 1rem;
    max-width: 880px;
}
.vfj-founding__inner {
    background: linear-gradient(135deg, #fef3c7 0%, #fed7aa 50%, #fbcfe8 100%);
    border: 2px solid #f59e0b;
    border-radius: 16px;
    padding: 1.6rem 2rem;
    text-align: center;
    box-shadow: 0 12px 32px -16px rgba(245, 158, 11, 0.4);
}
.vfj-founding__eyebrow {
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #92400e;
    margin: 0 0 0.4rem;
}
.vfj-founding__title {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: clamp(1.5rem, 3vw, 2rem);
    color: #0f172a;
    margin: 0 0 0.6rem;
}
.vfj-founding__sub {
    color: #1e293b;
    margin: 0 0 1rem;
    font-size: 1rem;
}
.vfj-founding__price {
    display: block;
    margin-top: 0.5rem;
    font-size: 1.05rem;
}
.vfj-founding__price s { color: #94a3b8; }
.vfj-founding__price strong { color: #b45309; font-size: 1.25rem; }
.vfj-founding__cta { margin: 0; }

.vfj-pricing__interval-toggle {
    text-align: center;
    margin: 1.5rem auto 1rem;
}
.vfj-pricing__toggle {
    display: inline-flex;
    background: #f1f5f9;
    border-radius: 999px;
    padding: 0.25rem;
    gap: 0.25rem;
}
.vfj-pricing__toggle-opt {
    border: 0;
    background: transparent;
    padding: 0.55rem 1.4rem;
    border-radius: 999px;
    font-weight: 600;
    cursor: pointer;
    color: #64748b;
    font-size: 0.95rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}
.vfj-pricing__toggle-opt.is-active {
    background: #fff;
    color: #0f172a;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}
.vfj-pricing__toggle-savings {
    background: #dcfce7;
    color: #15803d;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
}
.vfj-pricing__annual-note {
    display: block;
    color: #15803d;
    font-size: 0.78rem;
    font-weight: 600;
    margin-top: 0.4rem;
}

.vfj-pricing__oneoff {
    padding: 3rem 0;
    border-top: 1px solid var(--vfj-border, #e5e7eb);
    margin-top: 2rem;
}
.vfj-pricing__oneoff-title { font-family: 'Space Grotesk', system-ui, sans-serif; text-align: center; font-size: clamp(1.4rem, 3vw, 1.9rem); margin: 0 0 0.4rem; }
.vfj-pricing__oneoff-lede  { text-align: center; color: var(--vfj-fg-muted, #64748b); margin: 0 0 1.8rem; }
.vfj-pricing__oneoff-grid  { display: grid; gap: 1.2rem; grid-template-columns: 1fr; }
@media (min-width: 720px) { .vfj-pricing__oneoff-grid { grid-template-columns: repeat(3, 1fr); } }
.vfj-pricing__oneoff-card  {
    background: #fff;
    border: 1px solid var(--vfj-border, #e5e7eb);
    border-radius: 14px;
    padding: 1.4rem 1.5rem;
    text-align: center;
}
.vfj-pricing__oneoff-icon  { font-size: 2rem; margin: 0 0 0.6rem; }
.vfj-pricing__oneoff-card h3 { font-family: 'Space Grotesk', system-ui, sans-serif; font-size: 1.05rem; margin: 0 0 0.4rem; }
.vfj-pricing__oneoff-price { font-size: 1.7rem; font-weight: 700; color: #2563eb; margin: 0 0 0.6rem; font-family: 'Space Grotesk', system-ui, sans-serif; }

/* ── Candidate browse (employer dashboard) ────────────────────── */
.vfj-candidate-filters {
    display: grid; gap: 0.75rem;
    padding: 1rem; margin-bottom: 1.25rem;
    background: var(--vfj-bg-soft, #f7f7f9);
    border: 1px solid var(--vfj-border, #e5e7eb);
    border-radius: 12px;
}
.vfj-candidate-filters__row { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.vfj-candidate-filters__row input[type=search],
.vfj-candidate-filters__row select { flex: 1 1 160px; padding: 0.5rem 0.6rem; border: 1px solid var(--vfj-border); border-radius: 8px; }
.vfj-candidate-filters__row--checks { align-items: center; font-size: 0.92rem; }
.vfj-candidate-filters__row--checks label { display: inline-flex; align-items: center; gap: 0.35rem; }

.vfj-candidate-meta { color: var(--vfj-fg-muted); font-size: 0.92rem; margin-bottom: 1rem; }

.vfj-candidate-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 720px) { .vfj-candidate-grid { grid-template-columns: 1fr 1fr; } }
.vfj-candidate-card {
    padding: 1.1rem 1.2rem;
    border: 1px solid var(--vfj-border, #e5e7eb);
    border-radius: 12px;
    background: #fff;
    display: grid; gap: 0.5rem;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.vfj-candidate-card:hover { border-color: #2563eb; box-shadow: 0 12px 28px -16px rgba(15, 23, 42, 0.18); }
.vfj-candidate-card.is-unlocked { border-left: 4px solid #10b981; }
.vfj-candidate-card h3 {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 1.05rem; margin: 0;
    display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap;
}
.vfj-candidate-card h3 a { color: var(--vfj-fg); text-decoration: none; }
.vfj-candidate-card h3 a:hover { color: #2563eb; }
.vfj-candidate-card__meta   { color: var(--vfj-fg-muted); font-size: 0.88rem; margin: 0; }
.vfj-candidate-card__skills { color: var(--vfj-fg); font-size: 0.92rem; line-height: 1.45; margin: 0; }
.vfj-candidate-card__tags   { display: flex; flex-wrap: wrap; gap: 0.3rem; margin: 0; }
.vfj-candidate-card__actions{ margin: 0; }

.vfj-candidate-detail { max-width: 760px; }
.vfj-candidate-detail__header { padding-bottom: 1rem; border-bottom: 1px solid var(--vfj-border); margin-bottom: 1rem; }
.vfj-candidate-detail__header h2 { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 0.4rem; font-family: 'Space Grotesk', system-ui, sans-serif; }
.vfj-candidate-detail__loc { color: var(--vfj-fg-muted); margin: 0 0 0.6rem; }
.vfj-candidate-detail__tags { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0; }
.vfj-candidate-detail__contact, .vfj-candidate-detail__details { padding: 1rem 1.15rem; border: 1px solid var(--vfj-border); border-radius: 12px; margin-top: 1rem; background: #fff; }
.vfj-candidate-detail__contact h3, .vfj-candidate-detail__details h3 { margin: 0 0 0.5rem; font-family: 'Space Grotesk', system-ui, sans-serif; font-size: 1rem; }
.vfj-candidate-detail dl { display: grid; grid-template-columns: max-content 1fr; gap: 0.4rem 1rem; margin: 0; }
.vfj-candidate-detail dt { font-weight: 600; color: var(--vfj-fg-muted); }
.vfj-candidate-detail dd { margin: 0; }
.vfj-candidate-detail__back { margin-top: 1.5rem; }

.vfj-candidate-gate { max-width: 580px; margin: 2rem auto; text-align: center; }
.vfj-candidate-gate h2 { font-family: 'Space Grotesk', system-ui, sans-serif; }

/* ── Save-search alert (top of /jobs/ when filters active) ───────── */
.vfj-save-alert {
    margin-bottom: 1.25rem;
    padding: 0.6rem 0.85rem;
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.06) 0%, rgba(124, 58, 237, 0.05) 100%);
    border: 1px solid rgba(124, 58, 237, 0.18);
    border-radius: 12px;
}
.vfj-save-alert summary {
    cursor: pointer;
    list-style: none;
    font-weight: 600;
    color: #4c1d95;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.vfj-save-alert summary::-webkit-details-marker { display: none; }
.vfj-save-alert summary::after { content: " ▾"; margin-left: auto; color: var(--vfj-fg-muted); }
.vfj-save-alert[open] summary::after { content: " ▴"; }
.vfj-save-alert__body { margin-top: 0.85rem; }

/* ── Alerts list (dashboard) ──────────────────────────────────── */
.vfj-alerts-list { display: grid; gap: 1rem; max-width: 720px; }
.vfj-alert-card {
    padding: 1.1rem 1.2rem;
    border: 1px solid var(--vfj-border, #e5e7eb);
    border-left: 4px solid #2563eb;
    border-radius: 12px;
    background: #fff;
}
.vfj-alert-card__header h3 {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 1.05rem;
    margin: 0 0 0.25rem;
}
.vfj-alert-card__filters { color: var(--vfj-fg-muted); font-size: 0.88rem; }
.vfj-alert-card__meta    { color: var(--vfj-fg-muted); font-size: 0.85rem; margin: 0.5rem 0; }
.vfj-alert-card__actions { display: flex; gap: 0.4rem; flex-wrap: wrap; }

/* ── Account settings page ─────────────────────────────────────── */
.vfj-account { display: grid; gap: 2rem; max-width: 720px; }
.vfj-account__section {
    padding: 1.4rem 1.5rem 1.5rem;
    border: 1px solid var(--vfj-border, #e5e7eb);
    border-radius: 14px;
    background: #fff;
}
.vfj-account__section h2 {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 1.2rem;
    margin: 0 0 0.6rem;
}
.vfj-account__section--danger { border-color: #fecaca; background: #fff7f7; }
.vfj-account__section--danger h2 { color: #991b1b; }
.vfj-account__current { color: var(--vfj-fg-muted); margin: 0 0 1rem; display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.vfj-checkbox-row { display: flex; align-items: center; gap: 0.5rem; margin: 0.35rem 0; font-size: 0.95rem; }
.btn--danger { background: #dc2626; color: #fff; border-color: #dc2626; }
.btn--danger:hover { background: #b91c1c; color: #fff; }

/* ── Pricing page ─────────────────────────────────────────────────── */
.vfj-pricing__hero {
    background: linear-gradient(135deg, #eef2ff 0%, #fef3c7 100%);
    border-bottom: 1px solid var(--vfj-border, #e5e7eb);
    padding: 3.5rem 0 2.25rem;
    margin-bottom: 2.5rem;
}
.vfj-pricing__eyebrow {
    color: #2563eb;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0 0 0.5rem;
}
.vfj-pricing__title {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: clamp(2rem, 4.5vw, 2.85rem);
    line-height: 1.15;
    margin: 0 0 0.85rem;
    max-width: 22ch;
}
.vfj-pricing__lede { color: var(--vfj-fg-muted, #64748b); font-size: 1.1rem; line-height: 1.55; max-width: 60ch; margin: 0 0 0.4rem; }
.vfj-pricing__lede--small { font-size: 0.92rem; }

.vfj-pricing__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    margin-bottom: 4rem;
}
@media (min-width: 720px) { .vfj-pricing__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .vfj-pricing__grid { grid-template-columns: repeat(4, 1fr); gap: 1rem; } }

.vfj-pricing__card {
    position: relative;
    border: 1px solid var(--vfj-border, #e5e7eb);
    border-radius: 18px;
    padding: 1.6rem 1.5rem 1.4rem;
    background: var(--card-bg, #fff);
    display: flex;
    flex-direction: column;
    gap: 1rem;
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.vfj-pricing__card:hover { transform: translateY(-2px); box-shadow: 0 18px 40px -16px rgba(15, 23, 42, 0.18); border-color: var(--card-accent, #94a3b8); }
.vfj-pricing__card.is-popular {
    border-color: #f97316;
    box-shadow: 0 12px 30px -8px rgba(249, 115, 22, 0.25);
}
.vfj-pricing__card.is-current {
    outline: 2px solid #2563eb;
    outline-offset: -2px;
}
.vfj-pricing__badge {
    position: absolute;
    top: -10px; left: 50%;
    transform: translateX(-50%);
    background: #f97316; color: #fff;
    padding: 0.2rem 0.7rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0;
    white-space: nowrap;
}
.vfj-pricing__badge--current { background: #2563eb; }

.vfj-pricing__name {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 1.3rem;
    margin: 0 0 0.25rem;
}
.vfj-pricing__price { margin: 0; }
.vfj-pricing__currency { font-size: 1.05rem; vertical-align: top; font-weight: 600; color: var(--vfj-fg-muted); }
.vfj-pricing__amount {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 2.4rem;
    font-weight: 700;
    color: var(--vfj-fg, #0f172a);
    line-height: 1;
}
.vfj-pricing__period { color: var(--vfj-fg-muted); font-size: 0.95rem; }

.vfj-pricing__features {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.5rem;
    font-size: 0.92rem;
    color: var(--vfj-fg);
    flex: 1;
}
.vfj-pricing__features li {
    padding-left: 1.4rem;
    position: relative;
    line-height: 1.45;
}
.vfj-pricing__features li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: #059669;
    font-weight: 700;
}
.vfj-pricing__features li.is-off {
    color: var(--vfj-fg-muted, #64748b);
    text-decoration: line-through;
}
.vfj-pricing__features li.is-off::before { content: "—"; color: var(--vfj-fg-muted); }

.vfj-pricing__cta { margin: 0; }
.vfj-pricing__cta .btn.is-disabled { opacity: 0.6; cursor: not-allowed; pointer-events: none; }

.vfj-pricing__faq { margin: 1rem 0 5rem; max-width: 720px; }
.vfj-pricing__faq h2 {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 1.5rem;
    margin: 0 0 1.25rem;
}
.vfj-pricing__faq details {
    border-bottom: 1px solid var(--vfj-border, #e5e7eb);
    padding: 0.85rem 0;
}
.vfj-pricing__faq summary {
    cursor: pointer;
    font-weight: 600;
    list-style: none;
    padding-right: 1.5rem;
    position: relative;
    color: var(--vfj-fg);
}
.vfj-pricing__faq summary::-webkit-details-marker { display: none; }
.vfj-pricing__faq summary::after {
    content: "+";
    position: absolute;
    right: 0;
    top: 0;
    color: var(--vfj-fg-muted);
    font-weight: 400;
    font-size: 1.3rem;
    line-height: 1;
}
.vfj-pricing__faq details[open] summary::after { content: "−"; }
.vfj-pricing__faq p { color: var(--vfj-fg-muted); line-height: 1.55; margin: 0.5rem 0 0; }

/* ── Applications dashboard ── */
.vfj-applications__crumbs { color: var(--vfj-fg-muted); margin: 0 0 0.85rem; font-size: 0.92rem; }
.vfj-applications__crumbs span { padding: 0 0.35rem; color: var(--vfj-fg-muted); }
.vfj-applications__crumbs strong { color: var(--vfj-fg); }

.vfj-applications__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    border-bottom: 1px solid var(--vfj-border, #e5e7eb);
    margin-bottom: 1.25rem;
    padding-bottom: 0.4rem;
}
.vfj-applications__tab {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 0.9rem;
    border-radius: 999px;
    color: var(--vfj-fg-muted, #64748b);
    background: transparent;
    font-size: 0.92rem;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background .15s, color .15s, border-color .15s;
}
.vfj-applications__tab:hover { background: #f1f5f9; color: var(--vfj-fg, #0f172a); text-decoration: none; }
.vfj-applications__tab.is-active {
    background: var(--vfj-fg, #0f172a);
    color: #fff;
    border-color: var(--vfj-fg, #0f172a);
}
.vfj-applications__tab-count {
    display: inline-block;
    min-width: 22px;
    text-align: center;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.06);
    font-size: 0.78rem;
    font-weight: 700;
    color: inherit;
}
.vfj-applications__tab.is-active .vfj-applications__tab-count { background: rgba(255,255,255,0.18); }

.vfj-applications__list { display: grid; gap: 0.85rem; }
.vfj-applicant {
    display: grid;
    gap: 0.75rem;
    padding: 1rem 1.15rem;
    border: 1px solid var(--vfj-border, #e5e7eb);
    border-radius: 14px;
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.vfj-applicant:hover { border-color: #cbd5e1; box-shadow: 0 8px 22px -16px rgba(15, 23, 42, 0.18); }
.vfj-applicant--hired      { border-left: 4px solid #10b981; }
.vfj-applicant--shortlisted{ border-left: 4px solid #2563eb; }
.vfj-applicant--rejected   { border-left: 4px solid #94a3b8; opacity: 0.85; }
.vfj-applicant--closed     { border-left: 4px solid #64748b; opacity: 0.85; }
.vfj-applicant__header { display: flex; justify-content: space-between; align-items: flex-start; gap: 0.75rem; }
.vfj-applicant__name { font-family: 'Space Grotesk', system-ui, sans-serif; font-size: 1.1rem; font-weight: 700; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.vfj-applicant__job  { color: var(--vfj-fg-muted); font-size: 0.92rem; margin: 0; display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }
.vfj-applicant__date { color: var(--vfj-fg-muted); font-size: 0.85rem; margin-left: auto; }
.vfj-applicant__cover { font-size: 0.93rem; color: var(--vfj-fg); }
.vfj-applicant__cover summary { cursor: pointer; font-weight: 600; color: var(--vfj-fg-muted); padding: 0.2rem 0; }
.vfj-applicant__cover[open] summary { color: var(--vfj-fg); }
.vfj-applicant__cover p { margin: 0.4rem 0 0; line-height: 1.5; }
.vfj-applicant__actions { display: flex; gap: 0.4rem; flex-wrap: wrap; align-items: center; }
.vfj-applicant__btn-shortlist { background: #fff; color: #1e40af; border-color: rgba(37, 99, 235, 0.3); }
.vfj-applicant__btn-shortlist:hover { background: #eff6ff; border-color: #2563eb; }
.vfj-applicant__btn-hire { background: #059669; color: #fff; box-shadow: 0 6px 14px -8px rgba(5, 150, 105, 0.5); }
.vfj-applicant__btn-hire:hover { background: #047857; color: #fff; }
.vfj-applicant__btn-reject { color: #6b7280; }

/* Status badge colours (extend existing palette) */
.vfj-badge--submitted   { background: #eff6ff; color: #1e3a8a; border-color: #bfdbfe; }
.vfj-badge--shortlisted { background: #eef2ff; color: #3730a3; border-color: #c7d2fe; }
.vfj-badge--hired       { background: #ecfdf5; color: #065f46; border-color: #a7f3d0; }
.vfj-badge--rejected    { background: #f1f5f9; color: #334155; border-color: #cbd5e1; }
.vfj-badge--closed      { background: #f8fafc; color: #475569; border-color: #e2e8f0; }

.vfj-link--strong { font-weight: 700; }

/* ── Job detail: employer block in the aside ── */
.vfj-job-detail__employer {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--vfj-border, #e5e7eb);
}
.vfj-job-detail__employer-title {
    font-family: 'Space Grotesk', system-ui, sans-serif;
    font-size: 0.95rem;
    margin: 0 0 0.45rem;
    color: var(--vfj-fg-muted, #64748b);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
}
.vfj-job-detail__employer-name { margin: 0 0 0.5rem; font-weight: 600; color: var(--vfj-fg, #0f172a); }
.vfj-job-detail__employer-name a { color: inherit; }
.vfj-job-detail__employer-link {
    display: inline-flex; align-items: center; gap: 0.3rem;
    color: #2563eb; font-weight: 600; font-size: 0.95rem;
}
.vfj-job-detail__employer-link:hover { color: #1e40af; text-decoration: underline; }

/* ── File upload (CV) ── */
.vfj-file-upload { display: grid; gap: 0.5rem; }
.vfj-file-upload__current {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.85rem;
    background: #f1f5f9;
    border: 1px solid var(--vfj-border, #e5e7eb);
    border-radius: 10px;
    font-size: 0.95rem;
    width: fit-content;
}
.vfj-file-upload__current a { color: #2563eb; font-weight: 600; }
.vfj-file-upload__size  { color: var(--vfj-fg-muted, #64748b); font-size: 0.85rem; }
.vfj-file-upload__remove { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.9rem; color: var(--vfj-fg-muted); }
.vfj-file-upload__replace-label { margin: 0.25rem 0 0; color: var(--vfj-fg-muted); font-size: 0.9rem; }
.vfj-file-upload input[type="file"] { font-size: 0.9rem; }

.vfj-link--gated { color: var(--vfj-fg-muted, #64748b); font-style: italic; cursor: not-allowed; }

/* Utility */
.site-main { min-height: 50vh; }

/* RTL — preliminary; refined when Arabic is added to launch set */
html[dir="rtl"] .site-header__inner { flex-direction: row-reverse; }
html[dir="rtl"] .hero__cta { flex-direction: row-reverse; }
