/* ==========================================================================
   CMS-pflegbare Bereiche — Referenzen, Downloads, Stellen-Eckdaten
   ========================================================================== */

/* ---------- Referenzen-Grid ---------- */
.referenzen-grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: var(--space-4);
}
.referenz-card {
    background: #fff;
    border: 1px solid var(--color-border);
    transition: border-color var(--transition), transform var(--transition);
}
.referenz-card:hover {
    border-color: var(--color-sky);
    transform: translateY(-2px);
}
.referenz-card__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 2 / 1;
    padding: 0.75rem 1rem;
    text-decoration: none;
}
.referenz-card__inner img {
    /* Einheitliche Ziel-Höhe von 80px; sehr breite Banner-Logos
       werden von max-width auf die Innenbreite der Karte zurückgeschnitten. */
    max-height: 80px;
    max-width: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.75;
    transition: filter var(--transition), opacity var(--transition);
}
.referenz-card:hover img,
.referenz-card__inner:focus-visible img {
    filter: grayscale(0%);
    opacity: 1;
}
.referenz-card__name {
    color: var(--color-navy);
    font-weight: 600;
    text-align: center;
    word-break: break-word;
}

/* ---------- Downloads-Liste ---------- */
.downloads-group + .downloads-group {
    margin-top: var(--space-7);
}
.downloads-group__title {
    margin-bottom: var(--space-4);
    color: var(--color-navy);
    font-size: 1.5rem;
}
.downloads-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: var(--space-3);
}
.download-item {
    display: grid;
    grid-template-columns: 56px 1fr auto;
    gap: var(--space-4);
    align-items: center;
    padding: var(--space-4) var(--space-5);
    background: #fff;
    border: 1px solid var(--color-border);
    transition: border-color var(--transition), box-shadow var(--transition);
}
.download-item:hover {
    border-color: var(--color-sky);
    box-shadow: var(--shadow-sm);
}
.download-item__icon {
    position: relative;
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    background: var(--color-bg-alt);
    color: var(--color-navy);
    border-radius: 4px;
}
.download-item__ext {
    position: absolute;
    bottom: 4px;
    left: 0;
    right: 0;
    text-align: center;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: var(--color-primary);
}
.download-item__title {
    margin: 0 0 0.3em;
    font-size: 1.05rem;
    color: var(--color-navy);
    line-height: 1.3;
}
.download-item__desc {
    color: var(--color-text-muted);
    font-size: 0.9rem;
    line-height: 1.45;
}
.download-item__desc p:last-child { margin-bottom: 0; }
.download-item__meta {
    margin: 0.4rem 0 0;
    font-size: 0.8rem;
    color: var(--color-text-subtle);
}
.download-item__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1.1rem;
    background: var(--color-primary);
    color: #fff;
    text-transform: uppercase;
    font-weight: 600;
    font-size: 0.8rem;
    letter-spacing: 0.04em;
    text-decoration: none;
    transition: background var(--transition);
}
.download-item__btn:hover {
    background: #c00d20;
    color: #fff;
}

@media (max-width: 600px) {
    .download-item {
        grid-template-columns: 40px 1fr;
        grid-template-areas:
            "icon body"
            "btn  btn";
        gap: var(--space-3);
    }
    .download-item__icon { grid-area: icon; width: 40px; height: 40px; }
    .download-item__body { grid-area: body; }
    .download-item__btn  { grid-area: btn; justify-self: stretch; justify-content: center; }
}

/* ---------- Stellen-Eckdaten (CPT-Single) ---------- */
.job-eckdaten {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--space-6);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3) var(--space-5);
    padding-bottom: var(--space-5);
    border-bottom: 1px solid var(--color-border);
}
.job-eckdaten li {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--color-text-muted);
    font-size: 0.95rem;
}
.job-eckdaten svg {
    color: var(--color-primary);
    flex-shrink: 0;
}

/* ---------- Bewerbungs-Footer auf CPT-basierten Stellen (kompakter Aside-Block) ---------- */
.job-apply-cms {
    margin-top: var(--space-7);
    padding: var(--space-6) var(--space-7);
    background: var(--color-bg-alt);
    border-left: 4px solid var(--color-primary);
}
.job-apply-cms__title {
    margin: 0 0 var(--space-3);
    color: var(--color-navy);
    font-size: 1.5rem;
}
.job-apply-cms__text {
    color: var(--color-text-muted);
    line-height: 1.55;
    margin: 0 0 var(--space-4);
}
.job-apply-cms__contacts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    margin-bottom: var(--space-5);
}
.job-apply-cms__contact {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--color-navy);
    font-weight: 600;
    text-decoration: none;
    transition: color var(--transition);
}
.job-apply-cms__contact:hover {
    color: var(--color-primary);
}
.job-apply-cms__contact svg {
    color: var(--color-primary);
}
