/* Opt-in Events shortcode. All rules are scoped so editor-owned pages stay intact. */
.rrr-events-highlights {
  --rrr-highlights-ink: #263b31;
  --rrr-highlights-muted: #5d6b61;
  --rrr-highlights-accent: #356447;
  box-sizing: border-box;
  width: min(1280px, 100%);
  margin: clamp(32px, 5vw, 72px) auto;
  padding-inline: clamp(24px, 4vw, 64px);
  color: var(--rrr-highlights-ink);
}

.rrr-events-highlights * { box-sizing: border-box; }

.rrr-events-highlights__header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: clamp(24px, 3vw, 36px);
}

.rrr-events-highlights__eyebrow,
.rrr-events-highlights__status {
  margin: 0 0 8px;
  color: var(--rrr-highlights-accent);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.rrr-events-highlights__header h2 {
  margin: 0;
  color: inherit;
  font-family: Georgia, serif;
  font-size: clamp(1.8rem, 3.4vw, 2.8rem);
  line-height: 1.12;
}

.rrr-events-highlights__all {
  flex: none;
  color: var(--rrr-highlights-accent);
  font-weight: 750;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.rrr-events-highlights__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 2vw, 24px);
}

.rrr-events-highlights__card {
  min-width: 0;
  margin: 0;
  background: #fffdf8;
  border: 1px solid #d8e2d8;
  border-top: 5px solid var(--rrr-highlights-accent);
  box-shadow: 0 14px 36px rgb(28 46 35 / 9%);
}

.rrr-events-highlights__card > a {
  display: flex;
  height: 100%;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
}

.rrr-events-highlights__card > a:hover .rrr-events-highlights__action,
.rrr-events-highlights__card > a:focus-visible .rrr-events-highlights__action {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.rrr-events-highlights :is(a:focus-visible) {
  outline: 3px solid #e4a935;
  outline-offset: 4px;
}

.rrr-events-highlights__image {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #eaf0e8;
}

.rrr-events-highlights__image-backdrop,
.rrr-events-highlights__image-foreground {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
}

.rrr-events-highlights .rrr-events-highlights__image-backdrop img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: blur(16px);
  transform: scale(1.12);
  opacity: .65;
}

.rrr-events-highlights__image-foreground {
  background: rgb(255 253 248 / 14%);
}

.rrr-events-highlights .rrr-events-highlights__image-foreground img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  filter: drop-shadow(0 6px 16px rgb(21 38 27 / 24%));
}

.rrr-events-highlights__card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: start;
  gap: 9px;
  padding: clamp(18px, 2vw, 26px);
}

.rrr-events-highlights__status { margin: 0; }

.rrr-events-highlights__title {
  color: var(--rrr-highlights-ink);
  font-family: Georgia, serif;
  font-size: clamp(1.25rem, 2vw, 1.65rem);
  font-weight: 600;
  line-height: 1.2;
}

.rrr-events-highlights__date,
.rrr-events-highlights__appearance { color: var(--rrr-highlights-muted); }

.rrr-events-highlights__action {
  margin-top: auto;
  padding-top: 10px;
  color: var(--rrr-highlights-accent);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.rrr-events-highlights__empty {
  margin: 0;
  padding: 22px 26px;
  background: #f4f7f1;
  border: 1px solid #d8e2d8;
  color: var(--rrr-highlights-muted);
}

@media (max-width: 900px) {
  .rrr-events-highlights__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .rrr-events-highlights {
    margin-block: 48px;
    padding-inline: clamp(24px, 6vw, 32px);
  }
  .rrr-events-highlights__header {
    align-items: start;
    flex-direction: column;
    gap: 14px;
    margin-bottom: 24px;
  }
  .rrr-events-highlights__eyebrow { margin-bottom: 11px; }
  .rrr-events-highlights__header h2 {
    max-width: 16ch;
    font-size: clamp(2rem, 8vw, 2.5rem);
    line-height: 1.08;
  }
  .rrr-events-highlights__all {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: 8px;
  }
  .rrr-events-highlights__grid { grid-template-columns: minmax(0, 1fr); }
  .rrr-events-highlights__image { aspect-ratio: 4 / 3; }
}
.rrr-event-booking { display:grid; grid-template-columns:minmax(12rem,.7fr) minmax(0,1.3fr); gap:clamp(1.25rem,3vw,3rem); margin:0; padding:clamp(1.5rem,4vw,3rem); background:var(--rrr-event-soft,#edf5ef); color:var(--rrr-event-deep,#173f30); border-block:1px solid var(--rrr-event-accent,#39724f); scroll-margin-top:5rem; }
.rrr-event-booking__heading h2 { margin:.35rem 0 0; font-size:clamp(1.8rem,3.2vw,2.75rem); line-height:1.1; }
.rrr-event-booking__options,.rrr-event-booking__date { display:grid; gap:1rem; min-width:0; }
.rrr-event-booking__date h3 { margin:0; font-size:1.2rem; }
.rrr-event-booking__buttons,.rrr-event-booking__hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.8rem; }
.rrr-event-booking__hero-actions { margin-top:1.25rem; }
.rrr-event-booking__primary,.rrr-event-booking__directions { display:inline-flex; align-items:center; justify-content:center; gap:.6rem; min-height:3.1rem; padding:.8rem 1.3rem; border:1px solid var(--rrr-event-deep,#173f30); border-radius:0; font-family:inherit; font-size:1rem; font-weight:800; line-height:1.2; text-decoration:none; }
.rrr-event-booking__primary { background:var(--rrr-event-deep,#173f30); color:var(--rrr-event-on-deep,#fff)!important; }
.rrr-event-booking__directions { background:#fff; color:var(--rrr-event-deep,#173f30); }
.rrr-event-booking__primary:hover,.rrr-event-booking__primary:focus-visible { background:var(--rrr-event-accent,#39724f); color:var(--rrr-event-on-accent,#fff)!important; outline:2px solid currentColor; outline-offset:3px; }
.rrr-public-event-card-wrap.has-booking { display:flex; flex-direction:column; min-width:0; }
.rrr-public-event-card-wrap.has-booking>.rrr-public-event-card { min-height:0; flex:1 1 auto; }
.rrr-public-event-card__summary { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; max-height:4.5em; overflow:hidden; overflow-wrap:anywhere; font-weight:400; line-height:1.5; }
.rrr-public-event-card__booking { display:flex; flex-wrap:wrap; align-items:stretch; gap:.5rem; padding:0 var(--rrr-event-card-padding,20px) var(--rrr-event-card-padding,20px); margin-top:auto; }
.rrr-public-event-card__booking>.rrr-event-booking__primary { flex:1 1 7rem; box-sizing:border-box; min-width:0; min-height:44px; padding:.55rem .65rem; font-size:.875rem; overflow-wrap:anywhere; text-align:center; }

/* General index cards share a compact preview, including archived appearances. */
.rrr-public-events .rrr-public-events__grid .rrr-public-event-card-wrap {
  --rrr-event-card-padding: clamp(16px, 2vw, 24px);
  min-height: 0;
}

.rrr-public-events .rrr-public-event-card-wrap > .rrr-public-event-card {
  min-height: 0;
  padding: var(--rrr-event-card-padding);
  align-content: start;
  gap: 8px;
  overflow-wrap: anywhere;
}

.rrr-public-events .rrr-public-event-card .rrr-public-event-card__image {
  min-height: 0;
  max-height: none;
  margin: calc(0px - var(--rrr-event-card-padding)) calc(0px - var(--rrr-event-card-padding)) 4px;
  padding: 8px;
}

.rrr-public-events .rrr-public-event-card .rrr-public-event-card__image img {
  width: 100%;
  height: auto;
  max-height: min(22svh, 200px);
  object-fit: contain;
}

.rrr-public-events .rrr-public-event-card time strong,
.rrr-public-events .rrr-public-event-card .rrr-public-event-time strong {
  font-size: clamp(1.2rem, 1.8vw, 1.5rem);
  line-height: 1.15;
}

.rrr-public-events .rrr-public-event-card .rrr-public-event-card__appearance {
  font-size: clamp(1.05rem, 1.5vw, 1.2rem);
  line-height: 1.25;
}

.rrr-public-events .rrr-public-event-card .rrr-public-event-card__action {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: .5rem;
  margin-top: 0;
}

.rrr-public-event-card__booking > a:focus-visible {
  outline: 3px solid #f5b942;
  outline-offset: 3px;
}

/* A single featured event uses the available width instead of an empty three-card row. */
@media (min-width: 900px) {
  .rrr-public-events .rrr-public-events__grid:has(> .rrr-public-event-card-wrap:only-child) { grid-template-columns: minmax(0,1fr); }
  .rrr-public-events .rrr-public-events__grid > .rrr-public-event-card-wrap:only-child > .rrr-public-event-card { display:grid; grid-template-columns:minmax(200px,28%) minmax(0,1fr); column-gap:24px; }
  .rrr-public-events .rrr-public-events__grid > .rrr-public-event-card-wrap:only-child .rrr-public-event-card__image { grid-column:1; grid-row:1 / span 6; margin:0; display:grid; place-items:center; align-self:stretch; }
  .rrr-public-events .rrr-public-events__grid > .rrr-public-event-card-wrap:only-child .rrr-public-event-card > :not(.rrr-public-event-card__image) { grid-column:2; }
  .rrr-public-events .rrr-public-events__grid > .rrr-public-event-card-wrap:only-child .rrr-public-event-card:not(:has(.rrr-public-event-card__image)) { grid-template-columns:minmax(0,1fr); }
  .rrr-public-events .rrr-public-events__grid > .rrr-public-event-card-wrap:only-child .rrr-public-event-card:not(:has(.rrr-public-event-card__image)) > * { grid-column:1; }
}

@media (max-height: 740px) {
  .rrr-public-events .rrr-public-event-card .rrr-public-event-card__image img {
    max-height: min(18svh, 145px);
  }
}
@media(max-width:700px){.rrr-event-booking{grid-template-columns:minmax(0,1fr);padding:1.4rem;gap:1.1rem}.rrr-event-booking__buttons{align-items:stretch}.rrr-event-booking__buttons>a{flex:1 1 12rem}.rrr-event-booking__hero-actions .rrr-event-booking__primary{width:100%;box-sizing:border-box}}
.rrr-enrollment-availability{padding:10px 18px;color:var(--rrr-event-ink,#173b30)}.rrr-enrollment-status{display:inline-flex;align-items:center;min-height:32px;padding:5px 10px;border:1px solid #527567;background:#fff;color:#173b30;font:700 14px/1.4 system-ui,sans-serif}.rrr-enrollment-status.is-full,.rrr-enrollment-status.is-cancelled,.rrr-enrollment-status.is-closed{border-color:#815148;color:#6b332b}.rrr-enrollment-status.is-limited{border-color:#ac822d;background:#fff;color:#705113}
.rrr-public-event-card__booking a[aria-disabled="true"],.rrr-event-booking__primary[aria-disabled="true"],.rrr-event-program__button[aria-disabled="true"]{opacity:.55;cursor:not-allowed;text-decoration:none;pointer-events:none}
