/* Shared layout and navigation; palette and utility tokens live in base.html. */
html {
  scroll-padding-top: 6rem;
}
body {
  line-height: 1.6;
}
.schedule-filter-hidden {
  display: none !important;
}
.page-header {
  position: relative;
  overflow: hidden;
  padding: clamp(2rem, 5vw, 4rem) 1.5rem;
  border: 1px solid rgba(158, 42, 43, 0.12);
  border-radius: 1.5rem;
  background: linear-gradient(135deg, #fbe4e1, #fff9f0 60%, #fff1c7);
  text-align: center;
}
.nav-link {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 0.625rem 0.75rem;
  border-radius: 0.75rem;
  color: #5f5149;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  transition: color 150ms, box-shadow 150ms;
}
.nav-link:hover {
  color: #6f1d1b;
}
.nav-link[aria-current="page"] {
  color: #6f1d1b;
  background: transparent;
  box-shadow: inset 0 -2px #9e2a2b;
}
.field-input[aria-invalid="true"] {
  border-color: #9e2a2b;
}
.field-input:read-only {
  background-color: #fff9f0;
}
.announcement-ticker {
  position: relative;
  overflow: hidden;
  min-height: 3.25rem;
  border: 1px solid #9a682e;
  border-radius: 0.65rem;
  background:
    radial-gradient(circle at 3% 50%, #6f1d1b 0 2px, #bd8744 2.5px 5px, transparent 5.5px),
    radial-gradient(circle at 97% 50%, #6f1d1b 0 2px, #bd8744 2.5px 5px, transparent 5.5px),
    repeating-linear-gradient(4deg, rgba(112, 72, 30, 0.045) 0 1px, transparent 1px 7px),
    linear-gradient(90deg, #c99348, #f3d18a 7%, #e8bd6d 50%, #f3d18a 93%, #c99348);
  box-shadow:
    inset 0 2px 4px rgba(255, 248, 203, 0.7),
    inset 0 -3px 5px rgba(103, 61, 19, 0.24);
  clip-path: polygon(1.5% 0, 98.5% 0, 100% 50%, 98.5% 100%, 1.5% 100%, 0 50%);
  filter: drop-shadow(0 3px 3px rgba(70, 39, 15, 0.18));
}
.announcement-ticker__content {
  position: relative;
  z-index: 1;
  width: max-content;
  letter-spacing: 0.025em;
  animation: announcement-scroll 16s linear infinite;
  will-change: transform;
}
@keyframes announcement-scroll {
  from {
    transform: translateX(100vw);
  }
  to {
    transform: translateX(-100%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .announcement-ticker__content {
    width: auto;
    justify-content: center;
    padding-inline: 1rem;
    white-space: normal;
    animation: none !important;
    transform: none;
  }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
@media print {
  body > header, body > footer, #nav-toggle, #mobile-nav {
    display: none !important;
  }
  body {
    background: white !important;
  }
}
