/* ==========================================================================
   Drobne ustawienia per strona
   ========================================================================== */
.page-home .shelves { padding-top: 4px; }
.page-category .page-head { padding-bottom: 18px; }
.page-doc .doc { padding-top: clamp(24px, 5vw, 56px); }
.page-report .narrow { padding-top: clamp(24px, 5vw, 56px); }
.page-list .grid { min-height: 120px; }
.page-list .grid:empty { display: none; }
.page-movie .footer { margin-top: clamp(40px, 6vw, 80px); }

/* --- Strony błędów (404/422/500 w layoucie aplikacji) --- */
.error-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  justify-items: center;
  gap: 14px;
  max-width: 640px;
  margin: 0 auto;
  padding: clamp(40px, 9vw, 110px) var(--gutter) clamp(16px, 3vw, 32px);
  text-align: center;
}
.error-hero__beam {
  position: absolute;
  z-index: -1;
  left: 50%;
  top: -40%;
  width: 140vmax;
  height: 140vmax;
  translate: -50% 0;
  pointer-events: none;
  background: conic-gradient(from 165deg at 50% 0, transparent, rgba(255, 207, 112, .07) 8deg, transparent 22deg);
}
.error-hero__code {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(96px, 22vw, 200px);
  line-height: .85;
  letter-spacing: -0.06em;
  /* Wypełnienie „snopem” zamiast obrysu — zmienny font ma nakładające się kontury */
  color: transparent;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(to bottom, var(--accent-hi) 0%, var(--accent) 35%, rgba(245, 165, 36, .08) 95%);
  -webkit-background-clip: text;
  background-clip: text;
  user-select: none;
}
.error-hero__title { font-size: var(--fs-2xl); font-weight: 750; letter-spacing: -0.03em; }
.error-hero__text { color: var(--text-muted); font-size: var(--fs-lg); max-width: 48ch; }
.error-hero__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 8px; }
.error-hero > * { transition: opacity 350ms var(--ease-out), translate 400ms var(--ease-out); }
.error-hero > :nth-child(3) { transition-delay: 60ms; }
.error-hero > :nth-child(4) { transition-delay: 110ms; }
.error-hero > :nth-child(5) { transition-delay: 160ms; }
@starting-style { .error-hero > * { opacity: 0; translate: 0 10px; } }
@media (prefers-reduced-motion: reduce) {
  .error-hero > * { translate: none; }
  @starting-style { .error-hero > * { translate: none; } }
}
.page-error .footer { margin-top: clamp(40px, 6vw, 80px); }
