/* ============================================================
   Softgarden Job-Teasers – Forst Technologie
   Einbinden im Weblication-Layout unter <head>:
   <link rel="stylesheet" href="/wLayout25/wGlobal/scripts/php/jobs-softgarden/jobs.css">
   ============================================================ */

/* ─── CSS-Variablen ──────────────────────────────────────────────────────── */
:root {
    --jobs-color-primary:  #0057b5;   /* ← Forst Primärfarbe anpassen */
    --jobs-color-meta:     #6c757d;
    --jobs-color-bg:       #f5f5f5;
    --jobs-color-card-bg:  #ffffff;
    --jobs-color-border:   #e0e0e0;
    --jobs-color-text:     #333333;
    --jobs-radius:         6px;
    --jobs-shadow:         0 2px 8px rgba(0, 0, 0, 0.10);
    --jobs-shadow-hover:   0 6px 20px rgba(0, 0, 0, 0.16);
    --jobs-gap:            24px;
}

/* ─── Filter-Leiste ──────────────────────────────────────────────────────── */

/* Einheitliche Höhe für Select & Button */
:root { --jobs-ctrl-h: 42px; }

.jobs-filter {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* gleiche Spaltenbreiten wie Teaser-Grid */
    gap: var(--jobs-gap);
    align-items: end;
    margin-bottom: 32px;
}

.jobs-filter__group {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0; /* verhindert Overflow im Grid */
}

.jobs-filter__label {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--jobs-color-meta);
    line-height: 1;
}

/* Select & Button teilen sich exakt dieselbe Höhe + box-sizing */
.jobs-filter__select,
.jobs-filter__btn {
    height: var(--jobs-ctrl-h);
    box-sizing: border-box;
    font-size: 14px;
    font-family: inherit;
    border-radius: var(--jobs-radius);
    outline: none;
}

.jobs-filter__select {
    appearance: none;
    -webkit-appearance: none;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236c757d' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center;
    border: 1px solid var(--jobs-color-border);
    padding: 0 38px 0 12px;
    color: var(--jobs-color-text);
    cursor: pointer;
    width: 100%;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.jobs-filter__select:focus {
    border-color: var(--jobs-color-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--jobs-color-primary) 15%, transparent);
}

.jobs-filter__actions {
    display: flex;
    gap: 8px;
    align-items: flex-end;
}

.jobs-filter__btn {
    padding: 0 22px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    text-decoration: none;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
    letter-spacing: 0.01em;
}

.jobs-filter__btn--reset {
    background: transparent;
    color: var(--jobs-color-meta);
    border-color: var(--jobs-color-border);
}

.jobs-filter__btn--reset:hover {
    background: var(--jobs-color-bg);
    color: var(--jobs-color-text);
    border-color: #c0c0c0;
}

/* ─── Ergebnis-Info ──────────────────────────────────────────────────────── */
.jobs-result-info {
    font-size: 13px;
    color: var(--jobs-color-meta);
    margin-bottom: 20px;
}

/* ─── Grid ───────────────────────────────────────────────────────────────── */
.jobs-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--jobs-gap);
}

@media (max-width: 900px) {
    .jobs-grid   { grid-template-columns: repeat(2, 1fr); }
    .jobs-filter { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 580px) {
    .jobs-grid   { grid-template-columns: 1fr; }
    .jobs-filter { grid-template-columns: 1fr; }
}

/* ─── Teaser-Card ────────────────────────────────────────────────────────── */
.jobs-card {
    background: var(--jobs-color-card-bg);
    border: 1px solid var(--jobs-color-border);
    border-radius: var(--jobs-radius);
    overflow: hidden;
    box-shadow: var(--jobs-shadow);
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.25s, transform 0.25s;
    text-decoration: none;
    color: inherit;
}

.jobs-card:hover {
    box-shadow: var(--jobs-shadow-hover);
    transform: translateY(-3px);
}

.jobs-card__image {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
    background: var(--jobs-color-bg);
}

/* Card ohne Bild: dezenter Platzhalter-Streifen oben */
.jobs-card:not(:has(.jobs-card__image)) {
    border-top: 4px solid var(--jobs-color-primary);
}

.jobs-card__body {
    padding: 16px 18px 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.jobs-card__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 16px;
    color: var(--jobs-color-meta);
    font-weight: 300;
}

.jobs-card__title {
    font-size: 18px;
    font-weight: 700;
    color: var(--jobs-color-primary);
    line-height: 1.3;
    margin: 0;
}

.jobs-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: auto;
    padding-top: 8px;
}

.jobs-card__tag {
    font-size: 12px;
    padding: 3px 8px;
    border-radius: 3px;
    background: var(--jobs-color-primary);
    color: var(--jobs-color-card-bg);
    white-space: nowrap;
}

/* ─── Leer-Zustand ───────────────────────────────────────────────────────── */
.jobs-empty {
    grid-column: 1 / -1;
    text-align: center;
    padding: 60px 20px;
    color: var(--jobs-color-meta);
}

.jobs-empty__title {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 8px;
    color: var(--jobs-color-text);
}

/* ─── Fehlermeldung ──────────────────────────────────────────────────────── */
.jobs-error {
    background: #fff3f3;
    border: 1px solid #f5c6cb;
    color: #721c24;
    padding: 16px 20px;
    border-radius: var(--jobs-radius);
    font-size: 14px;
}

/* ─── Cache-Zeitstempel ──────────────────────────────────────────────────── */
.jobs-cache-info {
    font-size: 11px;
    color: #bbb;
    text-align: right;
}
