/* ── Lineup Block ─────────────────────────────────────────────────────────── */
.kdk-lineup__list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Section title + sort toggle row */
.kdk-lineup__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
}

/* Sort toggle (Reihenfolge / Alphabetisch) */
.kdk-lineup__sort-toggle {
    display: inline-flex;
    border: 2px solid var(--lineup-toggle-border, currentColor);
    border-radius: 999px;
    padding: 3px;
    gap: 2px;
}
.kdk-lineup__sort-btn {
    background: transparent;
    border: none;
    color: var(--lineup-toggle-text, inherit);
    font-family: "Gasoek One", sans-serif;
    font-weight: 400;
    font-size: var(--lineup-toggle-fs, var(--kdk-fs-body-m));
    padding: var(--lineup-toggle-pad, 0.35em 0.9em);
    border-radius: 999px;
    cursor: pointer;
    transition: background 150ms, color 150ms;
}

/* Toggle size variants — sets a custom font-size + padding on the buttons */
.kdk-lineup--toggle-sm { --lineup-toggle-fs: 0.75rem;  --lineup-toggle-pad: 0.25em 0.75em; }
.kdk-lineup--toggle-md { --lineup-toggle-fs: 0.9375rem;--lineup-toggle-pad: 0.35em 0.9em;  }
.kdk-lineup--toggle-lg { --lineup-toggle-fs: 1.125rem; --lineup-toggle-pad: 0.45em 1.1em;  }
.kdk-lineup--toggle-xl { --lineup-toggle-fs: 1.375rem; --lineup-toggle-pad: 0.55em 1.4em;  }
.kdk-lineup__sort-btn:hover { background: rgba(0,0,0,0.06); }
.kdk-lineup__sort-btn.is-active {
    background: var(--lineup-toggle-active-bg, currentColor);
    color: var(--lineup-toggle-active-text, #fff);
}

/* Per-artist logos (artist logo + sponsor logo) */
.kdk-lineup__artist-logos {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 0.75rem;
}
.kdk-lineup__artist-logo,
.kdk-lineup__sponsor-logo {
    max-height: 40px;
    width: auto;
    -o-object-fit: contain;
       object-fit: contain;
}

/* Partner / Sponsor logo sections */
.kdk-lineup__logos {
    margin-top: 4rem;
    padding-top: 3rem;
    border-top: 1px solid rgba(0,0,0,0.08);
}
.kdk-lineup__logos-title {
    font-size: var(--kdk-fs-m);
    font-weight: 400;
    margin: 0 0 2rem;
    text-align: center;
}
.kdk-lineup__logos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 2rem 3rem;
    align-items: center;
    justify-items: center;
}
.kdk-lineup__logo-item {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 180px;
    aspect-ratio: 3 / 2;
}
.kdk-lineup__logo-item img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    -o-object-fit: contain;
       object-fit: contain;
    display: block;
    filter: grayscale(1);
    opacity: 0.75;
    transition: filter 200ms, opacity 200ms;
}
.kdk-lineup__logo-item img:hover {
    filter: grayscale(0);
    opacity: 1;
}
@media (max-width: 640px) {
    .kdk-lineup__logos { margin-top: 2.5rem; padding-top: 2rem; }
    .kdk-lineup__logos-grid {
        grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
        gap: 1.25rem 1.5rem;
    }
}

/* Reihenfolge number on the left — absolutely positioned so it doesn't push the name */
.kdk-lineup__order-num {
    position: absolute;
    right: 100%;
    top: var(--lineup-name-pad, 0.6rem);
    font-family: "Gasoek One", sans-serif;
    font-weight: 400;
    font-size: var(--lineup-name-size, var(--kdk-fs-l));
    line-height: 1.05;
    margin-right: var(--lineup-label-gap, 0.3em);
    opacity: 0.35;
    white-space: nowrap;
    pointer-events: none;
}
[data-sort-mode="alpha"] .kdk-lineup__order-num { display: none; }

/* Letter label — absolutely positioned to the left of the name */
.kdk-lineup__letter {
    position: absolute;
    right: 100%;
    top: var(--lineup-name-pad, 0.6rem);
    font-family: "Gasoek One", sans-serif;
    font-weight: 400;
    font-size: var(--lineup-name-size, var(--kdk-fs-l));
    line-height: 1.05;
    margin-right: var(--lineup-label-gap, 0.3em);
    opacity: 0.5;
    white-space: nowrap;
    pointer-events: none;
    visibility: hidden;
}
[data-sort-mode="order"] .kdk-lineup__letter { display: none; }

.kdk-lineup__item {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: start;
    padding: 4rem 0;
    border-top: 1px solid rgba(0,0,0,0.08);
}
.kdk-lineup__item:last-child {
    border-bottom: 1px solid rgba(0,0,0,0.08);
}

/* Alternate: media on left for even rows */
.kdk-lineup--alternate .kdk-lineup__item:nth-child(even) {
    direction: rtl;
}
.kdk-lineup--alternate .kdk-lineup__item:nth-child(even) > * {
    direction: ltr;
}

/* ── Text side ───────────────────────────────────────────────────────────── */
.kdk-lineup__info {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.kdk-lineup__name {
    font-family: var(--wp--preset--font-family--display, inherit);
    font-weight: 400;
    font-size: var(--kdk-fs-s);
    line-height: 1.15;
    margin: 0;
}
.kdk-lineup__desc {
    font-size: 0.9375rem;
    line-height: 1.6;
    opacity: 0.75;
    margin: 0;
}
.kdk-lineup__details {
    list-style: none;
    padding: 0;
    margin: 0.5rem 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.75rem;
    font-size: 0.9375rem;
    line-height: 1.6;
}
.kdk-lineup__details li {
    padding: 0;
    opacity: 0.7;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}
.kdk-lineup__icon {
    width: 1.2em;
    height: 1.2em;
    flex-shrink: 0;
}
.kdk-lineup__details a {
    color: inherit;
    text-decoration: none;
    font-weight: 600;
    transition: opacity 150ms;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}
/* Only show arrow when there's no icon */
.kdk-lineup__details a:not(:has(.kdk-lineup__icon))::after { content: ' →'; }
.kdk-lineup__details a:hover { opacity: 0.5; }

/* Column layout for details */
.kdk-lineup--details-col .kdk-lineup__details {
    flex-direction: column;
    gap: 0.2rem;
}

/* ── Media side ──────────────────────────────────────────────────────────── */
.kdk-lineup__media {
    border-radius: 8px;
    overflow: hidden;
    background: transparent;
    aspect-ratio: 16 / 10;
    position: relative;
}
.kdk-lineup__media img {
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
       object-fit: contain;
    display: block;
}
/* Optional frame around media */
.kdk-lineup--framed .kdk-lineup__media {
    border: 1px solid rgba(0,0,0,0.12);
    padding: 0.75rem;
    box-sizing: border-box;
}
.kdk-lineup--framed .kdk-lineup__media iframe,
.kdk-lineup--framed .kdk-lineup__media video {
    inset: 0.75rem;
    width: calc(100% - 1.5rem);
    height: calc(100% - 1.5rem);
}
.kdk-lineup__media iframe,
.kdk-lineup__media video {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    border: 0;
}

/* ── Names-only view ─────────────────────────────────────────────────────── */
.kdk-lineup--names {
    background-color: var(--lineup-bg, transparent);
    color: var(--lineup-text, inherit);
}
.kdk-lineup__names-list {
    display: flex;
    flex-direction: column;
}
.kdk-lineup__names-border { display: none; }
.kdk-lineup__names-item {
    position: relative;
    border-top: 1px solid var(--lineup-line, currentColor);
}
.kdk-lineup--names:not([style*="--lineup-line"]) .kdk-lineup__names-item {
    border-color: rgba(0, 0, 0, 0.15);
}
/* Bottom border on last item */
.kdk-lineup__names-item:last-child {
    border-bottom: 1px solid var(--lineup-line, currentColor);
}
.kdk-lineup--names:not([style*="--lineup-line"]) .kdk-lineup__names-item:last-child {
    border-color: rgba(0, 0, 0, 0.15);
}
.kdk-lineup__names-trigger {
    position: relative;
    display: block;
    width: 100%;
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--lineup-name-pad, 0.5rem) 0;
    text-align: left;
    color: inherit;
    transition: opacity 150ms;
}
.kdk-lineup__names-trigger:hover { opacity: 0.6; }
.kdk-lineup__names-name {
    font-family: "Gasoek One", sans-serif;
    font-weight: 400;
    font-size: var(--lineup-name-size, var(--kdk-fs-l));
    line-height: 1.05;
    display: block;
}
/* When expanded, shrink the name */
.kdk-lineup__names-item.is-open .kdk-lineup__names-name {
    font-size: var(--kdk-fs-s);
    margin-bottom: 0.5rem;
}
.kdk-lineup__names-detail {
    overflow: hidden;
}
.kdk-lineup__names-detail[hidden] { display: none; }
.kdk-lineup__names-detail:not([hidden]) {
    padding-bottom: 2rem;
    animation: kdk-slide-down 200ms ease;
}
.kdk-lineup__names-detail-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: start;
}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
    .kdk-lineup__item {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    .kdk-lineup--alternate .kdk-lineup__item:nth-child(even) {
        direction: ltr;
    }
    .kdk-lineup__media {
        order: -1;
    }
    .kdk-lineup__names-detail-inner {
        grid-template-columns: 1fr;
    }
    /* Stack number/letter above the name on mobile */
    .kdk-lineup__order-num,
    .kdk-lineup__letter {
        position: static;
        display: block;
        font-size: clamp(1rem, 4vw, 1.5rem);
        margin: 0 0 0.25rem;
        line-height: 1;
    }
}

