/* GoPride calendar widget v1.00; scoped to avoid changes to global templates. */
.gpc_cal {
  --gpc-cal-accent: #c82257;
  --gpc-cal-surface: var(--bs-body-bg, #fff);
  --gpc-cal-text: var(--bs-body-color, #171717);
  --gpc-cal-muted: var(--bs-secondary-color, #626262);
  --gpc-cal-border: var(--bs-border-color, #dedede);
  --gpc-cal-soft: var(--bs-tertiary-bg, #efefef);
  width: 100%; min-width: 0; padding: 16px;
  border-top: 4px solid var(--gpc-cal-accent);
  background: var(--gpc-cal-surface); color: var(--gpc-cal-text);
  box-shadow: 0 3px 13px rgb(0 0 0 / 8%);
  font-family: inherit; line-height: 1.4;
}
.gpc_cal, .gpc_cal * { box-sizing: border-box; }
.gpc_cal [hidden] { display: none !important; }
.gpc_cal-title {
  margin: 0 0 14px; color: inherit; font-family: inherit;
  font-size: 1.0625rem; font-weight: 800; line-height: 1.25;
  text-transform: uppercase; letter-spacing: .04em;
}
.gpc_cal-dates { display: flex; gap: 9px; overflow-x: auto; padding: 3px 3px 8px; scrollbar-width: thin; }
.gpc_cal .gpc_cal-date {
  display: flex; flex: 1 0 44px; flex-direction: column; align-items: center; justify-content: center;
  min-width: 44px; min-height: 66px; padding: 6px 4px;
  border: 1px solid var(--gpc-cal-accent); border-radius: 3px;
  color: var(--gpc-cal-accent); background: var(--gpc-cal-surface);
  font: inherit; text-decoration: none; cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
.gpc_cal .gpc_cal-date:hover { box-shadow: inset 0 0 0 1px var(--gpc-cal-accent); }
.gpc_cal .gpc_cal-date[aria-pressed="true"] { background: var(--gpc-cal-accent); color: #fff; box-shadow: inset 0 -3px 0 rgb(0 0 0 / 25%); }
.gpc_cal-weekday { font-size: .625rem; font-weight: 800; line-height: 1.5; letter-spacing: .07em; }
.gpc_cal-number { font-size: 1.75rem; font-weight: 400; line-height: 1.1; font-variant-numeric: tabular-nums; }
.gpc_cal-range { margin: 2px 0 10px; color: var(--gpc-cal-muted); font-size: .75rem; line-height: 1.4; }
.gpc_cal-scroll {
  height: var(--gpc-cal-height, 350px); overflow-y: auto; overflow-x: hidden;
  scrollbar-width: thin; scrollbar-color: #888 var(--gpc-cal-soft);
  scrollbar-gutter: stable; padding: 0 4px 0 0;
}
.gpc_cal-day { scroll-margin-top: 4px; }
.gpc_cal-day-title { margin: 0 0 5px; padding: 8px 10px; background: #333; color: #fff; font-size: .8125rem; font-weight: 700; line-height: 1.35; }
.gpc_cal-time { margin: 0 0 5px; padding: 6px 9px; color: var(--gpc-cal-text); background: var(--gpc-cal-soft); background-color:#d7d7d7; font-size: .8125rem; font-weight: 600; }
.gpc_cal .gpc_cal-event {
  display: grid; grid-template-columns: minmax(0, 1fr); position: relative; isolation: isolate;
  min-height: 110px; margin: 0 0 10px; overflow: hidden;
  border-bottom: 2px solid var(--gpc-cal-accent); border-radius: 2px;
  background: var(--gpc-cal-accent); color: #fff; text-decoration: none;
}
.gpc_cal-photo { grid-area: 1 / 1; width: 100%; height: 100%; min-height: 110px; object-fit: cover; object-position: center 25%; align-self: stretch; transition: transform .2s ease; }
.gpc_cal-caption {
  grid-area: 1 / 1; align-self: end; z-index: 1; display: block;
  padding: 9px; margin-top: 25px; background: rgb(200 34 87 / 70%); color: #fff;
  overflow-wrap: anywhere;
}
.gpc_cal-event-name { display: block; font-size: .9375rem; font-weight: 700; line-height: 1.3; }
.gpc_cal-venue { display: block; margin-top: 3px; color: #fff; font-size: .75rem; line-height: 1.35; }
.gpc_cal-event:hover .gpc_cal-event-name { text-decoration: underline; text-underline-offset: 3px; }
.gpc_cal-event:hover .gpc_cal-photo { transform: scale(1.025); }
.gpc_cal-empty, .gpc_cal-more { margin: 0 0 10px; padding: 14px 9px; color: var(--gpc-cal-text); background: var(--gpc-cal-soft); font-size: .875rem; }
.gpc_cal-more a { color: inherit; text-decoration: underline; }
.gpc_cal .gpc_cal-cta { display: block; margin-top: 12px; padding: 10px 12px; border: 1px solid #111; border-radius: 5px; background: #111; color: #fff; text-align: center; text-decoration: none; font-size: .9375rem; font-weight: 700; line-height: 1.4; text-transform: none; }
.gpc_cal .gpc_cal-cta:hover { background: var(--gpc-cal-accent); border-color: var(--gpc-cal-accent); color: #fff; }
.gpc_cal :is(a, button, [tabindex]):focus-visible { outline: 3px solid var(--gpc-cal-accent); outline-offset: 2px; }
.gpc_cal .gpc_cal-event:focus-visible { outline-offset: -3px; outline-color: #fff; box-shadow: inset 0 0 0 5px #000; }
.gpc_cal-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
[data-bs-theme="dark"] .gpc_cal { --gpc-cal-accent: #c82257; }
[data-bs-theme="dark"] .gpc_cal-date:not([aria-pressed="true"]) { color: #fff; }
@media (prefers-reduced-motion: reduce) { .gpc_cal *, .gpc_cal *::before, .gpc_cal *::after { transition: none !important; scroll-behavior: auto !important; } }
@media (forced-colors: active) { .gpc_cal .gpc_cal-date[aria-pressed="true"] { outline: 3px solid Highlight; outline-offset: -4px; } .gpc_cal .gpc_cal-event { border: 1px solid LinkText; } }

/* v1.02: optional overlay controls; full-width list and native scrollbar remain. */
.gpc_cal-scroll-frame { position:relative; min-width:0; }
.gpc_cal-scroll-controls {
  position:absolute; z-index:3; right:-12px; top:50%; transform:translateY(-50%);
  display:flex; flex-direction:column; gap:6px; pointer-events:none;
  /*** height:100%; top: 105px; ***/
}
.gpc_cal .gpc_cal-scroll-arrow {
  display:flex; align-items:center; justify-content:center; flex:none;
  width:34px; height:34px; min-width:34px; padding:0; pointer-events:auto;
  border:1px solid var(--gpc-cal-accent); border-radius:50%;
  background:var(--gpc-cal-accent); color:#fff; cursor:pointer;
  box-shadow:0 1px 5px rgb(0 0 0 / 25%);
}
.gpc_cal .gpc_cal-scroll-arrow:hover:not(:disabled) { filter:brightness(.88); }
.gpc_cal .gpc_cal-scroll-arrow:disabled { background:var(--gpc-cal-soft); color:var(--gpc-cal-muted); border-color:var(--gpc-cal-border); cursor:default; }
@media (forced-colors:active) {
  .gpc_cal .gpc_cal-scroll-arrow { border-color:ButtonText; }
  .gpc_cal .gpc_cal-scroll-arrow:disabled { color:GrayText; border-color:GrayText; }
}
@media print { .gpc_cal-scroll-controls { display:none !important; } }

.gpc_cal-scroll {
  scrollbar-color: #c82257 #eeeeee; /* thumb, track */
  scrollbar-width: thin;
}

/* Additional styling for browsers using WebKit scrollbars */
.gpc_cal-scroll::-webkit-scrollbar {
  width: 8px;
}

.gpc_cal-scroll::-webkit-scrollbar-track {
  background: #eeeeee;
}

.gpc_cal-scroll::-webkit-scrollbar-thumb {
  background: #c82257;
  border-radius: 10px;
}

.gpc_cal-scroll::-webkit-scrollbar-thumb:hover {
  background: #a51c47;
}