/* Six existing marketplace roles plus the shared event page-title role. */
:root{--jfm-event-page-title:700 clamp(1.8rem,4vw,2.75rem)/1.12 var(--jfm-font);--jfm-event-title-tracking:-.025em;--jfm-event-radius:12px;--jfm-event-gap:12px;--jfm-event-poster-width:180px}
.jfm-events-section{margin:24px 0 28px;min-width:0}
.jfm-events-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.jfm-events-heading h2{display:flex;align-items:center;gap:8px;margin:0;color:var(--jfm-ink);font:var(--jfm-market-section);letter-spacing:-.02em}
.jfm-events-heading h2 svg{width:24px;height:24px;flex:none;color:#1559d6}
.jfm-events-view-all{display:inline-flex;align-items:center;gap:6px;flex:none;font:var(--jfm-market-label);color:#1559d6;white-space:nowrap}
.jfm-events-view-all span{font:inherit}
.jfm-event-carousel{position:relative;min-width:0}
.jfm-events-rail{display:grid;grid-auto-flow:column;grid-auto-columns:var(--jfm-event-poster-width);gap:var(--jfm-event-gap);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:2px;padding:2px 2px 8px;scrollbar-width:thin;scrollbar-color:#c9d6ec transparent}
.jfm-events-rail::-webkit-scrollbar{height:4px}.jfm-events-rail::-webkit-scrollbar-thumb{background:#c9d6ec;border-radius:4px}
.jfm-event-card{min-width:0;scroll-snap-align:start;margin:0}.jfm-event-link{display:block;color:var(--jfm-ink)}
.jfm-event-artwork{display:grid;place-items:center;aspect-ratio:4/5;overflow:hidden;border-radius:var(--jfm-event-radius);background:#edf3ff;border:1px solid #e4eaf4}
.jfm-event-poster{display:block;width:100%;height:100%;max-width:100%;object-fit:contain;background:#fff}
.jfm-event-artwork-text{padding:12px;text-align:center;font:var(--jfm-market-title);color:#1559d6;overflow-wrap:anywhere}
.jfm-event-card-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:8px 0 0;color:var(--jfm-ink);font:var(--jfm-market-title);overflow-wrap:anywhere;letter-spacing:-.015em}
.jfm-event-link:hover .jfm-event-card-title{text-decoration:underline;text-underline-offset:3px}
.jfm-event-arrow{position:absolute;z-index:2;top:calc(var(--jfm-event-poster-width)*.625 - 18px);display:grid;place-items:center;width:36px;height:36px;min-height:0;padding:0;border:1px solid #d6deea;border-radius:50%;background:#fff;color:#1559d6;box-shadow:0 2px 8px #14211b10;font:var(--jfm-market-section);cursor:pointer}
.jfm-event-arrow--previous{left:-12px}.jfm-event-arrow--next{right:-12px}.jfm-event-arrow[hidden]{display:none}.jfm-event-arrow:disabled{opacity:.4;cursor:default}
.jfm-events-empty{margin:0;padding:18px 0 6px;color:var(--jfm-muted);font:var(--jfm-market-body)}
.jfm-events-preview-note{padding:10px 12px;margin:0 0 12px;border-left:3px solid #1559d6;background:#edf3ff;color:var(--jfm-ink);font:var(--jfm-market-small)}
.jfm-events-page{max-width:1180px;margin:0 auto;padding-top:32px;padding-bottom:64px;min-height:55vh}
.jfm-events-page-heading{margin-bottom:28px}.jfm-events-page h1{margin:12px 0;color:var(--jfm-ink);font:var(--jfm-event-page-title);letter-spacing:var(--jfm-event-title-tracking);overflow-wrap:anywhere}
.jfm-events-page-heading p{max-width:48em;margin:10px 0;color:var(--jfm-muted);font:var(--jfm-market-body)}
.jfm-events-back{display:inline-flex;gap:6px;color:#1559d6;font:var(--jfm-market-label)}
.jfm-events-filters{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 24px}.jfm-events-filters a{display:inline-flex;align-items:center;min-height:42px;padding:8px 16px;border:1px solid var(--jfm-line);border-radius:9px;font:var(--jfm-market-label);color:var(--jfm-ink);background:#fff}.jfm-events-filters a[aria-current=page]{background:#1559d6;border-color:#1559d6;color:#fff}
.jfm-events-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 20px}.jfm-events-pagination{display:flex;gap:12px;justify-content:center;margin:32px 0;font:var(--jfm-market-label)}
.jfm-event-detail{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:44px;align-items:start;max-width:1000px}.jfm-event-detail>img{display:block;width:100%;height:auto;border-radius:var(--jfm-event-radius)}.jfm-event-detail--no-image{grid-template-columns:minmax(0,1fr);max-width:800px}
.jfm-event-description{overflow-wrap:anywhere;color:var(--jfm-ink);font:var(--jfm-market-body)}.jfm-event-description h2,.jfm-event-description h3,.jfm-event-description h4{font:var(--jfm-market-section);letter-spacing:-.02em;margin:24px 0 12px}.jfm-event-description p,.jfm-event-description li{font:var(--jfm-market-body)}.jfm-event-description img,.jfm-event-description iframe,.jfm-event-description video{max-width:100%}.jfm-event-description pre{white-space:pre-wrap;overflow-wrap:anywhere}.jfm-event-description table{display:block;max-width:100%;overflow:auto}
.jfm-event-cta{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 20px;margin-top:20px;border-radius:9px;background:#1559d6;color:#fff!important;font:var(--jfm-market-label);overflow-wrap:anywhere}.jfm-event-cta:hover{background:#104bb8}.jfm-event-status{color:var(--jfm-muted);font:var(--jfm-market-small)}
.jfm-events-section :focus-visible,.jfm-events-page :focus-visible{outline:3px solid #90b7ff;outline-offset:3px}
@media(max-width:900px){.jfm-events-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.jfm-event-detail{gap:28px}}
@media(max-width:680px){.jfm-events-section{--jfm-event-gap:8px;--jfm-event-poster-width:calc((100vw - 52px)/4);margin:18px 0 22px}.jfm-events-heading{gap:8px;margin-bottom:9px}.jfm-events-heading h2 svg{width:21px;height:21px}.jfm-events-view-all{gap:3px}.jfm-event-artwork{border-radius:9px}.jfm-event-artwork-text{padding:6px}.jfm-event-arrow{width:30px;height:30px;top:calc((100vw - 52px)*.15625 - 15px)}.jfm-event-arrow--previous{left:-9px}.jfm-event-arrow--next{right:-9px}.jfm-events-page{padding-top:22px;padding-bottom:32px}.jfm-events-page-heading{margin-bottom:20px}.jfm-events-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}.jfm-event-detail{grid-template-columns:minmax(0,1fr);gap:24px}.jfm-event-detail>img{max-width:400px;margin:auto}}
@media(prefers-reduced-motion:reduce){.jfm-events-rail{scroll-behavior:auto}}
