/* Client-requested changes on top of the original theme (tempel-theme.css).
   Loaded last so these rules win the cascade. */

/* Replace the orange (#e54f17) hover treatment with the theme's black style. */
.active-hover:hover,
.active-hover:focus-visible {
  --hover-bg: #000;
  --hover-border: #000;
  --hover-color: #f7f7f7;
}

.button:hover,
.button:focus-visible,
.button.light:hover,
.button.light:focus-visible,
.filter:hover,
.filter:focus-visible {
  color: #f7f7f7;
  background: #000;
  border-color: #000;
}

/* Program items: drop the peach (#ff956d) hover tint, keep the default color. */
article.program-item:hover .meta,
article.program-item:hover .byline {
  color: inherit;
}

/* Desktop nav items */
nav#nav-desktop .container ul.nav-links li:hover,
nav#nav-desktop .container ul.nav-links li:focus-within {
  background-color: #000;
  border-color: #000;
}

/* Global link hover */
a:hover,
a:focus-visible {
  color: #000;
}

/* Day filters (homepage program section and program archive) */
section.program .container article.title .controls .day-filter button:hover,
section.program .container article.title .controls .day-filter button:focus-visible,
section.program-archive .container-wide .controls .day-control .day-tabs .day-tab:hover,
section.program-archive .container-wide .controls .day-control .day-tabs .day-tab:focus-visible {
  color: #000;
}

/* Speaker cards: keep the name block off the right edge so long
   affiliations wrap instead of running to the border */
.speaker .text {
  right: 24px;
}

/* Sponsor SVG logos (no intrinsic size once the 1x1 attrs are stripped) */
.sponsors-marquee .marquee .container .item img {
  width: auto;
  height: 60px;
  max-width: 120px;
}
/* Sponsors page: 2-wide, 3-tall centered grid with uniform logo sizing */
section.sponsors .sponsors-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
}
section.sponsors .sponsors-grid .sponsor {
  display: flex;
  justify-content: center;
  align-items: center;
  aspect-ratio: 3 / 2;
  background: #f7f7f7;
  border: 1px solid #1014181f;
  padding: 24px;
}
.sponsors-grid .sponsor img {
  width: auto;
  height: auto;
  max-width: 70%;
  max-height: 64px;
  object-fit: contain;
}
@media (max-width: 600px) {
  section.sponsors .sponsors-grid {
    grid-template-columns: 1fr;
    max-width: 340px;
  }
}

/* Privacy page: plain lists (bullets look wrong on centered text),
   tighter gap between the hero and the first section */
.legal-page section ul {
  list-style: none;
  padding-left: 0;
  margin-left: 0;
}
.legal-page section.text-title {
  padding-top: 24px;
}

/* Privacy page: content headings at document scale, not hero scale */
.legal-page section h1 {
  font-size: 3rem;
  line-height: 1.25;
}
.legal-page section h2 {
  font-size: 2.2rem;
  line-height: 1.3;
  margin-top: 2.4rem;
}
.legal-page section h3 {
  font-size: 1.8rem;
  line-height: 1.3;
}

/* Location and speaker-theme filter chips */
section.program-archive .container-wide .controls .location-filter .filter:hover,
section.program-archive .container-wide .controls .location-filter .filter:focus-visible,
section.speakers .container article.title .thema-filter .filter:hover,
section.speakers .container article.title .thema-filter .filter:focus-visible {
  color: #f7f7f7;
  background: #000;
  border-color: #000;
}
