/* PatRunning Events front end. Colours by type: run / free / trail (§12 ข้อ 16). */
.pr-events, .pr-event-box, .pr-submit { --pr-run: #4bb5d8; --pr-free: #2e9e5b; --pr-trail: #a0612b; --pr-line: #e5e7eb; }
.pr-type-run { --pr-c: var(--pr-run); }
.pr-type-free { --pr-c: var(--pr-free); }
.pr-type-trail { --pr-c: var(--pr-trail); }
.pr-nav { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between; margin: 12px 0; }
.pr-nav__label { font-weight: 600; }
.pr-jumper { display: flex; gap: 6px; flex-basis: 100%; justify-content: center; }
.pr-filter { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 12px 0; padding: 10px; border: 1px solid var(--pr-line); border-radius: 8px; }
.pr-filter__q { flex: 1 1 220px; }
.pr-filter__q input { width: 100%; box-sizing: border-box; }
.pr-filter select { max-width: 100%; }
.pr-filter__clear { font-size: .9em; }
.pr-month__title, .pr-day__title { margin: 24px 0 8px; padding: 8px 12px; background: #f3f4f6; border-radius: 6px; font-size: 1.15em; }
.pr-month__title small, .pr-day__title small { font-weight: 400; opacity: .7; }
.pr-list { list-style: none; margin: 0; padding: 0; }
.pr-ev { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid var(--pr-line); }
.pr-ev__date { flex: 0 0 64px; text-align: center; color: #fff; background: var(--pr-c, var(--pr-run)); border-radius: 6px; padding: 6px 2px; line-height: 1.2; }
.pr-ev__d { display: block; font-size: 1.5em; font-weight: 700; }
.pr-ev__m, .pr-ev__to { display: block; font-size: .8em; }
.pr-ev__img img { width: 72px; height: 72px; object-fit: cover; border-radius: 6px; }
.pr-ev__body { flex: 1 1 auto; min-width: 0; }
.pr-ev__title { margin: 0 0 2px; font-size: 1em; line-height: 1.4; }
.pr-events .pr-ev p, .pr-events .pr-ev h3 { margin: 0; }
.pr-ev__where, .pr-ev__meta { margin: 0; font-size: .9em; color: #4b5563; }
.pr-ev__meta span { margin-right: 12px; }
.pr-ev__meta i { font-style: normal; color: #6b7280; }
.pr-ev__cta, .pr-button { flex: 0 0 auto; align-self: center; padding: 4px 12px; border-radius: 999px; background: var(--pr-c, var(--pr-run)); color: #fff !important; text-decoration: none; font-size: .9em; white-space: nowrap; }
.pr-empty { color: #6b7280; padding: 8px 0; }
/* status badge computed from the dates (P1 ข้อ 4): list/box = coloured chip, week card = white chip on the tile */
.pr-status { display: inline-block; padding: 1px 9px; border-radius: 999px; font-size: .78em; font-weight: 700; line-height: 1.6; vertical-align: middle; background: #e5e7eb; color: #374151; }
.pr-status.is-today, .pr-status.is-ongoing { background: #dc2626; color: #fff; }
.pr-status.is-week { background: #f59e0b; color: #111; }
.pr-status.is-soon { background: #dbeafe; color: #1e3a8a; }
.pr-status.is-past { background: #e5e7eb; color: #6b7280; }
.pr-ev__where .pr-status { margin-right: 4px; }
.pr-event-box__status { margin: 0 0 8px; }
.pr-card .pr-status { margin-right: 2px; }
.pr-event-box { border: 1px solid var(--pr-line); border-left: 6px solid var(--pr-c, var(--pr-run)); border-radius: 8px; padding: 16px; margin: 0 0 24px; }
.pr-event-box__summary { margin: 0 0 12px; }
.pr-event-box__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px 16px; margin: 0; }
.pr-event-box__facts div { margin: 0; }
.pr-event-box__facts dt { font-size: .85em; color: #6b7280; }
.pr-event-box__facts dd { margin: 0; font-weight: 600; }
.pr-event-box__cta { margin: 16px 0 0; }
.pr-event-box__note { margin: 6px 0 0; font-size: .85em; opacity: .75; }
.pr-card__cta { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.pr-event-box__cal { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin: 12px 0 0; font-size: .9em; }
.pr-event-box__cal span { color: #6b7280; }
.pr-event-box__cal a { text-decoration: underline; }
.pr-button { display: inline-block; padding: 8px 20px; font-size: 1em; }
@media (max-width: 600px) { .pr-ev { flex-wrap: wrap; } .pr-ev__cta { margin-left: 76px; } .pr-ev__img { display: none; } }
/* month grid [add_eventon_fc] */
.pr-grid { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: .85em; }
.pr-grid th { padding: 6px 2px; background: #f3f4f6; color: #374151; text-align: center; }
.pr-grid td { vertical-align: top; border: 1px solid var(--pr-line); padding: 4px; height: 90px; overflow: hidden; }
.pr-grid__pad { background: #fafafa; }
.pr-grid__num { display: block; font-weight: 700; }
.pr-grid .is-today { background: #fff7ed; }
.pr-events ul.pr-grid__list, .pr-events ul.pr-list { list-style: none; margin: 0; padding: 0; }
.pr-events ul.pr-grid__list > li, .pr-events ul.pr-list > li { list-style: none; margin-left: 0; }
.pr-events ul.pr-grid__list > li::before, .pr-events ul.pr-list > li::before { content: none; }
.pr-grid__list li { margin: 2px 0; padding-left: 4px; border-left: 3px solid var(--pr-c, var(--pr-run)); line-height: 1.3; overflow-wrap: anywhere; }
.pr-grid__more summary { cursor: pointer; color: #6b7280; }
@media (max-width: 600px) { .pr-grid td { height: auto; font-size: .8em; } .pr-grid__list li a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } }
/* sidebar widget */
.pr-mini { width: 100%; border-collapse: collapse; text-align: center; font-size: .9em; }
.pr-mini caption { font-weight: 700; padding: 4px 0; }
.pr-mini th, .pr-mini td { padding: 4px 0; color: inherit; background: none; }
.pr-mini .has-events a, .pr-mini .has-events span { display: inline-block; min-width: 1.8em; border-radius: 50%; background: var(--pr-run); color: #fff; text-decoration: none; }
.pr-mini .is-today { outline: 2px solid #f59e0b; outline-offset: -2px; }
.pr-widget__more { text-align: right; margin: 6px 0 0; }
/* submission form [add_evo_submission_form] */
.pr-submit { max-width: 720px; margin: 0 0 32px; }
.pr-submit__title { margin: 0 0 4px; }
.pr-submit__sub, .pr-submit__note { color: #6b7280; margin: 0 0 16px; }
.pr-submit__group { border: 1px solid var(--pr-line, #e5e7eb); border-radius: 8px; padding: 12px 16px 4px; margin: 0 0 16px; }
.pr-submit__group legend { font-weight: 700; padding: 0 6px; }
.pr-submit p { margin: 0 0 12px; }
.pr-submit label { display: block; font-weight: 600; margin: 0 0 4px; }
.pr-submit input[type=text], .pr-submit input[type=email], .pr-submit input[type=url], .pr-submit input[type=date], .pr-submit select, .pr-submit textarea { width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid #d1d5db; border-radius: 6px; font: inherit; background: #fff; color: #111827; }
.pr-submit__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pr-req { color: #dc2626; }
.pr-submit__errors { border: 1px solid #fca5a5; background: #fef2f2; color: #991b1b; border-radius: 8px; padding: 10px 16px; margin: 0 0 16px; }
.pr-submit__errors p, .pr-submit__errors ul { margin: 0; }
.pr-submit__send { border: 0; cursor: pointer; padding: 10px 28px; }
.pr-submit .cf-turnstile { margin: 0 0 12px; }
.pr-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pr-submit--done { border: 1px solid #86efac; background: #f0fdf4; border-radius: 8px; padding: 16px; }
@media (max-width: 600px) { .pr-submit__cols { grid-template-columns: 1fr; } }
/* week view [add_eventon_wv] — EventON weekly look: week picker, 7 day tiles, coloured cards */
.pr-events { --pr-wv-tile: #f3f4f6; --pr-wv-tile-ink: #374151; --pr-wv-chip: #fff; --pr-today: #f87171; }
body[data-theme="dark"] .pr-events { --pr-wv-tile: #1f2937; --pr-wv-tile-ink: #e5e7eb; --pr-wv-chip: #111827; }
.pr-wv__nav { display: flex; align-items: center; gap: 8px; margin: 8px 0 12px; flex-wrap: wrap; }
.pr-wv__arrow { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid #d1d5db; border-radius: 50%; color: var(--pr-wv-tile-ink) !important; text-decoration: none !important; font-size: 1.3em; line-height: 1; transition: background .15s, border-color .15s; }
.pr-wv__arrow:hover, .pr-wv__arrow:focus-visible { background: var(--pr-run); border-color: var(--pr-run); color: #fff !important; }
.pr-wv__range { padding: 6px 16px; border-radius: 999px; background: var(--pr-wv-tile); color: var(--pr-wv-tile-ink); font-weight: 700; }
.pr-wv__now { margin-left: auto; padding: 6px 14px; border-radius: 999px; background: var(--pr-run); color: #fff !important; text-decoration: none !important; font-size: .9em; }
.pr-wv__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; margin: 0 0 12px; }
.pr-wv__day { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 2px 8px; border-radius: 14px; background: var(--pr-wv-tile); color: var(--pr-wv-tile-ink) !important; text-decoration: none !important; border: 2px solid transparent; transition: transform .15s, box-shadow .15s, border-color .15s; -webkit-tap-highlight-color: transparent; }
.pr-wv__day:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.08); }
.pr-wv__day:focus-visible { outline: 3px solid var(--pr-run); outline-offset: 2px; }
.pr-wv__dow { font-size: .8em; opacity: .8; white-space: nowrap; }
.pr-wv__num { display: flex; align-items: center; justify-content: center; min-width: 2.2em; height: 2.2em; padding: 0 4px; border-radius: 10px; background: var(--pr-wv-chip); font-size: 1.35em; font-weight: 800; line-height: 1; }
.pr-wv__count { font-size: .72em; font-weight: 600; color: var(--pr-run); white-space: nowrap; }
.pr-wv__day.is-empty .pr-wv__count { color: inherit; opacity: .4; }
.pr-wv__day.is-today .pr-wv__dow { color: var(--pr-today); font-weight: 700; opacity: 1; }
.pr-wv__day.is-today .pr-wv__num { background: var(--pr-today); color: #fff; }
.pr-wv__day.is-selected { border-color: var(--pr-run); background: var(--pr-run); color: #fff !important; }
.pr-wv__day.is-selected .pr-wv__count, .pr-wv__day.is-selected .pr-wv__dow { color: #fff; opacity: 1; }
.pr-wv__day.is-selected .pr-wv__num { background: #fff; color: #0f6f91; }
.pr-wv__status { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; font-weight: 600; color: var(--pr-wv-tile-ink); }
.pr-wv__all { font-weight: 400; font-size: .9em; }
.pr-wv__all[hidden], .pr-wv__none[hidden], .pr-card[hidden] { display: none !important; }
.pr-events ul.pr-wv__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pr-events ul.pr-wv__list > li { list-style: none; margin: 0; }
.pr-events ul.pr-wv__list > li::before { content: none; }
/* cards (P2 ข้อ 7): white card, date tile in the type colour; the type also shows as a tag */
.pr-card { --pr-c: var(--pr-run); position: relative; display: flex; gap: 14px; padding: 12px 16px; border: 1px solid var(--pr-line); border-radius: 12px; background: #fff; color: #111827; box-shadow: 0 1px 3px rgba(0,0,0,.06); transition: transform .15s, box-shadow .15s, border-color .15s; }
.pr-card:hover, .pr-card:focus-within { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.12); border-color: var(--pr-c); }
.pr-card__date { flex: 0 0 64px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; line-height: 1; padding: 8px 4px; border-radius: 10px; background: var(--pr-c); color: #fff; align-self: flex-start; }
.pr-card__d { font-size: 1.9em; font-weight: 700; letter-spacing: -.02em; }
.pr-card__to { margin-top: 5px; padding: 2px 6px; border-radius: 6px; background: rgba(255,255,255,.25); font-size: .72em; font-weight: 600; white-space: nowrap; }
.pr-card__m { font-size: .8em; margin-top: 4px; opacity: .95; }
.pr-card__body { flex: 1 1 auto; min-width: 0; }
.pr-events .pr-card h3.pr-card__title { margin: 2px 0 4px; font-size: 1.05em; font-weight: 700; line-height: 1.35; }
.pr-card__link, .pr-card__link:hover { color: #111827 !important; text-decoration: none !important; }
.pr-card__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.pr-card__link:focus-visible { outline: none; }
.pr-card:has(.pr-card__link:focus-visible) { outline: 3px solid var(--pr-c); outline-offset: 2px; }
.pr-events .pr-card p.pr-card__meta { margin: 0 0 6px; font-size: .92em; color: #4b5563; overflow-wrap: anywhere; }
.pr-card__prov { font-weight: 700; color: #111827; }
.pr-card__prov + .pr-card__venue::before, .pr-status + .pr-card__venue::before { content: "· "; color: #9ca3af; }
.pr-events .pr-card p.pr-card__dist { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 6px; }
.pr-chip { display: inline-block; padding: 1px 9px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--pr-c) 45%, #fff); background: color-mix(in srgb, var(--pr-c) 10%, #fff); color: #1f2937; font-size: .78em; font-weight: 600; line-height: 1.7; }
.pr-card__facts { margin: 0; display: grid; gap: 2px; font-size: .84em; color: #4b5563; }
.pr-card__facts div { display: flex; gap: 8px; margin: 0; }
.pr-card__facts dt { flex: 0 0 auto; font-style: italic; opacity: .8; font-weight: 400; }
.pr-card__facts dd { margin: 0; overflow-wrap: anywhere; }
.pr-card__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }
.pr-card__tag { padding: 2px 10px; border-radius: 999px; background: #f3f4f6; color: #374151; font-size: .78em; }
.pr-card__tag.is-free { background: var(--pr-free); color: #fff; font-weight: 700; }
.pr-card__tag.is-trail { background: var(--pr-trail); color: #fff; font-weight: 700; }
.pr-card__cta { position: relative; z-index: 1; margin-left: auto; padding: 5px 14px; border-radius: 999px; background: var(--pr-c); color: #fff !important; font-size: .85em; font-weight: 700; text-decoration: none !important; white-space: nowrap; }
.pr-card__cta:hover, .pr-card__cta:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--pr-c) 35%, #fff); }
/* day headings inside the card list (P2 ข้อ 8) */
.pr-events ul.pr-wv__list > li.pr-day { margin-top: 10px; }
.pr-events ul.pr-wv__list > li.pr-day:first-child { margin-top: 0; }
.pr-events .pr-day__title { margin: 0; padding: 6px 12px; background: #f3f4f6; border-radius: 6px; font-size: 1em; font-weight: 700; }
.pr-events .pr-day__title small { font-weight: 400; opacity: .7; }
.pr-day[hidden] { display: none !important; }
/* filter chips with counts (P2 ข้อ 6) */
.pr-chips { display: grid; gap: 6px; margin: 0 0 12px; }
.pr-chips__row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.pr-chip-link { display: inline-block; padding: 3px 12px; border-radius: 999px; border: 1px solid #d1d5db; background: #fff; color: #374151 !important; text-decoration: none !important; font-size: .85em; line-height: 1.6; white-space: nowrap; }
.pr-chip-link b { font-weight: 700; opacity: .75; }
.pr-chip-link:hover, .pr-chip-link:focus-visible { border-color: var(--pr-run); color: #0f6f91 !important; }
.pr-chip-link.is-current { background: #111827; border-color: #111827; color: #fff !important; }
.pr-chip-link.is-current b { opacity: .85; }
.pr-chips__more { font-size: .8em; color: #6b7280; white-space: nowrap; flex: none; }
@media (max-width: 600px) { .pr-chips__row { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; } .pr-chips__row::-webkit-scrollbar { display: none; } }
@media (max-width: 600px) {
  .pr-wv__days { gap: 4px; }
  .pr-wv__day { padding: 8px 0 6px; border-radius: 10px; }
  .pr-wv__num { min-width: 1.9em; height: 1.9em; font-size: 1.1em; border-radius: 8px; }
  .pr-wv__count { font-size: .62em; }
  .pr-wv__dow { font-size: .7em; }
  .pr-card { gap: 10px; padding: 10px 12px; }
  .pr-card__date { flex-basis: 54px; }
  .pr-card__d { font-size: 1.5em; }
  .pr-card__date { flex: 0 0 auto; flex-direction: row; align-items: baseline; gap: 6px; }
  .pr-card__d { font-size: 1.7em; }
  .pr-card__m { margin: 0; font-size: .95em; }
  .pr-card__to { margin: 0; }
  .pr-card__facts div { flex-wrap: wrap; column-gap: 6px; row-gap: 0; }
  .pr-card__cta { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) { .pr-wv__day, .pr-card { transition: none; } .pr-wv__day:hover, .pr-card:hover { transform: none; } }
.pr-tools { margin: 0 0 8px; }
.pr-tools > summary { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 999px; background: var(--pr-wv-tile); color: var(--pr-wv-tile-ink); font-size: .9em; cursor: pointer; list-style: none; }
.pr-tools > summary::-webkit-details-marker { display: none; }
.pr-tools > summary::before { content: "⌕"; font-size: 1.2em; line-height: 1; }
.pr-tools[open] > summary { margin-bottom: 4px; }
/* month views [add_eventon_el] [add_eventon] [add_eventon_list]: same cards as the week view */
.pr-events .pr-card.pr-ev { border-bottom: 0; align-items: stretch; flex-wrap: nowrap; }
.pr-month__head { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; margin: 24px 0 12px; }
.pr-events .pr-month__head .pr-month__title { margin: 0; padding: 0; background: none; border-radius: 0; font-size: 1.5em; font-weight: 700; line-height: 1.2; }
.pr-view-month .pr-month__head .pr-month__title { font-size: 2.1em; font-weight: 500; }
.pr-month__head .pr-month__title small { font-size: .5em; font-weight: 400; opacity: .6; }
.pr-arrows { display: inline-flex; gap: 6px; }
.pr-arrow { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid #d1d5db; border-radius: 50%; color: var(--pr-wv-tile-ink) !important; text-decoration: none !important; font-size: 1.3em; line-height: 1; transition: background .15s, border-color .15s; }
.pr-arrow:hover, .pr-arrow:focus-visible { background: var(--pr-run); border-color: var(--pr-run); color: #fff !important; }
.pr-pills { margin: 8px 0 0; }
.pr-pills__row { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.pr-pill { padding: 5px 12px; border-radius: 8px; background: var(--pr-wv-tile); color: var(--pr-wv-tile-ink) !important; font-size: .88em; font-weight: 600; text-decoration: none !important; transition: background .15s; }
.pr-pill:hover, .pr-pill:focus-visible { background: #e5e7eb; }
body[data-theme="dark"] .pr-pill:hover { background: #374151; }
.pr-pill.is-current { background: #fcd68a; color: #5b3d00 !important; }
.pr-events .pr-nav { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.pr-events .pr-nav .pr-nav__label { order: 0; padding: 6px 16px; border-radius: 999px; background: var(--pr-wv-tile); color: var(--pr-wv-tile-ink); font-weight: 700; }
.pr-events .pr-nav .pr-nav__prev, .pr-events .pr-nav .pr-nav__next { padding: 6px 14px; border: 1px solid #d1d5db; border-radius: 999px; color: var(--pr-wv-tile-ink) !important; text-decoration: none !important; font-size: .9em; white-space: nowrap; transition: background .15s, border-color .15s; }
.pr-events .pr-nav .pr-nav__prev { order: -1; }
.pr-events .pr-nav .pr-nav__next { order: 1; }
.pr-events .pr-nav .pr-nav__prev:hover, .pr-events .pr-nav .pr-nav__next:hover { background: var(--pr-run); border-color: var(--pr-run); color: #fff !important; }
@media (max-width: 600px) {
  .pr-view-month .pr-month__head .pr-month__title { font-size: 1.6em; }
  .pr-pill { padding: 4px 9px; font-size: .8em; }
  .pr-events .pr-nav { justify-content: space-between; }
  .pr-events .pr-nav .pr-nav__label { order: -2; flex-basis: 100%; text-align: center; }
}
/* the team's red <font> notes in titles: their own colour, bold, like EventON showed them */
.pr-card__title font, .pr-card__title span[style*="color"] { font-weight: 800; }
/* list pages (848, 22495, 22594): month heading bold and dark like EventON's */
.pr-events:not(.pr-view-month) .pr-month__head .pr-month__title { font-size: 1.45em; font-weight: 700; color: #111827; }
body[data-theme="dark"] .pr-events:not(.pr-view-month) .pr-month__head .pr-month__title { color: #f3f4f6; }
/* card text like EventON (HANDOFF §30.18): same font, the browser bolds the title (the theme forces headings to 400) */
.pr-events .pr-card h3.pr-card__title, .pr-events .pr-card h3.pr-card__title a { font-size: 1em !important; font-weight: 800 !important; letter-spacing: 0; }
.pr-events .pr-card p.pr-card__venue { text-transform: uppercase; font-size: 1.05em; }
.pr-events .pr-card .pr-card__date { display: grid; grid-template-columns: auto auto; justify-content: start; align-items: start; column-gap: 2px; text-align: left; line-height: 1; }
.pr-events .pr-card .pr-card__d { grid-column: 1; grid-row: 1; font-size: 1.85em; font-weight: 400; letter-spacing: 0; }
.pr-events .pr-card .pr-card__to { grid-column: 2; grid-row: 1; display: flex; flex-direction: column; align-items: center; margin: 0; padding: .1em 0 0; background: none; border-radius: 0; font-size: .86em; font-weight: 400; }
.pr-events .pr-card .pr-card__to small { font-size: .62em; margin-top: 1px; }
.pr-events .pr-card .pr-card__m { grid-column: 1; grid-row: 2; margin: 3px 0 0; font-size: .68em; opacity: 1; }
.pr-card__facts div { display: block; }
.pr-card__facts dt, .pr-card__facts dd { display: inline; }
.pr-card__facts dt { margin-right: 8px; }
@media (max-width: 600px) {
  .pr-events .pr-card .pr-card__date { flex: none; margin-bottom: 2px; }
  .pr-events .pr-card .pr-card__d { font-size: 1.85em; }
}
.pr-events .pr-card .pr-card__date { align-self: flex-start; align-content: start; }
/* P3: price table, directions link, previous editions, organizer CTA */
/* Same look as the other facts (dt): small grey label; .pr-event-box prefix beats the theme's h2/table rules. */
.pr-event-box .pr-event-box__h { margin: 14px 0 6px; font-size: .85em; font-weight: 400; line-height: 1.4; color: #6b7280; }
.pr-event-box .pr-event-box__prices thead, .pr-event-box .pr-event-box__prices thead th { background: none; color: #6b7280; }
.pr-event-box .pr-event-box__prices th, .pr-event-box .pr-event-box__prices td { border: 0; border-bottom: 1px solid var(--pr-line); background: none; }
.pr-event-box__prices table { width: auto; min-width: 60%; border-collapse: collapse; margin: 0; font-size: .95em; }
.pr-event-box__prices th, .pr-event-box__prices td { padding: 6px 14px 6px 0; border-bottom: 1px solid var(--pr-line); text-align: left; vertical-align: top; }
.pr-event-box__prices th { font-size: .85em; color: #6b7280; font-weight: 600; }
.pr-event-box__prices td.is-on { font-weight: 700; }
.pr-event-box__prices td.is-off { color: #9ca3af; text-decoration: line-through; }
.pr-event-box__prices td small { display: block; font-size: .8em; text-decoration: none; color: #6b7280; }
.pr-event-box__map { font-weight: 600; }
.pr-chip.has-price { font-weight: 700; }
.pr-event-history { margin: 0 0 24px; }
.pr-event-history ul { margin: 0; padding: 0 0 0 1.2em; }
.pr-event-history li { margin: 0 0 4px; }
.pr-event-history__when { color: #4b5563; font-size: .9em; margin-left: 4px; }
.pr-event-history__where { color: #9ca3af; font-size: .85em; }
.pr-cta { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; justify-content: space-between; margin: 16px 0 8px; padding: 14px 18px; border-radius: 12px; background: #f3f4f6; }
.pr-cta p { margin: 0; color: #374151; }
.pr-cta__btn { display: inline-block; padding: 8px 18px; border-radius: 999px; background: #111827; color: #fff !important; font-weight: 700; text-decoration: none !important; white-space: nowrap; }
.pr-cta__btn:hover { background: #0f6f91; }

/* ---------- Event card of the redesigned theme (Card.php, design/phase0). Colours come from the theme's pr.css
   tokens; the fallbacks keep the card readable under the old theme (light, and dark via body[data-theme]). ---------- */
body[data-theme="dark"] { --surface: #131e1f; --surface-2: #1a2829; --ink: #e6eeee; --muted: #a3b2b4; --faint: #7f9092; --line: #263738; --brand-soft: #0f3334; --brand-ink: #4fe0e0; --btn: #00c8c8; --on-btn: #032a2b; --accent-soft: #3a2a0a; --accent-ink: #ffc65c; }
.pr-cards { display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); margin: 0; }
@media (min-width: 760px) { .pr-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } .pr-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (min-width: 1080px) { .pr-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pr-card { position: relative; container-type: inline-size; display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 12px; padding: 12px; background: var(--surface, #fff); color: var(--ink, #12191a); border-radius: var(--radius, 14px); box-shadow: var(--shadow, 0 1px 2px rgb(16 32 33 / .06), 0 4px 16px rgb(16 32 33 / .06)); }
@media (min-width: 560px) { .pr-card { grid-template-columns: 112px minmax(0, 1fr); gap: 16px; padding: 14px; } }
.pr-card__media { position: relative; aspect-ratio: 3 / 4; border-radius: var(--radius-sm, 9px); overflow: hidden; background: var(--surface-2, #eef2f2); align-self: start; }
.pr-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; }
.pr-card__datetag { position: absolute; left: 6px; top: 6px; background: var(--surface, #fff); color: var(--ink, #12191a); border-radius: 6px; padding: 2px 6px; font-size: .74rem; font-weight: 600; line-height: 1.3; }
.pr-date { display: grid; place-content: center; text-align: center; height: 100%; background: var(--brand-soft, #e3f8f8); color: var(--brand-ink, #00716f); line-height: 1.1; }
.pr-date__d { font: 600 2rem/1 var(--font-head, inherit); }
.pr-date__m { font-weight: 600; font-size: .9rem; margin-top: 4px; }
.pr-date__w { font-size: .78rem; color: var(--muted, #56636a); margin-top: 2px; }
.pr-card__body { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.pr-card__title { font: 600 1.02rem/1.35 var(--font, inherit); margin: 0; padding: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pr-card__title a { color: var(--ink, #12191a); text-decoration: none; }
.pr-card__title a::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius, 14px); }
.pr-card__title a:hover { color: var(--brand-ink, #00716f); }
.pr-card__meta { font-size: .9rem; color: var(--muted, #56636a); display: flex; flex-wrap: wrap; column-gap: 6px; line-height: 1.45; }
.pr-card__meta strong { color: var(--ink, #12191a); font-weight: 600; }
.pr-card__venue { color: var(--faint, #66737a); }
.pr-card__row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.pr-chip-sm { display: inline-flex; align-items: center; min-height: 26px; padding: 0 9px; border-radius: 999px; font-size: .8rem; font-weight: 600; background: var(--brand-soft, #e3f8f8); color: var(--brand-ink, #00716f); max-width: 100%; padding-block: 2px; line-height: 1.3; }
.pr-badge { display: inline-flex; align-items: center; min-height: 24px; padding: 0 9px; border-radius: 6px; font-size: .8rem; font-weight: 600; background: var(--surface-2, #eef2f2); color: var(--muted, #56636a); white-space: nowrap; }
.pr-badge.is-today, .pr-badge.is-ongoing { background: var(--accent, #ffb020); color: var(--on-accent, #2b1a00); }
.pr-badge.is-week { background: var(--accent-soft, #fff3d6); color: var(--accent-ink, #8a5300); }
.pr-badge.is-free { background: var(--brand-soft, #e3f8f8); color: var(--brand-ink, #00716f); }
.pr-badge.is-past { background: transparent; color: var(--muted, #56636a); box-shadow: inset 0 0 0 1px var(--line, #dfe5e6); }
.pr-card.is-past .pr-card__media img { filter: grayscale(.7); opacity: .8; }
.pr-card__cta { position: relative; z-index: 1; margin-top: auto; padding-top: 4px; }
.pr-card__cta .pr-btn { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.pr-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 40px; padding: 0 14px; border: 0; border-radius: 999px; background: var(--btn, #0f2a2b); color: var(--on-btn, #fff); font-weight: 600; font-size: .9rem; line-height: 1.2; text-decoration: none; white-space: nowrap; cursor: pointer; }
.pr-btn:hover { filter: brightness(1.12); color: var(--on-btn, #fff); }
.pr-btn--ghost { background: transparent; color: var(--ink, #12191a); box-shadow: inset 0 0 0 1.5px var(--line, #dfe5e6); }
.pr-card--compact { grid-template-columns: 72px minmax(0, 1fr); }
.pr-card .wm::after { content: "PATRUNNING"; position: absolute; left: 4px; bottom: 4px; z-index: 1; pointer-events: none; font: 600 .5rem/1 var(--font-head, inherit); letter-spacing: .02em; color: #fff; padding: 2px 4px; border-radius: 4px; background: rgb(0 0 0 / .28); text-shadow: 0 1px 2px rgb(0 0 0 / .5); }
@container (min-width: 380px) { .pr-card .wm::after { font-size: .56rem; } }
