/* NCRM Events page — scoped under .ncrm-events */
.ncrm-events {
  --cinnabar: #af3c34;
  --rust: #af3c34;
  --rust-deep: #8c2d27;
  --teal: #96C3BF;
  --gold: #F5C86B;
  --cream: #F0EEE9;
  --cream-deep: #E7E4DC;
  --white: #FFFFFF;
  --charcoal: #2D2E31;
  --ink: #16171a;
  --border: #DAD6CD;
  --border-soft: #E6E2D9;
  --muted: #6B6C70;
  --muted-2: #727378;
  --sans: 'Nunito Sans', system-ui, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;
  --radius: 12px;
  --radius-sm: 7px;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --maxw: 1440px;
  --gap: 2.25rem; /* comp default density: editorial */
  --dark-grad-img: linear-gradient(135deg, #303135 0%, #1d1e22 52%, #121316 100%);
}

.ncrm-events .container {
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 3rem);
}

.ncrm-events .bg-cream { background: var(--cream); }
.ncrm-events .bg-charcoal.on-dark {
  background-color: var(--charcoal);
  background-image: var(--dark-grad-img);
  color: var(--cream);
}

.ncrm-events .section { padding-block: clamp(2.25rem, 4vw, 3.25rem); }
.ncrm-events .section--tight { padding-block: clamp(2.5rem, 5vw, 4rem); }

.ncrm-events .eyebrow {
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--rust);
  font-weight: 700;
}
.ncrm-events .eyebrow.on-dark { color: var(--gold); }

.ncrm-events .lede { line-height: 1.6; font-size: 1.05rem; }
.ncrm-events .text-center { text-align: center; }

.ncrm-events .flex { display: flex; }
.ncrm-events .gap { gap: 0.75rem; }
.ncrm-events .wrap { flex-wrap: wrap; }
.ncrm-events .mt-3 { margin-top: 1rem; }

/* Page banner */
.ncrm-events .page-banner {
  position: relative;
  min-height: 500px;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  color: var(--cream);
  background-image: linear-gradient(180deg, rgba(15,16,18,0.26) 0%, rgba(15,16,18,0.45) 42%, rgba(15,16,18,0.9) 100%), var(--events-hero);
  background-size: cover;
  background-position: center center;
}

.ncrm-events .page-banner > .container {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 500px;
  padding-block: clamp(1.75rem, 4vw, 2.75rem);
}

.ncrm-events .page-banner .crumb {
  position: absolute;
  top: 50px;
  left: clamp(1.25rem, 4vw, 3rem);
  margin: 0;
}

.ncrm-events .page-banner h1 {
  color: var(--cream);
  margin-top: 1rem;
  margin-bottom: 14px;
  max-width: 16ch;
  font-size: clamp(2.4rem, 5.5vw, 4.2rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.05;
}

.ncrm-events .page-banner .lede {
  max-width: 58ch;
  color: #d3d4d7;
}

.ncrm-events .crumb {
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold);
  display: flex;
  gap: 0.5rem;
}

.ncrm-events .crumb a {
  color: inherit;
  text-decoration: none;
}

.ncrm-events .crumb a:hover { color: var(--cream); }

/* Sticky filter bar */
.ncrm-events .filter-bar {
  position: sticky;
  top: 62px;
  z-index: 40;
  background-color: var(--cream);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 6px 14px -10px rgba(0,0,0,0.22);
}

.ncrm-events .filters {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
  padding-block: 0.85rem;
  margin-bottom: 0;
}

.ncrm-events .chip {
  font-weight: 700;
  font-size: 0.88rem;
  padding: 0.5rem 1.05rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--white);
  color: var(--ink);
  cursor: pointer;
  /* Do NOT transition background: the active fill must appear instantly on
     click. A `transition: all` fade could be perceived as the fill
     "disappearing" until a hover forced a repaint. */
  transition: border-color 0.18s var(--ease-out), color 0.18s var(--ease-out);
  font-family: inherit;
}

.ncrm-events .chip:hover { border-color: var(--ink); }

/* Persistent active state — filled rust/white from click until deselected,
   independent of hover/focus. Both the JS class and the ARIA state select it. */
.ncrm-events .chip.is-active,
.ncrm-events .chip[aria-pressed="true"] {
  background: var(--rust);
  border-color: var(--rust);
  color: #fff;
}

.ncrm-events .chip--more {
  background: transparent;
  border-style: dashed;
  color: var(--muted);
}

.ncrm-events .chip--more:hover {
  color: var(--ink);
  border-color: var(--ink);
  background: var(--white);
}

.ncrm-events .chip--more:focus-visible {
  outline: 2px solid var(--rust);
  outline-offset: 2px;
}

.ncrm-events [data-filter-chip-extra][hidden] {
  display: none;
}

.ncrm-events .chip:focus-visible {
  outline: 2px solid var(--rust);
  outline-offset: 2px;
}

.ncrm-events .view-toggle {
  margin-left: auto;
  align-self: stretch;
  display: inline-flex;
  align-items: stretch;
  gap: 2px;
  background: var(--cream-deep);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 3px;
}

.ncrm-events .view-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0 0.85rem;
  border: none;
  background: transparent;
  color: var(--muted);
  border-radius: 5px;
  cursor: pointer;
  font-weight: 700;
  font-size: 0.82rem;
  font-family: inherit;
  transition: background 0.18s var(--ease-out), color 0.18s var(--ease-out);
  position: relative;
}

.ncrm-events .view-btn svg { width: 16px; height: 16px; }

/* View button labels render as hover/focus tooltips (comp) */
.ncrm-events .view-btn span {
  position: absolute;
  bottom: calc(100% + 9px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  background: var(--ink);
  color: #fff;
  font-family: var(--mono);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 5px 9px;
  border-radius: 5px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.16s var(--ease-out), transform 0.16s var(--ease-out);
  box-shadow: 0 8px 20px -8px rgba(0,0,0,0.55);
  z-index: 60;
}

.ncrm-events .view-btn span::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-top-color: var(--ink);
}

.ncrm-events .view-btn:hover span,
.ncrm-events .view-btn:focus-visible span {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.ncrm-events .view-btn:hover { color: var(--ink); }
.ncrm-events .view-btn.is-active {
  background: var(--white);
  color: var(--ink);
  box-shadow: 0 1px 2px rgba(0,0,0,0.12);
}

.ncrm-events .view-btn:focus-visible {
  outline: 2px solid var(--rust);
  outline-offset: 2px;
}

/* Events cards grid */
.ncrm-events .events-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--gap);
}

@media (max-width: 900px) {
  .ncrm-events .events-cards { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
  .ncrm-events .events-cards { grid-template-columns: 1fr; }
  .ncrm-events .events-cards:not(.is-list) .evt-excerpt {
    -webkit-line-clamp: 3;
    line-clamp: 3;
  }
}

.ncrm-events .events-cards .card__body { gap: 0.5rem; }
.ncrm-events .events-cards .evt__meta { margin-top: 0.1rem; }
.ncrm-events .events-cards .card { position: relative; }

.ncrm-events .evt-more { display: none; }

.ncrm-events .events-cards.is-list .evt-more {
  position: static;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.9rem;
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--rust);
  transition: color 0.2s var(--ease-out), gap 0.2s var(--ease-out);
}

.ncrm-events .events-cards.is-list .evt-more .arr {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 19px;
  height: 19px;
  border-radius: 50%;
  border: 1.5px solid currentColor;
  font-size: 0.78rem;
  line-height: 1;
  transition: transform 0.2s var(--ease-out), background 0.2s var(--ease-out), color 0.2s var(--ease-out);
}

.ncrm-events .events-cards.is-list .card:hover .evt-more {
  color: var(--ink);
}

.ncrm-events .events-cards.is-list .card:hover .evt-more .arr {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}

.ncrm-events .events-cards:not(.is-list) .evt-more {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  align-self: flex-end;
  margin-top: auto;
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--rust);
  transition: color 0.2s var(--ease-out), gap 0.2s var(--ease-out);
}

.ncrm-events .events-cards:not(.is-list) .card:hover .evt-more {
  color: var(--ink);
  gap: 0.6rem;
}

.ncrm-events .events-cards:not(.is-list) .card:hover .evt-more .arr { transform: translateX(2px); }

.ncrm-events .events-cards .evt-excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 0;
  color: var(--charcoal);
}

/*
 * Grid card: the excerpt must NOT flex-grow (the base .card__excerpt sets
 * flex:1, which fought the footer's margin-top:auto and clipped the excerpt
 * mid-line when a 2-line title reduced the available height). Let the excerpt
 * take its natural clamped height and let the footer's auto margin absorb the
 * slack, so the footer always sits below the text for 1-, 2-, or 3-line titles.
 */
.ncrm-events .events-cards:not(.is-list) .evt-excerpt {
  flex: 0 1 auto;
  min-height: 0;
}

/* Bound title growth to 2 lines so grid cards stay even (ellipsis on overflow). */
.ncrm-events .events-cards:not(.is-list) .card__body h4 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ncrm-events .events-cards .datechip {
  background: #fff;
  padding: 0.6rem 0.8rem;
}

.ncrm-events .events-cards .datechip .d {
  font-size: 1.7rem;
  color: var(--ink);
}

.ncrm-events .events-cards .datechip .m {
  font-size: 0.68rem;
  color: var(--rust);
}

.ncrm-events .events-cards.is-list { grid-template-columns: 1fr; gap: 0; }

.ncrm-events .events-cards.is-list .card {
  flex-direction: row;
  align-items: flex-start;
  gap: 1.4rem;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  box-shadow: none;
  padding: 1.5rem 0.25rem;
  transition: none;
  overflow: visible;
}

.ncrm-events .events-cards.is-list .card:hover {
  transform: none;
  box-shadow: none;
}

.ncrm-events .events-cards.is-list .card:first-child { padding-top: 0.25rem; }
.ncrm-events .events-cards.is-list .card:last-child { border-bottom: 0; }

.ncrm-events .events-cards.is-list .card .media {
  position: static;
  width: auto;
  max-width: none;
  aspect-ratio: auto;
  flex: none;
  background: none;
  overflow: visible;
  align-self: flex-start;
}

.ncrm-events .events-cards.is-list .card .media::after { display: none; }
.ncrm-events .events-cards.is-list .media__label { display: none; }

.ncrm-events .events-cards.is-list .datechip {
  position: static;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  padding: 0;
  background: linear-gradient(135deg, #3a3b3f 0%, #1a1b1e 100%);
  border-radius: 8px;
}

.ncrm-events .events-cards.is-list .datechip .d { font-size: 1.55rem; color: #fff; }
.ncrm-events .events-cards.is-list .datechip .m { color: var(--gold); margin-top: 3px; }

.ncrm-events .events-cards.is-list .card__body {
  flex: 1;
  padding: 0;
}

.ncrm-events .events-cards.is-list .evt-excerpt { -webkit-line-clamp: 2; }

/* Month separators (list view only) */
.ncrm-events .evt-month {
  display: none;
  grid-column: 1 / -1;
}

.ncrm-events .events-cards.is-list .evt-month {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 1.9rem 0 0.35rem;
  font-family: var(--mono);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}

.ncrm-events .events-cards.is-list .evt-month::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border);
}

.ncrm-events .events-cards.is-list .evt-month:first-child { margin-top: 0; }
.ncrm-events .events-cards.is-list .evt-month[hidden] { display: none; }

/* Featured image thumb (list view only) */
.ncrm-events .evt-thumb { display: none; }

.ncrm-events .events-cards.is-list .evt-thumb {
  display: block;
  flex: none;
  align-self: flex-start;
  width: 33%;
  max-width: 340px;
  aspect-ratio: 16 / 9;
  border-radius: var(--radius-sm);
  background-size: cover;
  background-position: center;
  background-color: var(--charcoal);
}

.ncrm-events .events-cards.is-list .evt-thumb--placeholder {
  background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.14) 0 1.25px, transparent 1.25px 8px), linear-gradient(135deg, #3a3b3f 0%, #1a1b1e 100%);
}

@media (max-width: 600px) {
  .ncrm-events .events-cards.is-list .card { align-items: flex-start; }
  .ncrm-events .events-cards.is-list .evt-thumb { display: none; }
}

.ncrm-events .card.is-filter-hidden,
.ncrm-events .card.is-batch-hidden {
  display: none;
}

/* Calendar view */
.ncrm-events .cal {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}

.ncrm-events .cal[hidden] { display: none; }

.ncrm-events .cal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 1.4rem;
  border-bottom: 1px solid var(--border);
}

.ncrm-events .cal__eyebrow {
  font-family: var(--mono);
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rust);
}

.ncrm-events .cal__picker {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.ncrm-events .cal__picker .cal__eyebrow { display: block; }

.ncrm-events .cal__title {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 1.5rem;
  font-weight: 800;
  margin-top: 0.15rem;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  color: var(--ink);
  font-family: inherit;
}

.ncrm-events .cal__title-caret {
  font-size: 0.72rem;
  color: var(--muted);
  transition: transform 0.18s var(--ease-out);
}

.ncrm-events .cal__title[aria-expanded="true"] .cal__title-caret {
  transform: rotate(180deg);
}

.ncrm-events .cal__dropdown {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 3500;
  width: 280px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  box-shadow: 0 18px 44px -14px rgba(0,0,0,0.4);
  padding: 0.85rem;
}

.ncrm-events .cal__dropdown[hidden] { display: none; }

.ncrm-events .cal__dropdown-year {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.7rem;
}

.ncrm-events .cal__dropdown-year span {
  font-family: var(--mono);
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.06em;
}

.ncrm-events .cal__dropdown-year button {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  background: var(--white);
  color: var(--ink);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 0.16s var(--ease-out);
}

.ncrm-events .cal__dropdown-year button:hover {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}

.ncrm-events .cal__dropdown-months {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.4rem;
}

.ncrm-events .cal__dropdown-months button {
  padding: 0.5rem 0;
  border: 1px solid var(--border);
  background: var(--white);
  color: var(--ink);
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-family: var(--mono);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: all 0.14s var(--ease-out);
}

.ncrm-events .cal__dropdown-months button:hover { border-color: var(--ink); }

.ncrm-events .cal__dropdown-months button.is-current {
  background: var(--rust);
  border-color: var(--rust);
  color: #fff;
}

.ncrm-events .cal__nav {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.ncrm-events .cal__nav button {
  border: 1px solid var(--border);
  background: var(--white);
  color: var(--ink);
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-family: inherit;
  transition: all 0.16s var(--ease-out);
}

.ncrm-events .cal__nav button[aria-label] {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ncrm-events .cal__today-btn {
  padding: 0 0.9rem;
  height: 38px;
  font-weight: 700;
  font-size: 0.82rem;
}

.ncrm-events .cal__nav button:hover {
  border-color: var(--ink);
  background: var(--ink);
  color: #fff;
}

.ncrm-events .cal__nav button:focus-visible {
  outline: 2px solid var(--rust);
  outline-offset: 2px;
}

.ncrm-events .cal__scroll { overflow-x: auto; }
.ncrm-events .cal__month { min-width: 100%; }

.ncrm-events .cal__weekdays {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border-bottom: 1px solid var(--border);
}

.ncrm-events .cal__weekdays span {
  padding: 0.6rem 0.7rem;
  font-family: var(--mono);
  font-size: 0.66rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted-2);
}

.ncrm-events .cal__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.ncrm-events .cal__cell {
  min-height: 140px; /* comp default density: editorial */
  padding: 0.5rem 0.55rem 0.6rem;
  border-right: 1px solid var(--border-soft);
  border-bottom: 1px solid var(--border-soft);
}

.ncrm-events .cal__cell:nth-child(7n) { border-right: 0; }
.ncrm-events .cal__cell--out { background: var(--cream); }
.ncrm-events .cal__cell--out .cal__daynum { color: var(--muted-2); }

.ncrm-events .cal__daynum {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.6rem;
  height: 1.6rem;
  font-weight: 700;
  font-size: 0.82rem;
  color: var(--ink);
}

.ncrm-events .cal__cell--today .cal__daynum {
  background: var(--rust);
  color: #fff;
  border-radius: 50%;
}

.ncrm-events .cal__event {
  display: block;
  margin-top: 0.3rem;
  padding: 0.28rem 0.45rem;
  border-radius: 3px;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.25;
  color: #fff;
  background: var(--rust);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
  transition: background 0.16s var(--ease-out), color 0.16s var(--ease-out);
}

/* Universal hover/focus: charcoal + white across all category variants */
.ncrm-events .cal__event:hover,
.ncrm-events .cal__event:focus-visible {
  background: var(--charcoal);
  color: #fff;
}

.ncrm-events .cal__event:hover .cal__event-time,
.ncrm-events .cal__event:focus-visible .cal__event-time {
  color: #fff;
  opacity: 0.85;
}

.ncrm-events .cal__event:focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 1px;
}

.ncrm-events .cal__event-time {
  font-family: var(--mono);
  font-weight: 500;
  opacity: 0.85;
  margin-right: 0.15rem;
}

.ncrm-events .cal__event--lecture { background: #af3c34; }
.ncrm-events .cal__event--film { background: #33343a; }
.ncrm-events .cal__event--family { background: #4f827d; }
.ncrm-events .cal__event--perf { background: #c79a3f; color: #2b2000; }
.ncrm-events .cal__event--perf .cal__event-time { opacity: 0.7; }
.ncrm-events .cal__event--edu { background: #3c4d5b; }
.ncrm-events .cal__event--commem { background: #8c2d27; }

.ncrm-events .cal__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem 1.25rem;
  padding: 1rem 1.4rem;
  border-top: 1px solid var(--border);
}

.ncrm-events .cal__leg {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.78rem;
  color: var(--muted);
}

/* Legend is filtered per viewed month by JS via the [hidden] attribute.
   These author rules are needed because the base display declarations above
   would otherwise override the UA [hidden] { display: none } rule. */
.ncrm-events .cal__legend[hidden],
.ncrm-events .cal__leg[hidden] {
  display: none;
}

.ncrm-events .cal__dot {
  width: 11px;
  height: 11px;
  border-radius: 3px;
}

.ncrm-events .cal__dot--lecture { background: #af3c34; }
.ncrm-events .cal__dot--film { background: #33343a; }
.ncrm-events .cal__dot--family { background: #4f827d; }
.ncrm-events .cal__dot--perf { background: #c79a3f; }
.ncrm-events .cal__dot--edu { background: #3c4d5b; }
.ncrm-events .cal__dot--commem { background: #8c2d27; }

@media (max-width: 720px) {
  .ncrm-events .cal__month { min-width: 640px; }
}

/* Calendar event tooltip (appended inside .ncrm-events root, fixed positioning) */
.ncrm-events .cal-tip {
  position: fixed;
  z-index: 4000;
  width: 260px;
  max-width: calc(100vw - 20px);
  background: var(--white);
  color: var(--ink);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  box-shadow: 0 18px 44px -14px rgba(0,0,0,0.4);
  padding: 0.85rem 0.95rem;
  opacity: 0;
  transform: translateY(4px);
  pointer-events: none;
  transition: opacity 0.14s var(--ease-out), transform 0.14s var(--ease-out);
}

.ncrm-events .cal-tip.is-on {
  opacity: 1;
  transform: translateY(0);
}

.ncrm-events .cal-tip::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -6px;
  transform: translateX(-50%) rotate(45deg);
  width: 11px;
  height: 11px;
  background: var(--white);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.ncrm-events .cal-tip.is-below::after {
  bottom: auto;
  top: -6px;
  border-right: none;
  border-bottom: none;
  border-left: 1px solid var(--border);
  border-top: 1px solid var(--border);
}

.ncrm-events .cal-tip__cat {
  display: block;
  font-family: var(--mono);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rust);
}

.ncrm-events .cal-tip__title {
  display: block;
  font-size: 1rem;
  line-height: 1.2;
  margin: 0.25rem 0 0.5rem;
}

.ncrm-events .cal-tip__meta {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  font-family: var(--mono);
  font-size: 0.68rem;
  color: var(--muted);
  margin-bottom: 0.5rem;
}

.ncrm-events .cal-tip__meta i {
  color: var(--rust);
  width: 12px;
}

.ncrm-events .cal-tip__ex {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--muted);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
}

.ncrm-events .events-load-more-wrap {
  margin-top: 2.5rem;
}

.ncrm-events .events-load-more-wrap[hidden] {
  display: none;
}

/* Card base */
.ncrm-events .card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform 0.2s var(--ease-out), box-shadow 0.2s var(--ease-out);
}

.ncrm-events a.card:hover,
.ncrm-events .card--link:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px -24px rgba(0,0,0,0.45);
}

.ncrm-events .card__body {
  padding: 1.4rem;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  flex: 1;
}

/* Comp default density (editorial): roomier grid-card padding */
.ncrm-events .events-cards:not(.is-list) .card__body {
  padding: 1.5rem;
}

.ncrm-events .card__body h4 {
  line-height: 1.15;
  font-size: 1.15rem;
  font-weight: 800;
  margin: 0;
}

.ncrm-events .card__meta {
  font-family: var(--mono);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  color: var(--muted);
  text-transform: uppercase;
}

.ncrm-events .card__excerpt {
  color: var(--muted);
  font-size: 0.95rem;
  flex: 1;
  margin: 0;
}

/* Media */
.ncrm-events .media {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  overflow: hidden;
  background-size: cover;
  background-position: center;
}

.ncrm-events .media--16x9 { aspect-ratio: 16 / 9; }

.ncrm-events .media--rust { background: linear-gradient(135deg, var(--rust) 0%, var(--rust-deep) 100%); }
.ncrm-events .media--teal { background: linear-gradient(135deg, #7fb0ab 0%, #4f827d 100%); }
.ncrm-events .media--gold { background: linear-gradient(135deg, #e9be63 0%, #c79a3f 100%); }

.ncrm-events .media--has-image {
  background-color: var(--charcoal);
}

.ncrm-events .media--rust .media__label { color: rgba(255,255,255,0.8); }
.ncrm-events .media--rust .media__label::before { background: var(--gold); }
.ncrm-events .media--gold .media__label,
.ncrm-events .media--teal .media__label { color: rgba(0,0,0,0.6); }
.ncrm-events .media--gold .media__label::before { background: var(--ink); }
.ncrm-events .media--has-image .media__label { color: rgba(255,255,255,0.85); }
.ncrm-events .media--has-image .media__label::before { background: var(--gold); }

.ncrm-events .media__label {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--mono);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
}

.ncrm-events .media__label::before {
  content: "";
  width: 14px;
  height: 2px;
  background: var(--rust);
}

.ncrm-events .datechip {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  border-radius: var(--radius-sm);
  line-height: 1;
  font-weight: 800;
}

.ncrm-events .datechip .m {
  letter-spacing: 0.14em;
  text-transform: uppercase;
  display: block;
  margin-top: 2px;
}

.ncrm-events .evt__meta {
  font-family: var(--mono);
  font-size: 0.74rem;
  font-weight: 500;
  color: var(--ink);
  margin-top: 0.3rem;
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.ncrm-events .evt__meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.ncrm-events .evt__meta i {
  font-size: 0.8rem;
  color: var(--muted);
}

.ncrm-events .evt-more .arr { transition: transform 0.2s var(--ease-out); }

/* Buttons */
.ncrm-events .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.35rem;
  border-radius: var(--radius-sm);
  font-weight: 700;
  font-size: 0.95rem;
  text-decoration: none;
  cursor: pointer;
  font-family: inherit;
  transition: background 0.22s var(--ease-out), color 0.22s var(--ease-out), box-shadow 0.22s var(--ease-out);
}

.ncrm-events .btn--ghost {
  background: transparent;
  color: var(--ink);
  box-shadow: inset 0 0 0 2px var(--ink);
  border: 0;
}

.ncrm-events .btn--ghost:hover {
  background: var(--ink);
  color: var(--white);
}

/* CTA split */
.ncrm-events .cta-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: start;
}

.ncrm-events .cta-split .eyebrow { color: var(--gold); }

.ncrm-events .cta-headline {
  color: var(--cream);
  margin-top: 0.75rem;
  font-size: clamp(1.75rem, 3vw, 2.35rem);
  font-weight: 800;
  letter-spacing: -0.015em;
  line-height: 1.15;
}

.ncrm-events .cta-split__aside {
  max-width: none;
  width: 100%;
  background: linear-gradient(135deg, rgba(255,255,255,0.11), rgba(255,255,255,0.035));
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: var(--radius);
  padding: clamp(2.25rem, 4vw, 3.25rem);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), 0 24px 55px -32px rgba(0,0,0,0.6);
}

.ncrm-events .cta-split__aside h4 {
  color: var(--cream);
  font-size: 1.15rem;
  margin-bottom: 0.55rem;
  font-weight: 800;
}

.ncrm-events .cta-split__aside .lede {
  font-size: 1rem;
  line-height: 1.55;
  color: rgba(255,255,255,0.85);
}

.ncrm-events .btn--hero-outline {
  display: inline-flex;
  align-items: center;
  padding: 0.95rem 1.35rem;
  border: 1.5px solid rgba(255,255,255,0.45);
  border-radius: var(--radius-sm);
  color: var(--cream);
  font-weight: 700;
  text-decoration: none;
}

.ncrm-events .btn--hero-outline:hover {
  background: rgba(255,255,255,0.12);
  box-shadow: inset 0 0 0 2px var(--teal), 0 0 18px 1px rgba(92,242,224,0.5);
}

.ncrm-events .btn-text {
  color: var(--cream);
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  align-self: center;
}

.ncrm-events .btn-text:hover { color: var(--teal); }

@media (max-width: 820px) {
  .ncrm-events .cta-split { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* Scroll reveal */
.ncrm-events .reveal { opacity: 1; transform: none; }
.js-reveal-ready .ncrm-events .reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.55s var(--ease-out), transform 0.55s var(--ease-out);
}
.js-reveal-ready .ncrm-events .reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .js-reveal-ready .ncrm-events .reveal { opacity: 1; transform: none; transition: none; }
}

/* Elementor page overrides */
.elementor-page-3775 .ncrm-events .page-banner h1 {
  color: var(--cream);
}
