/* Cadence: a light, editorial system-font theme for static event guides. */

:root {
  --cadence-oxford-blue: #002147;
  --cadence-community-teal: #176c68;
  --cadence-coral: #a4452e;
  --cadence-vegas-gold: #b58a28;
  --cadence-ink: var(--cadence-oxford-blue);
  --cadence-ink-soft: #4a5a60;
  --cadence-paper: #faf9f5;
  --cadence-surface: #ffffff;
  --cadence-surface-soft: #f0f1ed;
  --cadence-rule: #d5dcd8;
  --cadence-accent: #176c68;
  --cadence-accent-strong: #0d514e;
  --cadence-accent-soft: #e2f0ed;
  --cadence-highlight: #d8ab3e;
  --cadence-alert: #a4452e;
  --cadence-alert-soft: #f8e9e3;
  --cadence-focus: #bd4d2d;
  --cadence-shadow: 0 0.75rem 2rem rgb(24 39 45 / 0.08);
  --cadence-font: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --cadence-measure: 72rem;
  --cadence-control-radius: 0.5rem;
  --cadence-control-height: 3rem;
  --cadence-control-padding: 0.5rem 0.75rem;
}

.cadence--marching-band {
  --cadence-accent: #176c68;
  --cadence-accent-strong: #0d514e;
  --cadence-accent-soft: #e2f0ed;
}

.cadence--indoor-guard {
  --cadence-accent: #a4452e;
  --cadence-accent-strong: #7d3424;
  --cadence-accent-soft: #f8e9e3;
}

.cadence--indoor-percussion {
  --cadence-accent: #5e4b91;
  --cadence-accent-strong: #463773;
  --cadence-accent-soft: #ece9f7;
}

.cadence-accent--community-teal {
  --cadence-accent: #176c68;
  --cadence-accent-strong: #0d514e;
  --cadence-accent-soft: #e2f0ed;
}

.cadence-accent--coral-beat {
  --cadence-accent: #a4452e;
  --cadence-accent-strong: #7d3424;
  --cadence-accent-soft: #f8e9e3;
}

.cadence-accent--vegas-gold {
  --cadence-accent: #796019;
  --cadence-accent-strong: #55420e;
  --cadence-accent-soft: #f5eed6;
}

.cadence,
.cadence * {
  box-sizing: border-box;
  min-width: 0;
}

.cadence {
  margin: 0;
  min-height: 100%;
  background: var(--cadence-paper);
  color: var(--cadence-ink);
  font-family: var(--cadence-font);
  font-size: 1.0625rem;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

.cadence :where(h1, h2, h3, h4, p, ul, ol, dl, figure) {
  margin-block-start: 0;
}

.cadence :where(h1, h2, h3, h4) {
  color: var(--cadence-ink);
  font-weight: 700;
  line-height: 1.12;
  text-wrap: balance;
}

.cadence h1 {
  max-width: 14ch;
  margin-block-end: 1.25rem;
  font-size: clamp(2.25rem, 7vw, 4.75rem);
  letter-spacing: -0.045em;
}

.cadence h2 {
  margin-block-end: 0.75rem;
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  letter-spacing: -0.03em;
}

.cadence h3 {
  margin-block-end: 0.5rem;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
}

.cadence h4 {
  margin-block-end: 0.35rem;
  font-size: 1rem;
}

.cadence p,
.cadence ul,
.cadence ol,
.cadence dl {
  margin-block-end: 1rem;
}

.cadence a {
  color: var(--cadence-accent-strong);
  text-decoration-thickness: 0.12em;
  text-underline-offset: 0.18em;
}

.cadence a:hover {
  color: var(--cadence-ink);
}

.cadence :where(a, summary):focus-visible {
  outline: 3px solid var(--cadence-focus);
  outline-offset: 0.2rem;
}

.cadence-container {
  width: min(calc(100% - 2rem), var(--cadence-measure));
  margin-inline: auto;
}

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

.cadence-skip-link {
  position: absolute;
  z-index: 10;
  top: -6rem;
  left: 1rem;
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  padding: 0.6rem 0.9rem;
  background: var(--cadence-ink);
  color: var(--cadence-surface);
  font-weight: 700;
}

.cadence-skip-link:focus {
  top: 1rem;
  color: var(--cadence-surface);
}

.cadence-site-header {
  border-block-end: 1px solid var(--cadence-rule);
  background: color-mix(in srgb, var(--cadence-paper) 92%, white);
}

.cadence-site-header__inner {
  display: flex;
  min-height: 4.5rem;
  align-items: center;
  justify-content: space-between;
}

.cadence-brand {
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  padding-inline-start: 0.8rem;
  border-inline-start: 0.25rem solid var(--cadence-highlight);
  color: var(--cadence-ink);
  font-weight: 700;
  text-decoration: none;
}

.cadence-brand:hover {
  color: var(--cadence-accent-strong);
}

.cadence-brand__name {
  font-size: clamp(1rem, 3vw, 1.15rem);
  letter-spacing: -0.01em;
}

.cadence-hero {
  border-block-end: 1px solid var(--cadence-rule);
  background:
    radial-gradient(circle at 88% 8%, var(--cadence-accent-soft), transparent 30rem),
    var(--cadence-paper);
}

.cadence-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: center;
  padding-block: clamp(3rem, 8vw, 7rem);
}

.cadence-hero__grid--text-only {
  grid-template-columns: minmax(0, 48rem);
}

.cadence-hero__copy {
  min-width: 0;
}

.cadence-eyebrow,
.cadence-section__kicker,
.cadence-profile__kicker {
  margin-block-end: 0.6rem;
  color: var(--cadence-accent-strong);
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1.3;
  text-transform: uppercase;
}

.cadence-status {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  margin-block-end: 1rem;
  padding: 0.45rem 0.8rem;
  border: 1px solid var(--cadence-highlight);
  border-radius: 999px;
  background: var(--cadence-surface);
  color: var(--cadence-ink);
  font-weight: 700;
}

.cadence-status--cancelled,
.cadence-status--post-event {
  border-color: var(--cadence-alert);
}

.cadence-event-title {
  margin-block-end: 0.35rem;
  color: var(--cadence-ink-soft);
  font-size: 1.1rem;
  font-weight: 700;
}

.cadence-event-title__edition {
  color: var(--cadence-accent-strong);
}

.cadence-hero__introduction,
.cadence-section__introduction {
  max-width: 62ch;
  color: var(--cadence-ink-soft);
  font-size: 1.1rem;
}

.cadence-meta {
  display: grid;
  gap: 0.8rem;
  margin-block: 1.75rem;
}

.cadence-meta--hero {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cadence-meta > div,
.cadence-profile__meta > div,
.cadence-fact {
  min-width: 0;
}

.cadence-meta dt,
.cadence-profile__meta dt,
.cadence-fact dt {
  color: var(--cadence-ink-soft);
  font-size: 1rem;
  font-weight: 700;
}

.cadence-meta dd,
.cadence-profile__meta dd,
.cadence-fact dd {
  margin-inline-start: 0;
}

.cadence-meta address {
  margin-block-start: 0.25rem;
  font-style: normal;
}

.cadence-meta__link {
  margin-block: 0.35rem 0;
}

.cadence-updated {
  color: var(--cadence-ink-soft);
  font-size: 1rem;
}

.cadence-updated time {
  color: var(--cadence-ink);
  font-weight: 700;
}

/* One navigation family; text links and native disclosures stay distinct. */
.cadence-button,
.cadence-quick-link {
  display: inline-flex;
  min-height: var(--cadence-control-height);
  min-width: 2.75rem;
  max-width: 100%;
  align-items: center;
  gap: 0.5rem;
  padding: var(--cadence-control-padding);
  border: 1px solid var(--cadence-accent-strong);
  border-radius: var(--cadence-control-radius);
  font: 800 1rem/1.5 var(--cadence-font);
  text-decoration: none;
}

.cadence-button {
  justify-content: center;
  background: var(--cadence-accent-strong);
  color: var(--cadence-surface) !important;
  text-align: center;
}

.cadence-button:hover {
  background: var(--cadence-ink);
  color: var(--cadence-surface) !important;
}

.cadence-button--secondary {
  background: transparent;
  color: var(--cadence-accent-strong) !important;
}

.cadence-button--secondary:hover {
  background: var(--cadence-accent-soft);
  color: var(--cadence-ink) !important;
}

.cadence-hero__action {
  margin-block-end: 0;
}

.cadence-figure {
  margin: 0;
}

.cadence-media {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border: 1px solid var(--cadence-rule);
  border-radius: 0.75rem;
  background: var(--cadence-surface-soft);
  box-shadow: var(--cadence-shadow);
}

.cadence-media__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cadence-media--fit-contain {
  background: var(--cadence-surface);
}

.cadence-media--fit-contain .cadence-media__image {
  object-fit: contain;
}

/* Generated content appears on failed replaced images, without JavaScript.
   Keep native alt semantics and show a quiet textual fallback, not a broken icon. */
.cadence-media__image::after {
  content: attr(alt);
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  padding: 1rem;
  background: var(--cadence-surface-soft);
  color: var(--cadence-ink-soft);
  font: 1rem/1.5 var(--cadence-font);
  text-align: center;
}

.cadence-profiles { align-items: start; }
.cadence-profile__media .cadence-media { height: auto; }
.cadence-footer .cadence-updated time { color: #ffffff; }
.cadence-quick-links ul { padding-inline-start: 0; }
.cadence-schedule__main a { display: inline-flex; min-height: 2.75rem; align-items: center; }

@keyframes cadence-enter {
  from { opacity: 0.96; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .cadence-media--photo-feature {
      animation: cadence-enter 1ms linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 35%;
    }
  }
  .cadence-quick-link__arrow { transition: transform 140ms ease-out; }
  .cadence-quick-link:hover .cadence-quick-link__arrow { transform: translateX(3px); }
}

@media print {
  .cadence { background: white; }
  .cadence-skip-link, .cadence-quick-links { display: none; }
  .cadence-section { padding-block: 1rem; }
  .cadence-media { box-shadow: none; }
}

.cadence-media--missing {
  display: grid;
  place-items: center;
  background:
    linear-gradient(135deg, transparent 48%, rgb(74 90 96 / 0.08) 49%, transparent 51%),
    var(--cadence-surface-soft);
  box-shadow: none;
}

.cadence-media__missing-mark {
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid var(--cadence-rule);
  border-radius: 50%;
  opacity: 0.7;
}

.cadence-media--default {
  display: grid;
  place-items: center;
  background:
    linear-gradient(135deg, transparent 47%, rgb(255 255 255 / 0.6) 48%, transparent 52%),
    linear-gradient(155deg, var(--cadence-accent-soft), var(--cadence-surface-soft));
  box-shadow: none;
}

.cadence-media__default-mark {
  width: 38%;
  aspect-ratio: 1;
  border: 2px solid var(--cadence-accent);
  border-radius: 50%;
  opacity: 0.6;
}

.cadence-figure figcaption {
  margin-block-start: 0.55rem;
  color: var(--cadence-ink-soft);
  font-size: 1rem;
}

.cadence-alert {
  border-block-end: 1px solid var(--cadence-alert);
  background: var(--cadence-alert-soft);
}

.cadence-alert__inner {
  padding-block: 1.5rem;
}

.cadence-alert h2 {
  margin-block-end: 0.5rem;
  font-size: clamp(1.45rem, 3vw, 2rem);
}

.cadence-alert p:last-child {
  margin-block-end: 0;
}

.cadence-quick-links {
  border-block-end: 1px solid var(--cadence-rule);
  background: var(--cadence-surface);
}

.cadence-quick-links ul {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  padding-block: 1rem;
  margin-block-end: 0;
  list-style: none;
}

.cadence-quick-link {
  display: flex;
  justify-content: space-between;
  background: var(--cadence-paper);
  color: var(--cadence-accent-strong) !important;
}

.cadence-quick-link:hover {
  background: var(--cadence-accent-soft);
  color: var(--cadence-ink) !important;
}

.cadence-button:active,
.cadence-quick-link:active {
  background: var(--cadence-ink);
  color: var(--cadence-surface) !important;
  border-color: var(--cadence-ink);
}

.cadence-quick-link:active .cadence-quick-link__arrow { color: inherit; }

.cadence-footer .cadence-button {
  background: var(--cadence-surface);
  border-color: var(--cadence-surface);
  color: var(--cadence-ink) !important;
}

.cadence-footer .cadence-button:hover,
.cadence-footer .cadence-button:active {
  background: var(--cadence-accent-soft);
  border-color: var(--cadence-accent-soft);
}

.cadence :where(.cadence-schedule__main a, .cadence-link):active {
  text-decoration-thickness: 0.2em;
}

.cadence-details summary:hover,
.cadence-details summary:active { background: var(--cadence-accent-soft); }

.cadence-quick-link__arrow {
  flex: 0 0 auto;
  color: var(--cadence-accent-strong);
  font-size: 1.25rem;
}

.cadence-section {
  scroll-margin-top: 1rem;
  padding-block: clamp(3rem, 7vw, 6rem);
  border-block-end: 1px solid var(--cadence-rule);
}

.cadence-section__heading {
  max-width: 48rem;
}

.cadence-section__introduction {
  margin-block-end: 2rem;
}

.cadence-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-block-end: 0;
}

.cadence-fact {
  padding: 1.25rem;
  border-inline-start: 0.3rem solid var(--cadence-accent);
  background: var(--cadence-surface);
}

.cadence-fact dt {
  margin-block-end: 0.35rem;
}

.cadence-schedule__list {
  padding: 0;
  margin-block-end: 1.5rem;
  list-style: none;
  border-block-start: 1px solid var(--cadence-rule);
}

.cadence-schedule__row {
  display: grid;
  grid-template-columns: minmax(4.5rem, 6.5rem) minmax(0, 1fr) minmax(4.5rem, 8rem);
  gap: 1rem;
  align-items: start;
  padding-block: 1rem;
  border-block-end: 1px solid var(--cadence-rule);
}

.cadence-schedule__time {
  color: var(--cadence-accent-strong);
  font-weight: 800;
  white-space: nowrap;
}

.cadence-schedule__main h3 {
  margin-block-end: 0.25rem;
}

.cadence-schedule__label,
.cadence-schedule__meta,
.cadence-schedule__duration {
  margin-block-end: 0.25rem;
  color: var(--cadence-ink-soft);
  font-size: 1rem;
}

.cadence-schedule__meta span {
  overflow-wrap: anywhere;
}

.cadence-schedule__duration-wrap {
  min-width: 0;
  text-align: end;
}

.cadence-schedule__duration {
  display: inline-block;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.cadence-tag {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  margin-block-start: 0.35rem;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  background: var(--cadence-accent-soft);
  color: var(--cadence-accent-strong);
  font-size: 1rem;
  font-weight: 800;
}

.cadence-story-list,
.cadence-public-links,
.cadence-sponsors,
.cadence-volunteer-groups,
.cadence-staff-groups,
.cadence-roster-groups {
  display: grid;
  gap: 1rem;
  padding: 0;
  margin-block-end: 0;
  list-style: none;
}

.cadence-story-item,
.cadence-people-group,
.cadence-sponsor,
.cadence-host {
  padding: 1.25rem;
  border: 1px solid var(--cadence-rule);
  background: var(--cadence-surface);
}

.cadence-story-item p:last-child,
.cadence-people-group p:last-child,
.cadence-host p:last-child,
.cadence-sponsor p:last-child {
  margin-block-end: 0;
}

.cadence-copy {
  max-width: 70ch;
  white-space: pre-line;
}

.cadence-note {
  padding: 0.9rem 1rem;
  border-inline-start: 0.3rem solid var(--cadence-highlight);
  background: var(--cadence-surface);
}

.cadence-menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.cadence-menu-group {
  padding: 1.25rem;
  border: 1px solid var(--cadence-rule);
  background: var(--cadence-surface);
}

.cadence-menu__items {
  display: grid;
  gap: 0.8rem;
  padding: 0;
  margin-block-end: 0;
  list-style: none;
}

.cadence-menu__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(4rem, 8rem);
  gap: 0.15rem 0.75rem;
  padding-block: 0.75rem;
  border-block-start: 1px solid var(--cadence-rule);
}

.cadence-menu__name {
  font-weight: 800;
}

.cadence-menu__description {
  color: var(--cadence-ink-soft);
}

.cadence-menu__price {
  grid-column: 2;
  grid-row: 1 / span 2;
  color: var(--cadence-accent-strong);
  font-weight: 800;
  overflow-wrap: anywhere;
  text-align: end;
}

.cadence-profiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.cadence-profile {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  border: 1px solid var(--cadence-rule);
  background: var(--cadence-surface);
  box-shadow: var(--cadence-shadow);
}

.cadence-profile__media,
.cadence-profile__media .cadence-figure,
.cadence-profile__media .cadence-media {
  height: 100%;
}

.cadence-profile__media .cadence-media {
  min-height: 13rem;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.cadence-profile__media .cadence-figure figcaption {
  padding: 0.5rem;
}

.cadence-profile__content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 1.25rem;
}

.cadence-profile__content h3 {
  margin-block-end: 0.35rem;
}

.cadence-profile__organization {
  margin-block-end: 0.75rem;
  color: var(--cadence-ink-soft);
}

.cadence-profile__meta {
  display: grid;
  gap: 0.6rem;
  padding-block: 0.8rem;
  margin-block: 0 0.75rem;
  border-block: 1px solid var(--cadence-rule);
}

.cadence-profile__meta > div {
  display: grid;
  grid-template-columns: minmax(5.5rem, 0.45fr) minmax(0, 1fr);
  gap: 0.75rem;
}

.cadence-profile__meta dt,
.cadence-profile__meta dd {
  margin: 0;
}

.cadence-inline-list,
.cadence-selection-list,
.cadence-people-list {
  padding: 0;
  margin: 0;
  list-style: none;
}

.cadence-inline-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
}

.cadence-profile__show {
  margin-block-end: 0.75rem;
}

.cadence-profile__show span {
  color: var(--cadence-ink-soft);
  font-weight: 700;
}

.cadence-details {
  margin-block-start: 0.75rem;
  border-block-start: 1px solid var(--cadence-rule);
}

.cadence-details summary {
  display: flex;
  min-height: 3rem;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-block: 0.6rem;
  cursor: pointer;
  color: var(--cadence-accent-strong);
  font-weight: 800;
  list-style: none;
}

.cadence-details summary::-webkit-details-marker {
  display: none;
}

.cadence-details summary::after {
  flex: 0 0 auto;
  content: "+";
  font-size: 1.35rem;
  line-height: 1;
}

.cadence-details[open] summary::after {
  content: "−";
}

.cadence-details > :last-child {
  margin-block-end: 0.85rem;
}

.cadence-selection-list,
.cadence-people-list {
  display: grid;
  gap: 0.35rem;
  margin-block-end: 0.85rem;
}

.cadence-selection-list li {
  padding-inline-start: 1.1rem;
}

.cadence-selection-list li::before {
  content: "·";
  display: inline-block;
  width: 1.1rem;
  margin-inline-start: -1.1rem;
  color: var(--cadence-accent);
  font-weight: 800;
}

.cadence-people-group--nested {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.cadence-people-group--nested + .cadence-people-group--nested {
  margin-block-start: 1rem;
}

.cadence-people-list li {
  padding-block: 0.35rem;
  border-block-start: 1px solid var(--cadence-rule);
}

.cadence-person__name {
  font-weight: 700;
}

.cadence-person__pronunciation,
.cadence-pronunciation {
  margin-inline-start: 0.35rem;
  color: var(--cadence-ink-soft);
}

.cadence-attribution {
  color: var(--cadence-ink-soft);
  font-weight: 700;
}

.cadence-host {
  max-width: 60rem;
}

.cadence-host__identity {
  margin-block-end: 1rem;
}

.cadence-host__identity h3 {
  margin-block-end: 0.35rem;
}

.cadence-host__action {
  margin-block-end: 0;
}

.cadence-roster {
  max-width: 60rem;
}

.cadence-roster > .cadence-roster-groups {
  margin-block: 0.5rem 0;
}

.cadence-sponsor {
  display: grid;
  grid-template-columns: minmax(8rem, 14rem) minmax(0, 1fr);
  gap: 1.25rem;
  align-items: center;
}

.cadence-sponsor .cadence-media {
  border: 0;
  box-shadow: none;
}

.cadence-fundraising,
.cadence-rich-text {
  max-width: 70ch;
}

.cadence-trivia {
  display: grid;
  gap: 1rem;
  padding: 0;
  margin-block-end: 0;
  list-style: none;
}

.cadence-trivia__item {
  padding: 1.25rem;
  border: 1px solid var(--cadence-rule);
  background: var(--cadence-surface);
  box-shadow: var(--cadence-shadow);
}

.cadence-trivia__number {
  margin-block-end: 0.35rem;
  color: var(--cadence-accent-strong);
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.cadence-trivia__choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  padding-inline-start: 2.25rem;
}

.cadence-trivia__choices li {
  padding: 0.75rem;
  border: 1px solid var(--cadence-rule);
  background: var(--cadence-paper);
  font-weight: 700;
}

.cadence-trivia__correct,
.cadence-trivia__fun-fact {
  padding: 0.85rem 1rem;
  background: var(--cadence-accent-soft);
}

.cadence-trivia__correct span,
.cadence-trivia__fun-fact span {
  display: block;
  color: var(--cadence-accent-strong);
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.cadence-public-links {
  margin-block-start: 1rem;
}

.cadence-public-links a,
.cadence-footer__links a,
.cadence-story-list a,
.cadence-facts a,
.cadence-sponsor a {
  display: inline-flex;
  min-height: 3rem;
  max-width: 100%;
  align-items: center;
}

.cadence-public-links li {
  min-width: 0;
}

.cadence-link {
  display: inline;
}

.cadence-link__owner {
  color: var(--cadence-ink-soft);
  font-weight: 400;
}

.cadence-footer {
  background: var(--cadence-ink);
  color: #f8faf8;
}

.cadence-footer__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem 3rem;
  padding-block: 3rem;
}

.cadence-footer__organization {
  margin-block-end: 0.5rem;
  color: #ffffff;
  font-size: 1.2rem;
  font-weight: 800;
}

.cadence-footer .cadence-copy,
.cadence-footer .cadence-updated,
.cadence-footer .cadence-link__owner {
  color: #dce6e2;
}

.cadence-footer a {
  color: #ffffff;
}

.cadence-footer a:hover {
  color: var(--cadence-accent-soft);
}

.cadence-footer__links {
  display: grid;
  gap: 0.65rem;
  padding: 0;
  margin: 0;
  list-style: none;
}

.cadence-footer__links .cadence-link,
.cadence-footer__links .cadence-link__owner {
  display: block;
}

.cadence-footer__links .cadence-link__owner {
  margin-block-start: 0.15rem;
}

.cadence-footer__grid > .cadence-updated {
  grid-column: 1 / -1;
  margin-block-end: 0;
  padding-block-start: 1rem;
  border-block-start: 1px solid rgb(255 255 255 / 0.25);
}

@media (min-width: 72rem) {
  .cadence-profiles {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 58rem) {
  .cadence-hero__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .cadence-meta--hero,
  .cadence-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cadence-menu {
    grid-template-columns: minmax(0, 1fr);
  }

  .cadence-profile {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 44rem) {
  .cadence-quick-links ul,
  .cadence-profiles,
  .cadence-footer__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .cadence-meta--hero,
  .cadence-facts {
    grid-template-columns: minmax(0, 1fr);
  }

  .cadence-profile,
  .cadence-sponsor {
    grid-template-columns: minmax(0, 1fr);
  }

  .cadence-profile__media .cadence-media {
    min-height: 12rem;
  }

  .cadence-schedule__row {
    grid-template-columns: minmax(4.5rem, 6rem) minmax(0, 1fr);
    gap: 0.75rem;
  }

  .cadence-schedule__duration-wrap {
    grid-column: 2;
    text-align: start;
  }

  .cadence-schedule__duration {
    margin-block-start: 0.25rem;
  }

  .cadence-menu__item {
    grid-template-columns: minmax(0, 1fr) minmax(4rem, 35%);
  }

  .cadence-trivia__choices {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 22rem) {
  .cadence-container {
    width: min(calc(100% - 1rem), var(--cadence-measure));
  }

  .cadence-brand__name {
    font-size: 1rem;
  }

  .cadence-profile__meta > div {
    grid-template-columns: minmax(4.5rem, 0.45fr) minmax(0, 1fr);
    gap: 0.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
}

/* Static band pages retain Cadence without event-hero-sized headings. */
.cadence-band-page .cadence-profile__content h1 {
  font-size: clamp(1.75rem, 3vw, 2.75rem);
  line-height: 1.15;
  margin-block-end: 0.75rem;
}
.cadence-band-page .cadence-profile__content h2 {
  font-size: 1.125rem;
  line-height: 1.4;
}
.cadence-band-page .cadence-profile__meta > div {
  grid-template-columns: minmax(0, 1fr);
  gap: 0.2rem;
}
.cadence-band-page .cadence-profile__media,
.cadence-band-page .cadence-profile__media .cadence-figure,
.cadence-band-page .cadence-profile__media .cadence-media { height: auto; }
.cadence-band-page .cadence-profile__media img { max-height: 26rem; }
.cadence-band-page .cadence-footer .cadence-link__owner { color: inherit; }
@media (min-width: 60rem) {
  .cadence-band-page .cadence-profile { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); align-items: start; }
}
