.cxacg {
    --cxacg-paper: #fff;
    --cxacg-ink: #161616;
    --cxacg-muted: #555;
    background: var(--cxacg-paper);
    color: var(--cxacg-ink);
    font-family: Futura, 'Century Gothic', Arial, sans-serif;
    padding: 64px 0 76px;
}
.cxacg .cxacg-wrap { width: min(1280px, calc(100% - 96px)); margin: auto; }
.cxacg #cxacg-title {
    margin: 0 0 32px;
    color: inherit;
    font: 700 clamp(32px, 4vw, 56px)/1.08 Futura, 'Century Gothic', Arial, sans-serif;
    letter-spacing: -.035em;
    overflow-wrap: anywhere;
}
.cxacg .cxacg-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 36px 24px;
    list-style: none;
    padding: 0;
    margin: 0;
}
.cxacg .cxacg-card { margin: 0; padding: 0; min-width: 0; list-style: none; }
.cxacg .cxacg-card a { color: inherit; display: block; text-decoration: none; }
.cxacg .cxacg-card a:hover h2 { text-decoration: underline; text-underline-offset: 4px; }
.cxacg .cxacg-card a:focus-visible { outline: 3px solid #0075b9; outline-offset: 5px; }
.cxacg .cxacg-image {
    position: relative;
    height: 220px;
    background: #eee;
    color: #555;
    overflow: hidden;
    display: grid;
    place-items: center;
}
.cxacg .cxacg-image span { font-size: 14px; font-weight: 700; }
.cxacg .cxacg-image img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; margin: 0; }
.cxacg .cxacg-fit-cover .cxacg-image img,
.cxacg .cxacg-fit-mixed .cxacg-card:nth-child(4n+1) img,
.cxacg .cxacg-fit-mixed .cxacg-card:nth-child(4n+2) img { object-fit: cover; }
.cxacg .cxacg-meta { font-size: 14px; line-height: 1.45; font-weight: 700; margin: 16px 0 8px; }
.cxacg .cxacg-card h2 { color: inherit; font: 700 21px/1.2 Futura, 'Century Gothic', Arial, sans-serif; letter-spacing: -.02em; margin: 0; overflow-wrap: anywhere; }
.cxacg .cxacg-venue { color: var(--cxacg-muted); font: 14px/1.45 Arial, sans-serif; margin: 8px 0 0; }
@media (max-width: 1050px) {
    .cxacg .cxacg-wrap { width: calc(100% - 48px); }
    .cxacg .cxacg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .cxacg { padding: 40px 0 52px; }
    .cxacg .cxacg-wrap { width: calc(100% - 36px); }
    .cxacg .cxacg-grid { gap: 24px 16px; }
    .cxacg .cxacg-image { height: 180px; }
    .cxacg .cxacg-card h2 { font-size: 19px; }
}
@media (max-width: 390px) {
    .cxacg .cxacg-grid { grid-template-columns: 1fr; }
    .cxacg .cxacg-image { height: 220px; }
}
