.promo-peek, .promo-dialog, .promo-events-specials {
  --promo-bg: #173b38;
  --promo-accent: #f5c965;
  --promo-ink: #fff5df;
  box-sizing: border-box;
  font: 15px/1.5 Arial, Helvetica, sans-serif;
}
[data-theme="vinyl"] { --promo-bg: #10323d; --promo-accent: #94d3e3; }
[data-theme="stage"] { --promo-bg: #42191c; --promo-accent: #f8c761; }
[data-theme="halloween"] { --promo-bg: #1b1410; --promo-accent: #ff9a48; }
.promo-peek *, .promo-dialog *, .promo-events-specials * { box-sizing: border-box; }
.promo-peek {
  position: fixed;
  z-index: 1140;
  bottom: max(24px, env(safe-area-inset-bottom));
  left: 24px;
  width: min(370px, calc(100vw - 32px));
  border: 1px solid var(--promo-accent);
  border-radius: 20px;
  box-shadow: 0 14px 50px #0004;
  background: var(--promo-bg);
  color: var(--promo-ink);
  overflow: hidden;
  animation: promo-arrive .35s ease-out both;
}
.promo-peek button, .promo-dialog button { font: inherit; cursor: pointer; }
.promo-dismiss {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border: 0;
  border-radius: 50%;
  color: var(--promo-ink);
  background: #ffffff12;
  font: 28px/1 Arial, sans-serif !important;
}
.promo-peek > .promo-dismiss { position: absolute; z-index: 1; top: 3px; right: 3px; background: var(--promo-bg); }
.promo-peek__open {
  display: flex;
  width: 100%;
  gap: 16px;
  padding: 18px 16px;
  border: 0;
  color: inherit;
  background: transparent;
  text-align: left;
}
.promo-peek__art { align-self: center; width: 88px; height: 114px; object-fit: contain; border-radius: 6px; }
.promo-peek__copy { display: grid; align-content: center; gap: 6px; padding-top: 16px; min-width: 0; }
.promo-label { display: block; margin: 0; color: var(--promo-accent); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.promo-peek__title { font-family: Georgia, serif; font-size: 24px; line-height: 1.05; }
.promo-peek__when { font-size: 12px; }
.promo-peek__cta { padding-top: 4px; color: var(--promo-accent); font-weight: 700; font-size: 12px; }
.promo-controls { display: flex; justify-content: space-between; padding: 0 12px 6px; border-top: 1px solid #ffffff25; }
.promo-controls button, .promo-dialog__nav button { min-height: 44px; padding: 6px 10px; border: 0; background: transparent; color: inherit; font-size: 12px; }
.promo-controls button:disabled { visibility: hidden; }
.promo-storage { margin: 0; padding: 8px 16px; font-size: 12px; }
.promo-dialog {
  padding: 0;
  border: 1px solid #f5c96566;
  border-radius: 20px;
  width: min(880px, calc(100vw - 24px));
  max-width: none;
  max-height: calc(100dvh - 24px);
  color: var(--promo-ink);
  background: var(--promo-bg);
  overflow: hidden;
  box-shadow: 0 24px 100px #0008;
}
.promo-dialog[open] { display: flex; flex-direction: column; }
.promo-dialog::backdrop { background: #071e23c9; }
.promo-dialog__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 12px 8px 22px; border-bottom: 1px solid #ffffff25; flex-shrink: 0; }
.promo-dialog__toolbar > span { color: var(--promo-accent); font-size: 10px; letter-spacing: .16em; font-weight: 800; }
.promo-dialog__scroll { overflow: auto; overscroll-behavior: contain; min-height: 0; }
.promo-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
.promo-feature__poster { background: #100e0b; }
.promo-feature__poster img { display: block; width: 100%; height: auto; }
.promo-feature__copy { padding: clamp(22px, 4vw, 36px); }
.promo-feature__copy h2 { margin: 12px 0; color: inherit; font: 36px/1.05 Georgia, serif; }
.promo-when { color: var(--promo-accent); font-weight: 700; }
.promo-details { color: #f3e9d5; font-size: 13px; }
.promo-action { display: inline-flex; align-items: center; min-height: 48px; margin-top: 10px; padding: 12px 18px; border-radius: 30px; background: var(--promo-accent); color: #1b1915; font-weight: 700; text-decoration: none; }
.promo-location { display: block; align-content: center; width: fit-content; min-height: 44px; margin-top: 10px; color: inherit; text-underline-offset: 4px; }
.promo-specials { border-top: 1px solid #ffffff25; padding: 22px; }
.promo-specials h3 { margin: 0; color: var(--promo-accent); font: 25px/1.2 Georgia, serif; }
.promo-specials > p { margin: 6px 0 16px; }
.promo-special-card { display: flex; align-items: center; gap: 18px; width: 100%; padding: 12px; border: 1px solid #ffffff45; border-radius: 12px; color: inherit; background: #ffffff09; text-align: left; cursor: pointer; font: inherit; }
.promo-special-card img { width: 72px; height: 90px; object-fit: contain; flex-shrink: 0; }
.promo-special-card strong { display: block; font-size: 19px; }
.promo-special-card span span { display: block; margin-top: 6px; font-size: 13px; }
.promo-dialog__nav { display: flex; align-items: center; justify-content: space-between; padding: 6px 14px; border-top: 1px solid #ffffff25; flex-shrink: 0; }
.promo-dialog__nav button { font-size: 14px; }
.promo-dialog__nav button:disabled { opacity: .45; cursor: default; }
.promo-dialog__status { margin: 0; padding: 0 22px; font-size: 13px; }
.promo-dialog__status:empty { display: none; }
.promo-peek :focus-visible, .promo-dialog :focus-visible { outline: 3px solid var(--promo-accent); outline-offset: -4px; }
.promo-events-specials { padding: 40px 24px; color: #fff5df; background: #1b1410; }
.promo-events-specials__inner { max-width: 900px; margin: auto; }
.promo-events-specials h2 { margin: 0 0 8px; font: 36px/1.1 Georgia, serif; color: #ff9a48; }
.promo-events-specials .promo-special-card { max-width: 620px; }
body:has(.promo-dialog[open]) { overflow: hidden; }
body:has(.site-header [aria-expanded="true"]) .promo-peek,
body:has(dialog[open]) .promo-peek { visibility: hidden; }
@keyframes promo-arrive { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (max-width: 1020px) {
  .promo-peek { top: 100px; bottom: auto; left: 16px; }
}
@media (max-width: 600px) {
  .promo-feature { grid-template-columns: 1fr; }
  .promo-feature__poster img { max-height: 58dvh; object-fit: contain; }
  .promo-feature__copy { padding: 24px; }
  .promo-feature__copy h2 { font-size: 32px; }
}
@media (prefers-reduced-motion: reduce) { .promo-peek { animation: none; } }
@media print { .promo-peek, .promo-dialog, [data-promotions-open], .promo-events-specials { display: none !important; } }
