/* Pieces the generated event pages need on top of the ATX ROX stylesheet. */

.brand-logo-text {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 1.35rem;
  background: linear-gradient(135deg, var(--brand-primary), var(--brand-accent-2));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.emoji-icon { font-style: normal; }

.rich-text p { margin-bottom: 0.9rem; color: var(--text-muted); }
.rich-text p:last-child { margin-bottom: 0; }
.rich-text a:not(.btn), .accordion-body a:not(.btn) { color: var(--brand-accent-1); }
.text-list { margin: 0 0 0.9rem 1.2rem; color: var(--text-muted); }
.text-list li { margin-bottom: 0.35rem; }

.section-image, .card-image {
  width: 100%;
  border-radius: var(--radius-md);
  margin-bottom: 1rem;
  object-fit: cover;
}
.card-image { aspect-ratio: 16 / 9; }

.sponsor-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1rem;
}
.sponsor-tile {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 110px;
  text-align: center;
  font-weight: 700;
  color: var(--text-main);
  text-decoration: none;
}
.sponsor-tile img { max-width: 100%; max-height: 80px; object-fit: contain; }

.spinner-large {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 4px solid rgba(var(--brand-primary-rgb), 0.2);
  border-top-color: var(--brand-primary);
  animation: sel-spin 0.9s linear infinite;
}
@keyframes sel-spin { to { transform: rotate(360deg); } }

.hidden { display: none !important; }

/* Schedule and staff portal pieces that were inline styles in ATX ROX. */
.room-badge-brand {
  background: rgba(var(--brand-accent-1-rgb), 0.15);
  color: var(--brand-accent-1);
  border-color: rgba(var(--brand-accent-1-rgb), 0.3);
}
.session-link-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  padding: 0.5rem 1.1rem;
  font-size: 0.85rem;
  border-radius: 8px;
  font-weight: 700;
  background: linear-gradient(135deg, var(--brand-accent-2) 0%, var(--brand-primary) 100%);
  color: #fff;
  box-shadow: 0 4px 14px rgba(var(--brand-accent-2-rgb), 0.4);
}
.session-link-btn.is-small { padding: 0.25rem 0.65rem; font-size: 0.75rem; margin-left: 0.6rem; border-radius: 6px; }
.matrix-col-focused {
  background: rgba(var(--brand-accent-2-rgb), 0.3);
  color: var(--secondary-color);
  font-weight: 800;
  font-size: 0.95rem;
  border-bottom: 2px solid var(--secondary-color);
}
.matrix-cell-on {
  text-align: center;
  font-weight: 800;
  background: rgba(var(--brand-accent-2-rgb), 0.25);
  color: var(--secondary-color);
  box-shadow: inset 0 0 10px rgba(var(--brand-accent-2-rgb), 0.3);
}
.matrix-grid-row { cursor: pointer; }

/* Small phones: keep the navbar on one line by showing only the lock icon. */
@media (max-width: 480px) {
  .btn-lock-page span { display: none; }
  .btn-lock-page { padding: 0.45rem 0.6rem; }
  .brand-logo-img { max-width: 50vw; height: auto; }
}
