/* Fall sale banner (FALL50) for the book and chapter pages. Built by fall-sale.js.
   To end the sale: remove the two fall-sale tags from those pages and the /buy/book-fall50 redirect. */
/* Sticky: stays pinned to the top of the window as the page scrolls. */
.fall-banner { position: sticky; top: 0; z-index: 100; display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.45s ease; background: #15130f; color: #f4f0e8;
  font: 15px/1.4 Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
.fall-banner.is-open { grid-template-rows: 1fr; }
.fall-banner__clip { overflow: hidden; }
.fall-banner__inner { position: relative; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 16px;
  padding: 12px 52px; text-align: center; }
.fall-banner p { margin: 0; }
.fall-banner__tag { display: inline-block; margin-right: 6px; padding: 3px 9px; border-radius: 999px; background: #d9ff5a; color: #15130f;
  font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; vertical-align: 1px; }
.fall-banner__code { padding: 2px 7px; border: 1px dashed rgba(244, 240, 232, 0.5); border-radius: 6px; font-weight: 700; letter-spacing: 0.06em;
  white-space: nowrap; }
.fall-banner__cta { padding: 8px 16px; border-radius: 999px; background: #d9ff5a; color: #15130f; font-weight: 700; text-decoration: none; white-space: nowrap; }
.fall-banner__cta:hover { opacity: 0.9; }
.fall-banner__close { position: absolute; top: 50%; right: 12px; transform: translateY(-50%); width: 32px; height: 32px; border: 0; border-radius: 50%;
  background: transparent; color: #f4f0e8; font-size: 22px; line-height: 1; cursor: pointer; }
.fall-banner__close:hover { background: rgba(244, 240, 232, 0.12); }
.fall-banner a:focus-visible, .fall-banner__close:focus-visible { outline: 2px solid #d9ff5a; outline-offset: 2px; }
/* Phones: drop the pill, keep one line of text above the button. */
@media (max-width: 560px) {
  .fall-banner { font-size: 14px; }
  .fall-banner__inner { gap: 10px; padding: 12px 44px 14px; }
  .fall-banner__tag { display: none; }
  .fall-banner__close { right: 6px; }
}
@media (prefers-reduced-motion: reduce) { .fall-banner { transition: none; } }
