.ln-schedule-anchor {
  display: block;
  scroll-margin-top: 72px;
}

.ln-calendar {
  --ink: #040601;
  --muted: #777a76;
  --line: rgba(4, 6, 1, .18);
  background: #f9f9f9;
  color: var(--ink);
  padding: 0 0 clamp(80px, 8vw, 105px);
}

.ln-calendar * { box-sizing: border-box; }
.ln-calendar__inner {
  margin: auto;
  width: min(var(--ln-content-width), calc(100% - var(--ln-page-gutter-pair)));
}
.ln-calendar__filters {
  border-bottom: 1px solid var(--line);
  padding-bottom: clamp(18px, 2vw, 22px);
}
.ln-calendar__scroll {
  display: flex;
  gap: clamp(16px, 1.8vw, 21px);
  overflow-x: auto;
  padding: 3px 0 8px;
  scrollbar-width: none;
}
.ln-calendar__scroll::-webkit-scrollbar { display: none; }
.ln-calendar__years { gap: 17px; padding-bottom: 0; }
.ln-calendar__filter {
  appearance: none;
  background: none;
  border: 0;
  color: var(--muted);
  cursor: pointer;
  font-family: 'Raleway', Arial, sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .07em;
  padding: 3px 0;
  position: relative;
  text-transform: uppercase;
  white-space: nowrap;
}
.ln-calendar__filter::after {
  background: var(--ink);
  bottom: -4px;
  content: '';
  height: 1px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  width: 100%;
}
.ln-calendar__filter[aria-pressed='true'] { color: var(--ink); }
.ln-calendar__filter[aria-pressed='true']::after { transform: scaleX(1); }
.ln-calendar__period {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding: clamp(36px, 4.4vw, 52px) 0 clamp(19px, 2vw, 23px);
}
.ln-calendar__title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(36px, 4.8vw, 66px);
  font-weight: 400;
  letter-spacing: -.025em;
  line-height: 1;
  margin: 0;
  text-transform: uppercase;
}
.ln-calendar__title-year {
  font-family: 'Raleway', Arial, sans-serif;
  font-size: .72em;
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: -.035em;
  vertical-align: .08em;
}
.ln-calendar__arrows { display: flex; gap: 9px; }
.ln-calendar__arrow {
  align-items: center;
  appearance: none;
  background: transparent;
  border: 1px solid var(--ink);
  border-radius: 50%;
  color: var(--ink);
  cursor: pointer;
  display: flex;
  height: clamp(37px, 3.6vw, 44px);
  justify-content: center;
  width: clamp(37px, 3.6vw, 44px);
}
.ln-calendar__arrow svg { height: 16px; width: 16px; }
.ln-calendar__list { border-top: 1px solid var(--line); list-style: none; margin: 0; padding: 0; }
.ln-calendar__event {
  align-items: center;
  appearance: none;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  cursor: pointer;
  display: grid;
  font: inherit;
  gap: clamp(14px, 2vw, 26px);
  grid-template-columns: clamp(86px, 10vw, 130px) clamp(62px, 6vw, 78px) minmax(0, 1fr) 28px;
  padding: clamp(21px, 2.1vw, 25px) 8px clamp(21px, 2.1vw, 25px) 0;
  text-align: left;
  width: 100%;
}
.ln-calendar__date { align-items: baseline; display: flex; gap: 7px; }
.ln-calendar__day {
  font-family: 'Raleway', Arial, sans-serif;
  font-size: clamp(26px, 2.4vw, 30px);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.03em;
}
.ln-calendar__date-month,
.ln-calendar__venue { color: var(--muted); font-family: 'Raleway', Arial, sans-serif; font-size: 11px; }
.ln-calendar__date-month { text-transform: uppercase; }
.ln-calendar__event-title {
  font-family: 'Raleway', Arial, sans-serif;
  font-size: clamp(15px, 1.45vw, 18px);
  font-weight: 600;
  margin: 0 0 5px;
}
.ln-calendar__event-arrow { display: flex; opacity: .45; transition: transform .25s; }
.ln-calendar__event-arrow svg { height: 16px; width: 16px; }
.ln-calendar__event-item.is-open .ln-calendar__event-arrow { opacity: 1; transform: rotate(90deg); }
.ln-calendar__details { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .3s, opacity .22s; }
.ln-calendar__event-item.is-open .ln-calendar__details { grid-template-rows: 1fr; opacity: 1; }
.ln-calendar__clip { overflow: hidden; }
.ln-calendar__details-content {
  border-bottom: 1px solid var(--line);
  padding: 18px 48px 36px clamp(184px, 20.5vw, 260px);
}
.ln-calendar__details-programme { display: grid; gap: 9px; }
.ln-calendar__label { color: var(--muted); font: 500 10px 'Raleway', Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.ln-calendar__programme { font: 14px/1.55 'Raleway', Arial, sans-serif; max-width: 680px; }
.ln-calendar__more {
  align-items: center;
  color: var(--ink) !important;
  display: inline-flex;
  font: 600 11px 'Raleway', Arial, sans-serif;
  gap: 9px;
  letter-spacing: .05em;
  margin-top: 28px;
  text-decoration: none;
  text-transform: uppercase;
}
.ln-calendar__more svg { height: 14px; width: 14px; }
.ln-calendar__empty { border-bottom: 1px solid var(--line); color: var(--muted); font: 14px 'Raleway', Arial, sans-serif; padding: 44px 0; }
.ln-calendar__event-logo { align-items: center; display: flex; height: 76px; justify-content: flex-start; min-width: 0; }
.ln-calendar__event-logo img { display: block; height: auto; max-height: 72px; max-width: 100%; object-fit: contain; object-position: left center; width: auto; }
.ln-calendar__event-logo img.is-ink { filter: brightness(0); }
.ln-calendar__details-copy { min-width: 0; }
.ln-calendar__performers { font: 14px/1.55 'Raleway', Arial, sans-serif; margin-top: 18px; max-width: 680px; }
.ln-calendar__filter:focus-visible,
.ln-calendar__arrow:focus-visible,
.ln-calendar__event:focus-visible,
.ln-calendar__more:focus-visible { outline: 1px solid var(--ink); outline-offset: 4px; }
#allrecords .ln-calendar__list { margin: 0; padding: 0; }

@media (max-width: 639px) {
  .ln-schedule-anchor { scroll-margin-top: 56px; }
  .ln-calendar__inner { margin-left: var(--ln-mobile-gutter); margin-right: var(--ln-mobile-gutter); width: auto; }
  .ln-calendar__scroll { gap: 17px; padding-right: 0; }
  .ln-calendar__months { display: grid; gap: 16px 6px; grid-template-columns: repeat(6, minmax(0, 1fr)); overflow: visible; padding: 3px 0 18px; }
  .ln-calendar__months .ln-calendar__filter { justify-self: start; }
  .ln-calendar__period { align-items: flex-end; }
  .ln-calendar__event { align-items: center; gap: 12px; grid-template-columns: 68px 46px minmax(0, 1fr); padding-left: 0; padding-right: 0; }
  .ln-calendar__event-arrow { display: none; }
  .ln-calendar__event-logo { height: 58px; }
  .ln-calendar__event-logo img { max-height: 56px; max-width: 68px; }
  .ln-calendar__date { display: block; }
  .ln-calendar__day { display: block; }
  .ln-calendar__date-month { display: block; margin-top: 5px; }
  .ln-calendar__details-content { padding: 12px 0 28px; }
  .ln-calendar__programme,
  .ln-calendar__performers { font-size: 13px; }
  .ln-calendar__performers { margin-top: 16px; }
  .ln-calendar__more { margin-top: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .ln-calendar__details,
  .ln-calendar__event-arrow { transition: none; }
}
