/* ══════════════════════════════════════════════════════════════════════════
   splent_feature_editions — programme by day, edition cards, edition pages.
   Token-driven: every colour/radius comes from the theme's --brand-* custom
   properties, so a skin restyles it for free. Loaded via register_asset on top
   of the theme's public.css and events.css. No inline styles, no CDN.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Programme: one block per day, a list of timed slots ────────────────── */
.programme {
    display: grid;
    gap: 2.5rem;
}

.programme__day-title {
    font-size: 1.15rem;
    margin: 0 0 1rem;
    padding-bottom: .5rem;
    border-bottom: 2px solid var(--brand-primary, #2563eb);
    color: var(--brand-heading, #111827);
}

.programme__slots {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .75rem;
}

.programme__slot {
    display: grid;
    grid-template-columns: 7.5rem 1fr;
    gap: 1rem;
    align-items: start;
    padding: .9rem 1rem;
    border: 1px solid var(--brand-border, rgba(0, 0, 0, .1));
    border-radius: var(--brand-radius, 12px);
    background: var(--brand-surface, transparent);
}

.programme__time {
    font-family: var(--brand-font-display, inherit);
    font-weight: 700;
    color: var(--brand-primary, #2563eb);
    white-space: nowrap;
}

.programme__body {
    min-width: 0;
}

.programme__title {
    display: inline-block;
    font-weight: 600;
    color: var(--brand-heading, #111827);
    text-decoration: none;
}

.programme__title:hover {
    color: var(--brand-primary, #2563eb);
}

.programme__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .75rem;
    margin-top: .35rem;
    font-size: .85rem;
    color: var(--brand-muted, #6b7280);
}

.programme__summary {
    margin: .5rem 0 0;
    color: var(--brand-muted, #6b7280);
}

.programme__empty,
.programme__hint {
    color: var(--brand-muted, #6b7280);
}

.programme__archive {
    margin-top: 2rem;
}

@media (max-width: 600px) {
    .programme__slot {
        grid-template-columns: 1fr;
        gap: .35rem;
    }
}

/* ── Archive cards ──────────────────────────────────────────────────────── */
.edition-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1.25rem;
}

.edition-card--current {
    border-color: var(--brand-primary, #2563eb);
}

/* ── Edition page and the event's edition line ──────────────────────────── */
.edition-detail {
    max-width: 72ch;
    margin-inline: auto;
}

.edition-detail__image {
    display: block;
    max-width: 100%;
    border-radius: var(--brand-radius, 12px);
    margin: 0 0 1.5rem;
}

/* Any image inside the edition's own copy is capped and centred, so an
   inline poster or logo cannot blow out to the full column width. */
.edition-detail .prose img {
    display: block;
    max-width: min(100%, 460px);
    height: auto;
    margin: 1.5rem auto;
    border-radius: var(--brand-radius, 12px);
}
.edition-detail .prose figure {
    margin: 1.5rem 0;
}

.edition-detail__back {
    margin-top: 2rem;
}

.event-detail__edition {
    margin: 0 0 1rem;
    font-size: .9rem;
    color: var(--brand-muted, #6b7280);
}

.event-detail__edition a {
    font-weight: 600;
    color: var(--brand-primary, #2563eb);
    text-decoration: none;
}

/* ── Edition switcher: jump between programmes ──────────────────────────── */
.edition-switcher {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin: 0 0 2rem;
}

.edition-switcher__label {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--brand-muted, #6b7280);
    margin-right: .25rem;
}

.edition-switcher__item {
    display: inline-block;
    padding: .35rem .85rem;
    border: 1px solid var(--brand-border, rgba(0, 0, 0, .12));
    border-radius: 999px;
    font-size: .9rem;
    font-weight: 600;
    color: var(--brand-heading, #111827);
    text-decoration: none;
    background: var(--brand-surface, transparent);
}

.edition-switcher__item:hover {
    border-color: var(--brand-primary, #2563eb);
    color: var(--brand-primary, #2563eb);
}

.edition-switcher__item.is-current {
    background: var(--brand-primary, #2563eb);
    border-color: var(--brand-primary, #2563eb);
    color: var(--brand-primary-contrast, #fff);
}

/* ── Edition news list ──────────────────────────────────────────────────── */
.edition-news { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: .5rem; }
.edition-news__item {
    display: flex; justify-content: space-between; gap: 1rem; align-items: baseline;
    padding: .6rem .25rem; border-bottom: 1px solid var(--brand-border, rgba(0,0,0,.08));
}
.edition-news__link { font-weight: 600; color: var(--brand-heading, inherit); text-decoration: none; }
.edition-news__link:hover { color: var(--brand-primary, #2563eb); }
.edition-news__date { color: var(--brand-muted, #6b7280); font-size: .85rem; white-space: nowrap; }

/* ── Edition hub: in-page section nav ───────────────────────────────────── */
.edition-nav {
    display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 2rem;
    position: sticky; top: var(--site-header-offset, 88px); z-index: 10;
    padding: .5rem 0; background: var(--brand-bg, #fff);
}
.edition-nav__item {
    padding: .35rem .9rem; border-radius: 999px; font-size: .9rem; font-weight: 600;
    color: var(--brand-heading, inherit); background: var(--brand-surface, transparent);
    border: 1px solid var(--brand-border, rgba(0,0,0,.12)); text-decoration: none;
}
.edition-nav__item:hover { border-color: var(--brand-primary, #2563eb); color: var(--brand-primary, #2563eb); }
.section-title[id] { scroll-margin-top: calc(var(--site-header-offset, 88px) + 3.5rem); }

/* ── Speakers of an edition ─────────────────────────────────────────────── */
.edition-speakers {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 1rem;
    margin: 0 0 1rem;
}
.edition-speaker {
    display: flex; flex-direction: column; align-items: center; text-align: center; gap: .5rem;
    padding: 1rem .5rem; border: 1px solid var(--brand-border, rgba(0,0,0,.1));
    border-radius: var(--brand-radius, 12px); text-decoration: none; color: inherit;
    background: var(--brand-surface, transparent);
}
.edition-speaker:not(.edition-speaker--plain):hover { border-color: var(--brand-primary, #2563eb); }
.edition-speaker__photo {
    width: 72px; height: 72px; border-radius: 999px; object-fit: cover;
    display: flex; align-items: center; justify-content: center;
}
.edition-speaker__photo--none {
    background: var(--brand-primary, #2563eb); color: var(--brand-primary-contrast, #fff);
    font-weight: 700; font-size: 1.5rem;
}
.edition-speaker__name { font-weight: 600; color: var(--brand-heading, inherit); }
.edition-speaker__aff { font-size: .82rem; color: var(--brand-muted, #6b7280); }

/* ── Posters (carteles): portrait tiles ─────────────────────────────────── */
.poster-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .75rem;
    margin: 0 0 1rem;
}
.poster-grid__item {
    display: block; overflow: hidden; border-radius: var(--brand-radius, 8px);
    border: 1px solid var(--brand-border, rgba(0,0,0,.12)); background: var(--brand-surface, #f6f6f6);
}
.poster-grid__item img { width: 100%; height: auto; display: block; transition: transform .35s ease; }
.poster-grid__item:hover img { transform: scale(1.04); }

/* ── Sponsors of an edition ─────────────────────────────────────────────── */
.edition-sponsors {
    display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; margin: 0 0 1.5rem;
}
.edition-sponsor {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 72px; max-width: 240px; text-decoration: none;
}
.edition-sponsor__logo { max-height: 72px; max-width: 100%; object-fit: contain; }
.edition-sponsor--wordmark {
    padding: .6rem 1.15rem; min-height: 64px; max-width: 260px;
    border: 1px solid var(--brand-border, rgba(0,0,0,.14)); border-radius: var(--brand-radius, 10px);
    background: var(--brand-surface, #fff); text-align: center;
}
/* Sponsor names ride the body font, never the pixel display face, and wrap
   inside the chip: a long name like "Creative Commons Espana / SPARC Europe"
   must stay within its pill instead of spilling over its neighbours. */
.edition-sponsor__name {
    font-family: var(--brand-font-body, system-ui, sans-serif); font-weight: 600;
    color: var(--brand-heading, inherit); white-space: normal;
    overflow-wrap: break-word; line-height: 1.25; font-size: .9rem;
}
