/* Halloween 2026. Loaded only when SEASON = 'halloween' in build.mjs; every rule is scoped to the body class. */
body.season-halloween {
  --night: #110e0b;
  --night-2: #1c1714;
  --night-line: #3a322c;
  --slime: #86ad42;
  --slime-lt: #a8cb6b;
  --slime-ink: #141109;
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .055 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.season-halloween .util { background: #0b0907; }
.season-halloween .tag--slime { background: var(--slime); color: var(--slime-ink); }
.season-halloween .item .ph .tag--slime { background: var(--slime); color: var(--slime-ink); }

/* Slime hanging off the header. In flow, so it scrolls away with the page. */
.season-halloween .drip {
  position: relative; z-index: 2; height: 22px; margin-bottom: -22px; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='22' viewBox='0 0 160 22'%3E%3Cpath fill='%2386ad42' d='M0 0h160v6c-6 0-8 2-9 6s-1 9-4 9-3-5-4-9-3-6-9-6H92c-4 0-5 2-5 5s-1 5-3 5-3-2-3-5-1-5-5-5H40c-5 0-6 3-7 8s-1 8-3 8-3-3-3-8-2-8-7-8H0z'/%3E%3C/svg%3E") repeat-x 0 0 / 160px 22px;
}

/* Night surfaces */
.season-halloween .phead,
.season-halloween .hw { background: var(--grain), var(--night); color: #efe9e3; }
.season-halloween .phead { padding-top: 56px; }
.season-halloween .hero-fine { background: #0b0907; color: #b4aaa1; }
.season-halloween .qstrip { background: var(--night-2); }
.season-halloween .qstrip a { border-color: var(--night-line); }
.season-halloween .qstrip b::after { color: var(--slime-lt); }
.season-halloween .hw .link { color: var(--slime-lt); }
.season-halloween .hw .fine { color: #9d948c; }
.season-halloween .hw .specs th,
.season-halloween .hw .specs td { border-color: var(--night-line); }
.season-halloween .hw .specs th { color: #fff; }
.season-halloween .hw .specs td { color: #d6cdc5; }

/* Hero: the campaign art, with live copy under it */
.hw-hero { background: #0f0d09; color: #fff; }
.hw-hero-art { max-width: 1672px; margin: 0 auto; }
.hw-hero-art img { width: 100%; }
@media (min-width: 1700px) { .hw-hero-art { -webkit-mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent); mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent); } }
.hw-hero-copy { display: grid; gap: 14px 48px; padding-top: 26px; padding-bottom: 34px; }
.hw-hero-copy .tag { margin-bottom: 14px; }
.hw-hero-copy .lede { margin-bottom: 22px; color: #e4ddd6; }
@media (min-width: 900px) { .hw-hero-copy { grid-template-columns: 5fr 6fr; align-items: end; padding-top: 34px; padding-bottom: 44px; } .hw-hero-copy .lede { margin-top: 0; } }

/* Halloween menu */
.hw-items { display: grid; gap: 20px; }
@media (min-width: 760px) { .hw-items { grid-template-columns: 1fr 1fr; } }
.hw-item { position: relative; display: flex; flex-direction: column; background: var(--night-2); border: 1px solid var(--night-line); border-radius: var(--r); overflow: hidden; }
.hw-item .ph { background: var(--bun); aspect-ratio: 6 / 5; }
.hw-item .ph img { width: 100%; height: 100%; object-fit: contain; transition: transform .2s; }
.hw-item:hover .ph img { transform: scale(1.03); }
.hw-item-body { flex: 1; display: flex; flex-direction: column; gap: 10px; padding: 20px 22px 22px; }
.hw-item h3 a { color: #fff; text-decoration: none; }
.hw-item h3 a::after { content: ""; position: absolute; inset: 0; }
.hw-item:hover h3 a { text-decoration: underline; text-decoration-color: var(--slime); text-underline-offset: 5px; }
.hw-item p { margin: 0; color: #cfc6be; }
.hw-price { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--night-line); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #a99d94; }
.hw-price span { display: flex; flex-direction: column; gap: 4px; }
.hw-price b { font: 400 26px/1 var(--display); letter-spacing: 0; color: #fff; }
.hw-combo { margin: 26px 0 10px; font-size: 17px; }
.hw-combo b { color: var(--slime-lt); }

/* Meteor Guarantee */
.hw-guarantee { background: var(--bun-2); }
.hw-guarantee .split { align-items: start; }
.hw-terms-h { font: 700 12px/1 var(--body); text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-bottom: 12px; }
.hw-terms { margin: 0; padding: 0; list-style: none; counter-reset: t; border-top: 2px solid var(--ink); }
.hw-terms li { counter-increment: t; display: grid; grid-template-columns: 26px 1fr; gap: 8px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 13px; line-height: 1.45; color: var(--muted); }
.hw-terms li::before { content: counter(t); font: 400 15px/1.3 var(--display); color: var(--red); }

/* Halloween hours and policies */
.hw-two { display: grid; gap: 48px; }
@media (min-width: 980px) { .hw-two { grid-template-columns: 1.15fr 1fr; gap: 64px; align-items: start; } }
.hw-two h2 { margin-bottom: 12px; }
.hw-sub { color: #b9b0a6; margin-bottom: 22px; }
.hw-hours { list-style: none; margin: 0; padding: 0; border-top: 2px solid #efe9e3; }
.hw-hours li { display: grid; grid-template-columns: 1fr auto; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--night-line); }
.hw-hours b { display: block; font: 400 18px/1.1 var(--display); text-transform: uppercase; margin-bottom: 4px; }
.hw-hours span { display: block; font-size: 13px; color: #b0a69e; }
.hw-hours em { font-style: normal; font-weight: 700; text-align: right; white-space: nowrap; }
.hw-hours small { display: block; margin-top: 4px; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: #f06a5f; }
.hw-hours .late small { color: var(--slime-lt); }
#treat .specs { margin-bottom: 16px; }

/* Menu page: the Halloween category sits on a night panel */
.season-halloween .cat#halloween { margin-top: 32px; padding: 26px 20px 28px; background: var(--grain), var(--night); color: #efe9e3; border-radius: var(--r); }
@media (min-width: 720px) { .season-halloween .cat#halloween { padding: 32px 28px; } }
.season-halloween .cat#halloween .item p,
.season-halloween .cat#halloween .cal { color: #b9b0a6; }
.season-halloween .cat#halloween .item .meta { border-color: var(--night-line); }
.season-halloween .tabs a[data-tab="halloween"] { color: #4f6b22; }
.season-halloween .tabs a[data-tab="halloween"].active { color: var(--red); }
.hw-item .ph { overflow: hidden; }
.hw-hero-copy h1 { font-size: clamp(40px, 5.4vw, 72px); white-space: nowrap; }
.hw-ad { margin: 0; align-self: start; }
.hw-ad img { width: 100%; border-radius: var(--r); }
.hw-ad .fine { margin-top: 10px; color: #9d948c; }
@media (min-width: 1100px) { .hw-ad { grid-column: span 2; } }
