/* Agenda archive — overgenomen uit
   ClaudeDesignReference/design/Agenda.html (inline <style>). */

/* ─── Intro ────────────────────────── */
.ag-intro {
    padding: 56px 0 48px;
    position: relative;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 64px;
    align-items: end;
}

.ag-intro h1 {
    font-family: var(--display);
    font-size: var(--font-size-hero);
    line-height: 0.95;
    margin: 12px 0 18px;
    letter-spacing: -0.025em;
    text-wrap: balance;
}

.ag-intro h1 em { color: var(--plum); }

.ag-intro p.lead {
    font-size: 19px;
    line-height: 1.6;
    color: var(--ink-soft);
    max-width: 52ch;
    margin: 0 0 18px;
    text-wrap: pretty;
}

.ag-intro .scribble-note {
    font-family: var(--hand);
    font-size: 44px;
    color: var(--plum);
    transform: rotate(-2deg);
    display: inline-block;
    margin-top: 8px;
}

/* Summary card ──────────────────── */
.summary-card {
    background: var(--paper);
    border: 1.5px solid var(--rule);
    border-radius: 10px;
    padding: 28px 32px;
    position: relative;
    box-shadow: 5px 7px 0 rgba(26, 26, 26, 0.06);
}

.summary-card::before {
    content: '';
    position: absolute;
    top: -10px;
    right: 30px;
    width: 70px;
    height: 22px;
    background: rgba(233, 211, 106, 0.7);
    transform: rotate(3deg);
}

.summary-card h3 {
    font-family: var(--hand);
    font-weight: normal;
    font-size: 44px;
    margin: 6px 0 18px;
    color: var(--plum);
    transform: rotate(-1deg);
    display: inline-block;
}

.summary-card .grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.summary-card .stat .n {
    font-family: var(--display);
    font-style: italic;
    font-size: 40px;
    line-height: 1;
}

.summary-card .stat:nth-child(1) .n { color: var(--terracotta); }
.summary-card .stat:nth-child(2) .n { color: var(--plum); }
.summary-card .stat:nth-child(3) .n { color: var(--ochre); }

.summary-card .stat .l {
    font-family: var(--serif);
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ink-mute);
    margin-top: 6px;
}

.summary-card .ical {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--rule);
    display: flex;
    gap: 16px;
    align-items: center;
    font-family: var(--serif);
    font-style: italic;
    font-size: 13px;
    color: var(--ink-mute);
}

.summary-card .ical a {
    color: var(--ink);
    text-decoration: none;
    border-bottom: 1px solid var(--rule);
    padding-bottom: 1px;
}

.summary-card .ical a:hover {
    color: var(--terracotta);
    border-color: var(--terracotta);
}

/* ─── Filter ───────────────────────── */
.chip-btn {
    font-family: var(--serif);
    font-size: 14px;
    padding: 6px 14px;
    border-radius: 999px;
    background: transparent;
    border: 1.5px solid var(--rule);
    color: var(--ink-soft);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all 0.15s;
}

.chip-btn:hover { background: var(--bg-2); }

.chip-btn.active {
    background: var(--ink);
    color: var(--paper);
    border-color: var(--ink);
}

/* ─── Month section ─────────────────── */
.month { margin-top: 64px; }

.month-head {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 32px;
    align-items: end;
    padding-bottom: 16px;
    border-bottom: 2.5px solid var(--ink);
    margin-bottom: 24px;
}

.month-head .name {
    font-family: var(--display);
    font-size: 88px;
    line-height: 0.9;
    letter-spacing: -0.025em;
    margin: 0;
}

.month-head .name em { color: var(--plum); }

.month-head .name .yr {
    font-family: var(--display);
    font-style: italic;
    font-size: 38px;
    color: var(--ochre);
    margin-left: 12px;
    vertical-align: 0.4em;
}

.month-head .summary {
    font-family: var(--serif);
    font-style: italic;
    color: var(--ink-mute);
    font-size: 16px;
    line-height: 1.4;
    padding-bottom: 8px;
}

.month-head .count {
    font-family: var(--hand);
    font-size: 22px;
    color: var(--ochre);
    transform: rotate(-2deg);
    padding-bottom: 12px;
}

/* ─── Event card ──────────────────── */
.event {
    display: grid;
    grid-template-columns: 100px 1fr 160px;
    gap: 28px;
    padding: 28px 0;
    border-bottom: 1.5px dashed var(--rule);
    align-items: stretch;
    position: relative;
}

.event:last-of-type { border-bottom: none; }

.event.featured {
    grid-template-columns: 100px 1fr 160px;
    background: radial-gradient(ellipse 40% 80% at 20% 50%, rgba(233, 211, 106, 0.20), transparent 70%);
    padding: 32px 24px;
    margin: 0 -24px;
    border-radius: 8px;
}

.event.featured::before {
    content: 'uitgelicht';
    position: absolute;
    top: 8px;
    left: -8px;
    background: var(--plum);
    color: var(--paper);
    font-family: var(--serif);
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    padding: 4px 12px;
    transform: rotate(-3deg);
}

.event .date {
    text-align: center;
    border-right: 1px solid var(--rule);
    padding-right: 24px;
    padding-top: 4px;
}

.event .date .d {
    font-family: var(--display);
    font-size: 56px;
    line-height: 1;
    color: var(--ink);
    font-style: italic;
}

.event .date .m {
    font-family: var(--serif);
    font-size: 13px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ink-mute);
    margin-top: 4px;
}

.event .date .day {
    font-family: var(--serif);
    font-style: italic;
    font-size: 13px;
    color: var(--terracotta);
    margin-top: 6px;
}

.event .date .range {
    font-family: var(--serif);
    font-size: 11px;
    color: var(--ink-mute);
    margin-top: 6px;
    letter-spacing: 0.04em;
    line-height: 1.4;
}

.event .vis {
    aspect-ratio: 4 / 3;
    border-radius: 6px;
    overflow: hidden;
    filter: drop-shadow(4px 6px 0 rgba(26, 26, 26, 0.06));
}

.event .vis svg,
.event .vis img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.event .info {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.event .info .top {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.event .info .top .kind {
    font-family: var(--serif);
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 3px;
    color: var(--paper);
    background: var(--ink-soft);
}

.event .info .top .kind.tentoonstelling { background: var(--terracotta); }
.event .info .top .kind.lezing,
.event .info .top .kind.beurs,
.event .info .top .kind.festival,
.event .info .top .kind.feest,
.event .info .top .kind.jubileum,
.event .info .top .kind.atelier,
.event .info .top .kind.workshop,
.event .info .top .kind.biennale        { background: var(--yellow); color: var(--ink); }
.event .info .top .kind.docu,
.event .info .top .kind.online,
.event .info .top .kind.film            { background: var(--lavender); color: var(--ink); }
.event .info .top .kind.wedstrijd       { background: var(--plum-soft); }
.event .info .top .kind.anders          { background: var(--lavender); color: var(--ink); }

.event .info .top .chip-register {
    background: var(--terracotta-soft);
    color: var(--ink);
    border-color: var(--terracotta);
}

.event .info h4 {
    font-family: var(--display);
    font-size: 26px;
    line-height: 1.1;
    margin: 4px 0 0;
}

.event .info h4 a {
    color: inherit;
    text-decoration: none;
}

.event .info h4 a:hover { color: var(--terracotta); }

.event .info h4 em { color: var(--plum); }

.event .info .loc {
    font-family: var(--serif);
    font-style: italic;
    color: var(--ink-mute);
    font-size: 14px;
    line-height: 1.4;
}

.event .info .loc svg {
    width: 11px;
    height: 11px;
    display: inline-block;
    vertical-align: -1px;
    margin-right: 4px;
    color: var(--terracotta);
}

.event .actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-end;
    text-align: right;
    padding-top: 4px;
}

.event .actions .price {
    font-family: var(--display);
    font-style: italic;
    font-size: 20px;
    color: var(--ochre);
    margin-bottom: 4px;
}

.event .actions a {
    font-family: var(--serif);
    font-style: italic;
    font-size: 13px;
    color: var(--ink);
    text-decoration: none;
    border-bottom: 1px solid var(--rule);
    padding-bottom: 1px;
}

.event .actions a:hover {
    color: var(--terracotta);
    border-color: var(--terracotta);
}

.event .actions a.external::before {
    content: '';
    display: inline-block;
    width: 11px;
    height: 11px;
    margin-right: 5px;
    vertical-align: -1px;
    background: no-repeat center / contain
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none' stroke='%23C4A8D0' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10 L 10 4 M 5 4 L 10 4 L 10 9'/%3E%3C/svg%3E");
}

/* ─── Partners ──────────────────────── */
.partners {
    margin: 96px 0 0;
    padding: 56px;
    background: var(--ink);
    color: var(--paper);
    border-radius: 12px;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 48px;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.partners::before {
    content: '';
    position: absolute;
    right: -80px;
    top: -80px;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: var(--terracotta);
    opacity: 0.3;
}

.partners::after {
    content: '';
    position: absolute;
    right: 80px;
    bottom: -100px;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: var(--plum);
    opacity: 0.5;
}

.partners > * {
    position: relative;
    z-index: 1;
}

.partners .eyebrow { color: var(--yellow); }

.partners h3 {
    font-family: var(--display);
    font-size: 42px;
    line-height: 1.05;
    margin: 10px 0 14px;
    letter-spacing: -0.015em;
}

.partners h3 em {
    color: var(--pink);
}

.partners p {
    font-family: var(--serif);
    font-size: 16px;
    line-height: 1.5;
    opacity: 0.85;
    margin: 0 0 16px;
    max-width: 46ch;
}

.partners .btn {
    border-color: var(--paper);
    color: var(--paper);
    background: transparent;
}

.partners .btn.filled {
    background: var(--yellow);
    color: var(--ink);
    border-color: var(--yellow);
}

.partners .btn-row {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 24px;
}

/* ─── Archive link ─────────────────── */
.agenda-archive-cta {
    margin: 64px 0 0;
    padding: 36px 40px;
    border-top: 1.5px solid var(--rule);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}

.agenda-archive-cta h3 {
    font-family: var(--display);
    font-size: 30px;
    margin: 0;
}

.agenda-archive-cta h3 em { color: var(--plum); }

.agenda-archive-cta p {
    font-family: var(--serif);
    font-style: italic;
    color: var(--ink-mute);
    font-size: 15px;
    margin: 6px 0 0;
}

/* ─── News (shared with homepage; kort hier herhaald) ─── */
.news {
    margin: 48px 0 0;
    padding: 64px 56px;
    background: var(--plum);
    color: var(--paper);
    border-radius: 12px;
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 48px;
    align-items: center;
}

.news h2 {
    font-family: var(--display);
    font-size: 42px;
    line-height: 1.05;
    margin: 0 0 12px;
}

.news h2 em { color: var(--yellow); }

.news p {
    margin: 0;
    font-size: 17px;
    opacity: 0.85;
    line-height: 1.5;
}

.news .cta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.news-btn {
    display: inline-block;
    background: var(--terracotta);
    color: var(--paper);
    font-family: var(--serif);
    font-size: 17px;
    padding: 16px 28px;
    border-radius: 999px;
    text-decoration: none;
    border: 1.5px solid var(--terracotta);
    transition: all 0.15s;
}

.news-btn:hover {
    background: var(--paper);
    color: var(--terracotta);
}

.news-btn--soon {
    background: transparent;
    color: var(--paper);
    border-color: rgba(251, 246, 234, 0.4);
    font-style: italic;
    cursor: not-allowed;
}

.news-btn--soon:hover {
    background: transparent;
    color: var(--paper);
}

.news .via {
    font-family: var(--serif);
    font-style: italic;
    font-size: 13px;
    opacity: 0.6;
}

/* ─── Responsive ─────────────────── */
@media (max-width: 1024px) {
    .ag-intro,
    .partners,
    .news {
        /* minmax(0, 1fr) voorkomt dat form/h1 min-content de track uitrekt */
        grid-template-columns: minmax(0, 1fr);
        gap: 32px;
    }

    .ag-intro h1 { font-size: 84px; }
    .month-head .name { font-size: 64px; }


    /* Summary-card: 3 stats inline is te cramped op narrow tablet; 3 gelijke cols werkt zolang labels passen. */
    .summary-card .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .summary-card .stat .l { overflow-wrap: break-word; }

    .event,
    .event.featured {
        grid-template-columns: 100px 1fr;
        grid-template-rows: auto auto auto;
        gap: 20px;
    }

    .event .vis { grid-column: 2; aspect-ratio: 16 / 9; max-width: 320px; }
    .event .info { grid-column: 1 / -1; }
    .event .actions { grid-column: 1 / -1; align-items: flex-start; text-align: left; flex-direction: row; gap: 16px; flex-wrap: wrap; }
}

@media (max-width: 768px) {
    .ag-intro h1 { font-size: 56px; }
    .month-head { grid-template-columns: 1fr; gap: 8px; }
    .month-head .name { font-size: 48px; }
    .month-head .count { transform: none; }

    .event,
    .event.featured {
        grid-template-columns: 1fr;
        margin: 0;
        padding: 24px 0;
    }

    .event .vis { max-width: 100%; aspect-ratio: 16 / 10; }

    .event .date {
        text-align: left;
        border-right: none;
        border-bottom: 1px solid var(--rule);
        padding: 0 0 12px;
        display: flex;
        gap: 14px;
        align-items: baseline;
    }

    .event .date .d { font-size: 40px; }
    .event .date .m,
    .event .date .day,
    .event .date .range { margin: 0; }

    .partners { padding: 32px 24px; }
    .news { padding: 40px 28px; }
}
