/* Regionalnews V65 Agenda: responsive, branded and without third-party UI assets. */
.public-body .rn-agenda-prices {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 22px 0;
}
.public-body .rn-agenda-prices > div {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 16px;
  border: 1px solid #dce6df;
  border-top: 4px solid var(--primary);
  background: #fff;
}
.public-body .rn-agenda-prices strong { font-size: 15px; }
.public-body .rn-agenda-prices span { font-weight: 850; font-size: clamp(20px,2.5vw,29px); color: var(--primary); }
.public-body .rn-agenda-prices small { line-height: 1.45; color: #62726b; }
.public-body .rn-agenda-options { border: 0; padding: 0; margin: 0 0 16px; min-width: 0; }
.public-body .rn-agenda-options legend { font-weight: 780; margin-bottom: 10px; }
.public-body .rn-agenda-option,
.public-body .rn-agenda-featured-option {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 15px 16px;
  margin: 0 0 9px;
  border: 1px solid #dce6df;
  background: #fff;
  cursor: pointer;
}
.public-body .rn-agenda-option:has(input:checked),
.public-body .rn-agenda-featured-option:has(input:checked) {
  border-color: var(--primary);
  background: color-mix(in srgb, var(--primary) 9%, white);
}
.public-body .rn-agenda-option input,
.public-body .rn-agenda-featured-option input { flex: none; margin-top: 4px; width: 18px; height: 18px; accent-color: var(--primary); }
.public-body .rn-agenda-option span,
.public-body .rn-agenda-featured-option span { display: grid; gap: 4px; }
.public-body .rn-agenda-option strong,
.public-body .rn-agenda-featured-option strong { font-size: 15px; }
.public-body .rn-agenda-option small,
.public-body .rn-agenda-featured-option small { color: #54645e; font-size: 13px; line-height: 1.5; }
.public-body .rn-agenda-order-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  margin: 15px 0;
  border-top: 2px solid var(--primary);
  border-bottom: 1px solid #dce6df;
  padding: 16px 3px;
  font-weight: 730;
}
.public-body .rn-agenda-order-summary strong { font-size: clamp(22px,3.2vw,30px); color: var(--primary); }
.public-body .rn-agenda-image-previews { display: flex; flex-wrap: wrap; gap: 8px; margin: 3px 0 13px; }
.public-body .rn-agenda-image-previews img { width: 105px; height: 76px; object-fit: cover; border-radius: 4px; border: 1px solid #dce6df; }
.public-body .rn-agenda-image-previews p { font-size: 13px; color: #596d63; }
/* Featured agenda slider: real event photographs with readable text overlay. */
.public-body .rn-agenda-featured-slider {
  position: relative;
  isolation: isolate;
  width: 100%;
  overflow: hidden;
  margin: 8px 0 26px;
  border-radius: 8px;
  background: var(--secondary);
  box-shadow: 0 7px 28px rgba(13,40,30,.09);
}
.public-body .rn-agenda-slide[hidden],
.public-body .rn-event-photo-slide[hidden] { display: none !important; }
.public-body .rn-agenda-slide, .public-body .rn-agenda-slide-link { display: block; width: 100%; }
.public-body .rn-agenda-slide-link {
  position: relative;
  height: clamp(280px,43vw,465px);
  overflow: hidden;
  color: #fff;
  text-decoration: none;
}
.public-body .rn-agenda-slide-link > img { display: block; height: 100%; width: 100%; object-fit: cover; transition: transform .6s ease; }
.public-body .rn-agenda-slide-link:hover > img { transform: scale(1.02); }
.public-body .rn-agenda-slide-overlay {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
  justify-content: flex-end;
  inset: 0;
  padding: clamp(23px,5vw,54px);
  padding-right: min(120px,18%);
  background: linear-gradient(0deg,rgba(5,18,14,.91),rgba(5,18,14,.33) 60%,rgba(5,18,14,.06));
}
.public-body .rn-agenda-slide-overlay strong {
  max-width: 840px;
  color: #fff;
  line-height: 1.16;
  font-size: clamp(23px,3.6vw,40px);
  font-weight: 850;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.public-body .rn-agenda-slide-tag {
  display: inline-block;
  background: var(--primary);
  color: #fff;
  font-weight: 780;
  padding: 6px 10px;
  border-radius: 3px;
  font-size: 12px;
}
.public-body .rn-agenda-slide-venue { font-size: 13px; color: #ecf4ec; }
.public-body .rn-agenda-slide-date { font-size: 14px; font-weight: 690; color: #f6f9f6; }
.public-body .rn-agenda-slide-controls,
.public-body .rn-event-gallery-controls {
  display: flex;
  align-items: center;
  gap: 6px;
  position: absolute;
  right: 17px;
  bottom: 18px;
  z-index: 2;
  color: #fff;
  background: rgba(8,22,16,.8);
  padding: 4px 6px;
  border-radius: 99px;
}
.public-body [data-agenda-carousel] button[data-agenda-prev],
.public-body [data-agenda-carousel] button[data-agenda-next] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 35px;
  border: 0;
  border-radius: 100%;
  background: transparent;
  color: #fff;
  cursor: pointer;
  font-size: 28px;
  font-weight: 450;
  line-height: 1;
}
.public-body [data-agenda-carousel] button:hover,
.public-body [data-agenda-carousel] button:focus-visible { background: var(--primary); outline: 2px solid white; outline-offset: -2px; }
.public-body [data-agenda-counter] { font-size: 12px; min-width: 35px; text-align: center; }
/* Highlighted list items use each portal's --primary, not the sample site's yellow. */
.public-body .rn-agenda-row-featured { background: color-mix(in srgb, var(--primary) 10%, white); border-left: 5px solid var(--primary); }
.public-body .rn-agenda-row-featured .rn-agenda-badge { background: var(--primary); color: #fff; }
.public-body .rn-agenda-row-featured .rn-agenda-row-link:hover { background: color-mix(in srgb, var(--primary) 14%, white); }
.public-body .rn-agenda-row-has-photo { grid-template-columns: 88px minmax(0, 1fr) 150px 34px; }
.public-body .rn-agenda-row-photo { width: 150px; height: 100%; min-height: 110px; object-fit: cover; display: block; align-self: stretch; }
.public-body .rn-agenda-top-label {
  display: inline-flex;
  align-items: center;
  padding: 3px 7px;
  border-radius: 3px;
  background: var(--primary);
  color: #fff;
  font-size: 11px;
  font-weight: 780;
  margin: 0 0 5px;
}
/* Detail galleries retain the existing editorial page grid. */
.public-body .rn-event-photo-gallery { position: relative; margin: 20px 0 30px; border-radius: 7px; overflow: hidden; background: #14231a; }
.public-body .rn-event-photo-gallery .rn-event-hero { margin: 0; position: relative; }
.public-body .rn-event-photo-gallery .rn-event-hero img { display: block; width: 100%; max-height: 560px; aspect-ratio: 16 / 9; object-fit: cover; }
.public-body .rn-event-photo-gallery figcaption { padding: 8px 13px; background: #f6f8f7; color: #45594c; font-size: 12px; }
.public-body .rn-event-gallery-controls { right: 16px; bottom: 15px; }
.public-body .rn-event-photo-gallery:has(figcaption) .rn-event-gallery-controls { bottom: 47px; }
@media (max-width: 720px) {
  .public-body .rn-agenda-prices { grid-template-columns: 1fr; gap: 8px; }
  .public-body .rn-agenda-prices > div { padding: 12px 14px; }
  .public-body .rn-agenda-slide-link { height: 330px; }
  .public-body .rn-agenda-slide-overlay { padding: 20px 21px 68px; }
  .public-body .rn-agenda-slide-overlay strong { font-size: 24px; }
  .public-body .rn-agenda-row-has-photo { grid-template-columns: 72px minmax(0, 1fr) 30px; grid-template-rows: auto auto; }
  .public-body .rn-agenda-row-has-photo .rn-agenda-badge { grid-column: 1; grid-row: 1 / 3; }
  .public-body .rn-agenda-row-has-photo .rn-agenda-row-content { grid-column: 2; grid-row: 1; padding: 13px 12px; }
  .public-body .rn-agenda-row-has-photo .rn-agenda-row-photo { grid-column: 2; grid-row: 2; width: 100%; height: 135px; min-height: 0; margin: 0 0 12px; }
  .public-body .rn-agenda-row-has-photo .rn-agenda-arrow { grid-column: 3; grid-row: 1 / 3; }
}
@media (prefers-reduced-motion: reduce) {
  .public-body .rn-agenda-slide-link > img { transition: none; }
  .public-body .rn-agenda-slide-link:hover > img { transform: none; }
}

/* Event editor: compact gallery management without changing public branding. */
.rn-agenda-admin-gallery { display: flex; flex-wrap: wrap; gap: 12px; padding: 9px 0; }
.rn-agenda-admin-image { width: 120px; display: grid; gap: 5px; font-size: 12px; }
.rn-agenda-admin-image img { display: block; width: 120px; height: 88px; object-fit: cover; border-radius: 4px; }
.rn-agenda-admin-image span { display: flex; align-items: center; gap: 5px; }
