/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
  :host, :host {
    --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
      "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
      "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
    --text-3xl: 1.875rem;
    --text-3xl--line-height: calc(2.25 / 1.875);
    --font-weight-bold: 700;
    --default-transition-duration: 150ms;
    --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
  }
}
@layer base {
  *, ::after, ::before, ::backdrop, ::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  html, :host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    font-family: var(--default-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }
  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }
  b, strong {
    font-weight: bolder;
  }
  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }
  small {
    font-size: 80%;
  }
  sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring:where(:not(iframe)) {
    outline: auto;
  }
  progress {
    vertical-align: baseline;
  }
  summary {
    display: list-item;
  }
  ol, ul, menu {
    list-style: none;
  }
  img, svg, video, canvas, audio, iframe, embed, object {
    display: block;
    vertical-align: middle;
  }
  img, video {
    max-width: 100%;
    height: auto;
  }
  button, input, select, optgroup, textarea, ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    border-radius: 0;
    background-color: transparent;
    opacity: 1;
  }
  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::file-selector-button {
    margin-inline-end: 4px;
  }
  ::placeholder {
    opacity: 1;
  }
  @supports (not (-webkit-appearance: -apple-pay-button))  or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentcolor;
      @supports (color: color-mix(in lab, red, red)) {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
    appearance: button;
  }
  ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}
@layer utilities {
  .iYT_hetibBo8GC5DbjXD {
    visibility: visible;
  }
  .NZnT123aA9aznYJWx5ao {
    width: 100%;
    @media (width >= 40rem) {
      max-width: 40rem;
    }
    @media (width >= 48rem) {
      max-width: 48rem;
    }
    @media (width >= 64rem) {
      max-width: 64rem;
    }
    @media (width >= 80rem) {
      max-width: 80rem;
    }
    @media (width >= 96rem) {
      max-width: 96rem;
    }
  }
  .uOfjDON6u2jGgXg1GBw7 {
    display: block;
  }
  .KcJL33Vqr6xC7407gDQC {
    display: contents;
  }
  .KRQcb8beIjLUwDpf0mfw {
    display: grid;
  }
  .QOLq2Py6Lfr1_HB2Ua5Y {
    display: none;
  }
  .NDjoHy1mwQGx178uAy1I {
    display: inline;
  }
  .VfW8Wc02TpfSSZinZW8K {
    transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
  }
  .Ipys5_NrAvFz61CRNPvq {
    resize: both;
  }
  .IrP2WAlfilMwf0J3Hlva {
    flex-wrap: wrap;
  }
  .mPT0opc8O8tTwvQZK0Ts {
    font-size: var(--text-3xl);
    line-height: var(--tw-leading, var(--text-3xl--line-height));
  }
  .wwTWu2SVDk9kOoH1TRlq {
    --tw-font-weight: var(--font-weight-bold);
    font-weight: var(--font-weight-bold);
  }
  .dUa3Dc9VlMtQSiy_xOnu {
    text-decoration-line: underline;
  }
  .QxzUgGySslas1sKTxRzQ {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .d2oGAqvHXR1bPMplvcO_ {
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .CwX4y5hW5wQO0jwUB37Z {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
}
@property --tw-rotate-x {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-y {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-z {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-x {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-y {
  syntax: "*";
  inherits: false;
}
@property --tw-font-weight {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-ring-inset {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0px;
}
@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff;
}
@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-blur {
  syntax: "*";
  inherits: false;
}
@property --tw-brightness {
  syntax: "*";
  inherits: false;
}
@property --tw-contrast {
  syntax: "*";
  inherits: false;
}
@property --tw-grayscale {
  syntax: "*";
  inherits: false;
}
@property --tw-hue-rotate {
  syntax: "*";
  inherits: false;
}
@property --tw-invert {
  syntax: "*";
  inherits: false;
}
@property --tw-opacity {
  syntax: "*";
  inherits: false;
}
@property --tw-saturate {
  syntax: "*";
  inherits: false;
}
@property --tw-sepia {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false;
}
@layer properties {
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
    *, ::before, ::after, ::backdrop {
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-font-weight: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
    }
  }
}

/* ---------------------------------------------------------------------------
   Event Card. Mobile first: image on top, date and title below.

   Two themes (the Theme prop): Default, in the site's own colours, and
   Christmas, holly red and green. Either can be overridden from a parent
   (e.g. the Event List or the page) with inheritable custom properties:
     --event-accent        date badge background
     --event-accent-text   date badge text
     --event-surface       card background
     --event-text          title text
     --event-muted         date line text
     --event-border        card border
     --event-focus         keyboard focus ring
     --event-radius        corner radius                (default 0.75rem)
   Defaults meet WCAG 2.2 AA: text ≥ 4.5:1, focus ring ≥ 3:1 on the card.
   ------------------------------------------------------------------------- */
:host {
  display: block;
}

.r_l7pZNhUCUIYUmWkFIp {
  /* Default theme: the site's navy panel with cream badge, from the site's
     colour variables (Base collection). The hex after each is that
     variable's Base mode value, used if the variable isn't on the page. */
  --_accent: var(--event-accent, var(--background-color--background-primary, #f6f7f2));
  --_accent-text: var(--event-accent-text, var(--text-color--text-primary, #24313c));
  --_surface: var(--event-surface, var(--background-color--background-tertiary, #3b5158));
  --_text: var(--event-text, var(--text-color--text-inverted, #fff));
  --_muted: var(--event-muted, var(--base-color-brand--sand, #ddd7c3));
  --_border: var(--event-border, transparent);
  --_focus: var(--event-focus, var(--base-color-system--focus-state, #2d62ff));
  --_media: var(--base-color-brand--night, #24313c);
  --_placeholder: linear-gradient(135deg, var(--base-color-brand--steel, #91a3a7), var(--base-color-brand--night, #24313c));

  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  box-sizing: border-box;
  background: var(--_surface);
  color: var(--_text);
  border: 1px solid var(--_border);
  border-radius: var(--event-radius, 0.75rem);
  /* No overflow: hidden here, so the focus ring is never clipped. */
}

/* Christmas theme: holly red badge and date line. */
.r_l7pZNhUCUIYUmWkFIp[data-theme='christmas'] {
  --_accent: var(--event-accent, #9e1b32);
  --_accent-text: var(--event-accent-text, #fff);
  --_surface: var(--event-surface, #fff);
  --_text: var(--event-text, #1a1a1a);
  --_muted: var(--event-muted, #9e1b32);
  --_border: var(--event-border, rgb(0 0 0 / 0.18));
  --_focus: var(--event-focus, #1a1a1a);
  --_media: #e9e4dc;
  --_placeholder: linear-gradient(135deg, #2f5d50, #9e1b32);
}

.r_l7pZNhUCUIYUmWkFIp[hidden] {
  display: none;
}

/* Whole-card focus ring while the title link has keyboard focus (WCAG 2.4.7, 2.4.11, 2.4.13). */
.r_l7pZNhUCUIYUmWkFIp:has(.xbM3v2n7vPPzdsFfaLzB:focus-visible) {
  outline: 3px solid var(--_focus);
  outline-offset: 3px;
}

.xbM3v2n7vPPzdsFfaLzB:focus {
  outline: none;
}

/* Browsers without :has() still get a ring on the link itself. */
@supports not selector(:has(*)) {
  .xbM3v2n7vPPzdsFfaLzB:focus-visible {
    outline: 3px solid var(--_focus);
    outline-offset: 3px;
  }
}

/* --- Image -------------------------------------------------------------- */
.QSmaOpyjxZOlwK_jTOdG {
  position: relative;
  order: -1; /* Shown above the text; the title stays first for screen readers. */
  aspect-ratio: var(--event-image-ratio, 3 / 2);
  overflow: hidden;
  border-radius: calc(var(--event-radius, 0.75rem) - 1px) calc(var(--event-radius, 0.75rem) - 1px) 0 0;
  background: var(--_media);
}

.MEbGWB_zLyJ0iJc5QSE7 {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.J2UY8ftC29l3I_wFnxMH {
  width: 100%;
  height: 100%;
  background:
    radial-gradient(circle at 30% 30%, rgb(255 255 255 / 0.35), transparent 60%),
    var(--_placeholder);
}

@media (hover: hover) {
  .r_l7pZNhUCUIYUmWkFIp[data-linked]:hover .MEbGWB_zLyJ0iJc5QSE7 {
    transform: scale(1.04);
  }
}

@media (prefers-reduced-motion: reduce) {
  .MEbGWB_zLyJ0iJc5QSE7 {
    transition: none;
  }

  .r_l7pZNhUCUIYUmWkFIp[data-linked]:hover .MEbGWB_zLyJ0iJc5QSE7 {
    transform: none;
  }
}

/* Date badges: visual shorthand, hidden from screen readers. One badge for a
   day or a range ("DEC 24", "DEC 28–30", "DEC 30 – JAN 2"); one per day, side
   by side, for an event on several separate days. */
.lHMRqHAIUjPUjruVk2XE {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  right: 0.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  pointer-events: none;
}

.UAwrRL4pWTSPXCyn32hL {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-width: 3.25rem;
  padding: 0.375rem 0.5rem 0.4375rem;
  box-sizing: border-box;
  background: var(--_accent);
  color: var(--_accent-text);
  border-radius: 0.5rem;
  box-shadow: 0 2px 8px rgb(0 0 0 / 0.25);
  font-family: inherit;
  line-height: 1;
  text-align: center;
}

.t6mDjLTRezXZ9q8bbvtV {
  display: grid;
  justify-items: center;
}

/* Sits on the day line, between the two groups. */
.pb2GqVkxc0tbZCse4LLV {
  align-self: flex-end;
  font-size: 1.5rem;
  font-weight: 700;
}


.oLGwf0MiTkO2DfekIrJ4 {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.kFzGaZmf2eZvQ9Wg2EFA {
  margin-top: 0.125rem;
  font-size: 1.5rem;
  font-weight: 700;
  white-space: nowrap;
}


/* --- Text --------------------------------------------------------------- */
.zqLTLYtITKGUbqdrv3sS {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 1rem 1.25rem 1.25rem;
}

/* Link arrow, right after the title's last word; sized with the title text. */
.GZLFdCOX5zKp9eaiTOoQ {
  white-space: nowrap;
}

.eNvXEPVEYYk8O0C7a6bc {
  display: inline-block;
  width: 1.1em;
  height: 1.1em;
  margin-left: 0.15em;
  vertical-align: -0.2em;
  color: var(--_muted);
  transition: transform 0.2s ease;
}

@media (hover: hover) {
  .r_l7pZNhUCUIYUmWkFIp[data-linked]:hover .eNvXEPVEYYk8O0C7a6bc {
    transform: translateX(0.25rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .eNvXEPVEYYk8O0C7a6bc {
    transition: none;
  }

  .r_l7pZNhUCUIYUmWkFIp[data-linked]:hover .eNvXEPVEYYk8O0C7a6bc {
    transform: none;
  }
}

.VieILMFztXGSiGzwfBrt {
  margin: 0;
  color: inherit;
  font-size: 1.25rem;
  line-height: 1.3;
  /* Long words (e.g. URLs) wrap instead of forcing a horizontal scroll (1.4.10). */
  overflow-wrap: anywhere;
}

.vmS8khvt1ej1ZUT_vZpk {
  order: -1; /* Date reads above the title visually. */
  margin: 0;
  color: var(--_muted);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.4;
}

.xbM3v2n7vPPzdsFfaLzB {
  color: inherit;
  text-decoration: none;
}

/* Stretch the title link over the whole card so any tap opens it (2.5.8). */
.xbM3v2n7vPPzdsFfaLzB::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
}

.r_l7pZNhUCUIYUmWkFIp[data-linked]:hover .xbM3v2n7vPPzdsFfaLzB {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.PHSYNwfdH0IEWEtr62Sw {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* --- Designer-only --------------------------------------------------------- */
.r_l7pZNhUCUIYUmWkFIp[data-past] {
  opacity: 0.55;
}

.TF_ZpevUq_dWx7SoZCmw {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.25rem;
}

.MJY3MuR0Q0w1CbLOEf9W {
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  background: rgb(0 0 0 / 0.75);
  color: #fff;
  font: 600 0.75rem/1.2 system-ui, sans-serif;
}

.MJAo8bGeay2Qs_co0Jmn {
  background: #b45309;
}

