/* APSAIDAL Events v6 — visual refinement against approved Event Pages reference. */

.aps-event-shell {
    --aps-event-brand-burgundy: #6F1822;
    --aps-event-brand-pink: #F26071;
}

/* Editorial families keep the asymmetric title / standfirst composition. */
.aps-event-identity--editorial .aps-event-standfirst {
    align-self: end;
}

/* Compact families (Festival, Competition, Award, Open Call, Workshop,
 * Lecture and Webinar) read vertically, like the approved compact references. */
.aps-event-identity--compact {
    grid-template-columns: minmax(0, 1fr);
    column-gap: 0;
    max-width: 900px;
}
.aps-event-identity--compact .aps-event-kicker,
.aps-event-identity--compact h1,
.aps-event-identity--compact .aps-event-primary-meta,
.aps-event-identity--compact .aps-event-deadline,
.aps-event-identity--compact .aps-event-standfirst {
    grid-column: 1;
}
.aps-event-identity--compact .aps-event-standfirst {
    grid-row: auto;
    max-width: 720px;
    margin-top: 10px;
}
.aps-event-identity--compact .aps-event-deadline {
    margin-top: 10px;
}

/* Sidebar hierarchy: CTA first, Event Data second, calendar last. */
.aps-event-main-sidebar {
    top: 88px;
}
.aps-event-sidebar-primary {
    margin: -20px -20px 18px;
    padding: 0 20px 17px;
}
.aps-event-sidebar-primary .aps-event-cta {
    width: auto;
    min-width: 148px;
    justify-content: space-between;
}
.aps-event-data {
    border-top: 1px solid var(--aps-event-line);
    background: #f5f6f5;
}
.aps-event-data h2 {
    margin-bottom: 10px;
    font-family: "Brandon Grotesque", "Helvetica Neue", Arial, sans-serif;
    font-size: 16px;
    font-weight: 500;
}
.aps-event-data dl > div {
    grid-template-columns: minmax(76px, .78fr) minmax(0, 1.45fr);
    gap: 15px;
    padding: 7px 0;
}
.aps-event-data dt {
    font-size: 10px;
    line-height: 1.35;
}
.aps-event-data dd {
    font-size: 11px;
    line-height: 1.42;
}
.aps-event-calendar-actions {
    margin-top: 17px;
    padding-top: 14px;
}
.aps-event-calendar-actions .aps-event-calendar {
    gap: 6px;
    padding: 5px 0;
    color: var(--aps-event-ink);
}
.aps-event-calendar-actions .aps-event-calendar:hover,
.aps-event-calendar-actions .aps-event-calendar:focus-visible {
    color: var(--aps-event-brand-burgundy) !important;
}

/* Tabs: one active underline only; theme colours never leak through. */
.aps-event-tabs a:first-child::after {
    content: none;
}
.aps-event-tabs a.is-active::after,
.aps-event-tabs a:hover::after,
.aps-event-tabs a:focus-visible::after {
    content: "";
    background: var(--aps-event-brand-burgundy) !important;
}
.aps-event-tabs a:hover,
.aps-event-tabs a:focus-visible,
.aps-event-tabs a.is-active {
    color: var(--aps-event-brand-burgundy) !important;
}

/* The compact key visual behaves like artwork/poster, not a forced photo crop. */
.aps-event-identity--compact + .aps-event-shell--main .aps-event-hero-role--key_visual,
.aps-event-hero--compact.aps-event-hero-role--key_visual {
    min-height: 340px;
    padding: clamp(22px, 3.5vw, 42px);
}
.aps-event-hero--compact.aps-event-hero-role--key_visual img {
    max-height: 500px;
}

/* Editorial image families keep a photographic horizontal rhythm. */
.aps-event-hero--editorial {
    background: #eef0ef;
}
.aps-event-hero--editorial img {
    aspect-ratio: 16 / 9;
}

/* Cleaner reading rhythm and section hierarchy. */
.aps-event-main-block--overview,
.aps-event-main-block--programme,
.aps-event-main-block--participants,
.aps-event-main-block--gallery,
.aps-event-main-block--location {
    padding-top: 30px;
    padding-bottom: 30px;
}
.aps-event-panel h2,
.aps-event-gallery h2,
.aps-event-location h2,
.aps-event-participant-group h2,
.aps-event-related h2 {
    margin-bottom: 12px;
}
.aps-event-copy {
    max-width: 690px;
}

/* Participant cards vary by role without changing the shared system. */
.aps-event-participant-group--speaker .aps-event-people,
.aps-event-participant-group--jury .aps-event-people,
.aps-event-participant-group--tutor .aps-event-people,
.aps-event-participant-group--artist .aps-event-people {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.aps-event-participant-group--exhibitor .aps-event-people,
.aps-event-participant-group--partner .aps-event-people,
.aps-event-participant-group--organizer .aps-event-people {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Subtle branded hover treatment; no inherited blue/green/magenta. */
.aps-event-card a:hover span,
.aps-event-card a:focus-visible span,
.aps-event-person a:hover span,
.aps-event-person a:focus-visible span,
.aps-event-data a:hover,
.aps-event-data a:focus-visible,
.aps-event-map-link:hover,
.aps-event-map-link:focus-visible,
.aps-event-read-more:hover,
.aps-event-read-more:focus-visible {
    color: var(--aps-event-brand-burgundy) !important;
}
.aps-event-sidebar-primary .aps-event-cta:hover,
.aps-event-sidebar-primary .aps-event-cta:focus-visible {
    background: var(--aps-event-brand-pink) !important;
    border-color: var(--aps-event-brand-pink) !important;
    color: #fff !important;
}

@media (max-width: 1024px) {
    .aps-event-main-sidebar { top: auto; }
    .aps-event-sidebar-primary {
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
        background: transparent;
    }
    .aps-event-participant-group--exhibitor .aps-event-people,
    .aps-event-participant-group--partner .aps-event-people,
    .aps-event-participant-group--organizer .aps-event-people {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .aps-event-identity--compact { max-width: none; }
    .aps-event-identity--compact .aps-event-standfirst { margin-top: 6px; }
    .aps-event-sidebar-primary {
        margin: -17px -17px 16px;
        padding: 0 17px 14px;
    }
    .aps-event-sidebar-primary .aps-event-cta { width: 100%; }
    .aps-event-participant-group--speaker .aps-event-people,
    .aps-event-participant-group--jury .aps-event-people,
    .aps-event-participant-group--tutor .aps-event-people,
    .aps-event-participant-group--artist .aps-event-people,
    .aps-event-participant-group--exhibitor .aps-event-people,
    .aps-event-participant-group--partner .aps-event-people,
    .aps-event-participant-group--organizer .aps-event-people {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
