/* ============================================================
   The Troyeville — shared EVENTS theme.
   Used by the slim /events landing + the 3 category sub-pages
   (/events/live-music, /events/live-sports, /events/food-feasts).
   BLACK & WHITE ONLY (Mic 30 Jun): white backgrounds, black text,
   no cream/gold/orange accents. Photo cards keep white text over
   their own image gradient. Compact blocks.
   ============================================================ */
:root{ --ink:#ffffff; --ink-card:#ffffff; --ink-card-hover:#f4f3f1; --paper:#111111; --paper-faint:#6b6660; --gold:#111111; --orange:#111111; --rule:rgba(17,17,17,0.16); }
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ background:var(--ink); color:var(--paper); font-family:'Outfit',system-ui,sans-serif; font-weight:300; line-height:1.6; -webkit-font-smoothing:antialiased; }
a{ color:inherit; }
.wrap{ max-width:1000px; margin:0 auto; padding:0 clamp(20px,5vw,48px); }

header.hero{ padding:clamp(40px,7vh,76px) 0 clamp(18px,3.5vh,34px); }
.eyebrow{ font-family:'Outfit',sans-serif; font-weight:500; font-size:0.72rem; letter-spacing:0.32em; text-transform:uppercase; color:var(--paper); margin-bottom:16px; }
h1{ font-family:'DM Serif Display',serif; font-weight:400; font-size:clamp(2.2rem,6vw,3.8rem); line-height:1.02; }
h1 em{ font-style:italic; color:var(--paper); }
.lede{ margin-top:18px; max-width:62ch; font-size:clamp(1rem,1.5vw,1.14rem); color:#4a4742; }
.back-link{ display:inline-block; margin:6px 0 0; font-family:'Outfit',sans-serif; font-weight:500; font-size:0.68rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--paper-faint); text-decoration:none; }
.back-link:hover{ color:var(--paper); }

/* ── category cards: PHOTO cards (dark gradient over image) — text stays white ── */
.cats{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; padding:10px 0 8px; }
@media (max-width:760px){ .cats{ grid-template-columns:1fr; } }
.cat-card{ position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:260px; padding:22px; text-decoration:none; color:#fff; border:1px solid var(--rule); overflow:hidden; background:#cfcfcf center/cover no-repeat; transition:transform .2s, box-shadow .2s; }
.cat-card::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,10,10,0.15) 0%, rgba(10,10,10,0.55) 55%, rgba(10,10,10,0.92) 100%); }
.cat-card:hover{ transform:translateY(-4px); box-shadow:0 16px 32px -18px rgba(0,0,0,0.45); }
.cat-card > *{ position:relative; }
.cat-card .ck{ font-family:'Outfit',sans-serif; font-weight:500; font-size:0.62rem; letter-spacing:0.2em; text-transform:uppercase; color:#fff; }
.cat-card h2{ font-family:'DM Serif Display',serif; font-weight:400; font-size:clamp(1.5rem,2.8vw,2rem); margin:8px 0 6px; line-height:1.04; color:#fff; }
.cat-card p{ font-size:0.9rem; color:#eee; max-width:30ch; }
.cat-card .go{ margin-top:14px; font-family:'Outfit',sans-serif; font-weight:500; font-size:0.66rem; letter-spacing:0.14em; text-transform:uppercase; color:#fff; border-bottom:1px solid #fff; padding-bottom:2px; align-self:flex-start; }

/* ── coming-up highlight strip on the landing ── */
.up-strip{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
@media (max-width:760px){ .up-strip{ grid-template-columns:1fr; } }
.up{ display:block; border:1px solid var(--rule); padding:16px 18px; text-decoration:none; color:var(--paper); transition:border-color .2s, transform .2s; }
.up:hover{ border-color:var(--paper); transform:translateY(-2px); }
.up .ud{ font-family:'Outfit',sans-serif; font-weight:500; font-size:0.66rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--paper); }
.up h3{ font-family:'Outfit',sans-serif; font-weight:600; font-size:1.02rem; margin:6px 0 4px; }
.up p{ font-size:0.85rem; color:#4a4742; }

section.cal{ padding:clamp(22px,3.5vh,40px) 0; border-top:1px solid var(--rule); }
h2.sec{ font-family:'DM Serif Display',serif; font-weight:400; font-size:clamp(1.5rem,4vw,2.1rem); margin-bottom:6px; }
h2.sec em{ font-style:italic; color:var(--paper); }
.sec-sub{ font-size:0.95rem; color:var(--paper-faint); margin-bottom:22px; max-width:70ch; }
.venue-tag{ display:inline-block; font-family:'Outfit',sans-serif; font-weight:500; font-size:0.58rem; letter-spacing:0.14em; text-transform:uppercase; padding:3px 9px; border:1px solid var(--rule); color:var(--paper); margin:0 6px 8px 0; }

/* ── fixture rows (sports) ── */
.ev{ display:grid; grid-template-columns:108px 1fr auto; gap:20px; align-items:center; padding:13px 0; border-bottom:1px solid var(--rule); }
.ev:last-child{ border-bottom:none; }
.ev .when .d{ font-family:'Outfit',sans-serif; font-size:clamp(1.2rem,1.7vw,1.45rem); color:var(--paper); font-weight:700; letter-spacing:0.01em; }
.ev .when .y{ font-family:'Outfit',sans-serif; font-weight:500; font-size:0.7rem; color:var(--paper-faint); letter-spacing:0.1em; }
.ev .what h3{ font-family:'Outfit',sans-serif; font-weight:600; font-size:1.05rem; }
.ev .what h3 a{ color:inherit; text-decoration:none; border-bottom:1px solid rgba(17,17,17,0.35); }
.ev .what h3 a:hover{ color:#000; }
.ev .what p{ font-size:0.9rem; color:#4a4742; margin-top:3px; }
.ev .act{ display:flex; flex-direction:column; align-items:flex-end; gap:8px; white-space:nowrap; }
.cta{ font-family:'Outfit',sans-serif; font-weight:700; font-size:0.66rem; letter-spacing:0.12em; text-transform:uppercase; text-decoration:none; color:#fff; background:#111111; border:1px solid #111111; padding:7px 12px; }
.cta:hover{ background:#fff; border-color:#111111; color:#111111; }
.cta.alt{ background:transparent; color:var(--paper); border-color:var(--paper); }
.cta.alt:hover{ background:#111111; color:#fff; }
.cta.dead{ background:transparent; color:var(--paper-faint); border-color:var(--rule); cursor:default; }

/* ── promo ── */
.promo{ background:var(--ink-card); border:1px solid var(--paper); padding:clamp(18px,3vw,28px); margin:6px 0 24px; }
.promo .tag{ font-family:'Outfit',sans-serif; font-weight:500; font-size:0.62rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--paper); }
.promo h3{ font-family:'Outfit',sans-serif; font-weight:700; font-size:clamp(1.3rem,2.8vw,2rem); margin:6px 0 8px; }
.promo h3 em{ font-style:normal; color:var(--paper); }
.promo p{ color:#4a4742; font-size:0.96rem; max-width:66ch; }
.promo .deal{ display:flex; gap:10px; flex-wrap:wrap; margin:14px 0 2px; }
.promo .pchip{ font-family:'Outfit',sans-serif; font-weight:500; font-size:0.66rem; letter-spacing:0.06em; text-transform:uppercase; border:1px solid var(--rule); padding:8px 12px; color:var(--paper); }
.promo .fine{ font-size:0.78rem; color:var(--paper-faint); margin-top:12px; }
.badge{ display:inline-block; font-family:'Outfit',sans-serif; font-weight:500; font-size:0.56rem; letter-spacing:0.14em; text-transform:uppercase; padding:3px 8px; margin:0 6px 6px 0; border:1px solid var(--rule); color:var(--paper-faint); }
.badge.here{ color:#fff; background:#111111; border-color:#111111; }
.badge.ellis{ color:var(--paper); border-color:var(--paper); }
.badge.soldout{ color:#fff; background:#111111; border-color:#111111; }

/* ── live-music magazine features (compact) ── */
.mag-band{ padding:clamp(6px,2vh,14px) 0 clamp(16px,3vh,28px); }
.mag{ display:grid; grid-template-columns:0.58fr 1fr; gap:clamp(18px,3vw,40px); align-items:center; padding:clamp(20px,3.5vh,36px) 0; border-bottom:1px solid var(--rule); }
.mag:last-child{ border-bottom:none; }
.mag.rev .mag-poster{ order:2; }
.mag-poster{ display:block; aspect-ratio:4/5; max-width:300px; width:100%; background:#e6e6e6 center/cover no-repeat; border:1px solid var(--rule); transition:box-shadow 0.2s; }
.mag-poster:hover{ box-shadow:0 14px 30px -16px rgba(0,0,0,0.45); }
.mag-kick{ font-family:'Outfit',sans-serif; font-weight:500; font-size:0.66rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--paper-faint); }
.mag-copy h3{ font-family:'DM Serif Display',serif; font-weight:400; font-size:clamp(1.5rem,3vw,2.1rem); line-height:1.05; margin:8px 0 6px; }
.mag-copy h3 a{ color:var(--paper); text-decoration:none; }
.mag-copy h3 a:hover{ color:#000; text-decoration:underline; }
.mag-date{ font-family:'Outfit',sans-serif; font-weight:500; font-size:0.74rem; letter-spacing:0.04em; color:var(--paper-faint); margin-bottom:14px; }
.mag-story p{ color:#4a4742; margin-bottom:12px; font-size:0.98rem; max-width:54ch; }
.mag .cta{ margin-top:6px; }
@media (max-width:760px){ .mag{ grid-template-columns:1fr; gap:16px; } .mag.rev .mag-poster{ order:0; } .mag-poster{ aspect-ratio:16/10; max-width:none; } }
@media (max-width:680px){ .ev{ grid-template-columns:84px 1fr; } .ev .act{ grid-column:1 / -1; flex-direction:row; align-items:center; justify-content:flex-start; gap:10px; margin-top:2px; } }

/* ── food feast cards ── */
.feasts{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
@media (max-width:680px){ .feasts{ grid-template-columns:1fr; } }
.feast{ background:var(--ink-card); border:1px solid var(--rule); padding:20px 22px 22px; text-decoration:none; color:var(--paper); transition:transform .18s, border-color .18s; }
.feast:hover{ transform:translateY(-3px); border-color:var(--paper); }
.feast h3{ font-family:'DM Serif Display',serif; font-weight:400; font-size:1.4rem; margin:8px 0 6px; }
.feast .fdate{ font-family:'Outfit',sans-serif; font-weight:500; font-size:0.74rem; color:var(--paper); margin-bottom:8px; }
.feast p{ font-size:0.9rem; color:#4a4742; }
.feast .fcta{ display:inline-block; margin-top:12px; font-family:'Outfit',sans-serif; font-weight:500; font-size:0.64rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--paper); border-bottom:1px solid var(--paper); padding-bottom:2px; }
.empty-note{ grid-column:1 / -1; background:var(--ink-card); border:1px dashed var(--rule); padding:18px 20px; font-size:0.92rem; color:#4a4742; }
.empty-note strong{ color:var(--paper); }

/* ── dynamic box-office strip ── */
.live-cal-list{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px}
.live-cal-card{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:8px;padding:14px 16px;min-width:210px;text-decoration:none;color:inherit;transition:transform .15s}
.live-cal-card:hover{transform:translateY(-2px);border-color:var(--paper)}
.live-cal-date{font-family:'Outfit',sans-serif;font-weight:500;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--paper)}
.live-cal-title{font-weight:700;margin:5px 0 9px;font-size:1.05rem;line-height:1.2}
.live-cal-cta{font-size:.8rem;font-weight:600}
.live-cal-subscribe{margin-top:16px;font-size:.85rem;color:var(--paper-faint)}
.live-cal-subscribe a{font-weight:600;text-decoration:underline;text-underline-offset:2px;color:var(--paper)}

/* ── header standard (26 Oct 2026): the page header lives in troyeville-site.css (.page-head).
      Live Sports' badge key sits in its own row under the lede, not inside the sentence. ── */
.page-head .ph-key .badge{ margin:0 3px; vertical-align:1px; }

/* ── one card heading style (26 Oct 2026): special boxes (.promo) now use the same
      DM Serif heading as the feast cards and the page H1 — no more bold-sans box titles. ── */
.promo h3{ font-family:'DM Serif Display',serif; font-weight:400; line-height:1.05; }
.promo h3 em{ font-style:italic; }

/* ── Restaurant-page look for event listing pages (Hulda 21 Oct: Live Sports + Food Feasts "consistent with the other pages").
      Opt-in classes, same values as /restaurant: 21:9 hero, ruled section heads in DM Serif Display caps, Outfit body. ── */
.rs-hero{ margin:clamp(8px,2vh,20px) 0 0; }
.rs-hero img{ display:block; width:100%; aspect-ratio:21/9; object-fit:cover; }
@media (max-width:640px){ .rs-hero img{ aspect-ratio:4/3; } }
.rs-head{ padding:clamp(30px,5vh,52px) 0 clamp(14px,2vh,22px); border-top:2px solid #0a0a0a; margin-top:clamp(28px,5vh,48px); }
.rs-head .ix{ font-family:'Outfit',sans-serif; font-weight:500; font-size:0.7rem; letter-spacing:0.26em; text-transform:uppercase; color:#444; }
.rs-head h2{ font-family:'DM Serif Display',serif; font-weight:400; font-size:clamp(2rem,6vw,3.4rem); line-height:1; text-transform:uppercase; margin:8px 0 0; color:#0a0a0a; }
.rs-head .h2sub{ font-family:'DM Serif Display',serif; font-style:italic; font-size:clamp(1rem,2vw,1.25rem); color:#333; margin-top:10px; max-width:60ch; }
.rs-specials{ list-style:none; margin:0; padding:0; border-top:1px solid rgba(10,10,10,0.14); max-width:760px; }
.rs-specials li{ display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid rgba(10,10,10,0.14); font-family:'Outfit',sans-serif; font-size:1rem; color:#111; }
.rs-specials li strong{ font-weight:600; }
.rs-specials li b{ font-family:'DM Serif Display',serif; font-weight:400; font-size:1.15rem; white-space:nowrap; }
.rs-fine{ font-family:'Outfit',sans-serif; font-size:0.9rem; color:#333; margin:12px 0 18px; }
.rs-btn{ display:inline-block; background:#0a0a0a; color:#fff; border:2px solid #0a0a0a; font-family:'Outfit',sans-serif; font-weight:700; font-size:0.74rem; letter-spacing:0.22em; text-transform:uppercase; padding:14px 24px; text-decoration:none; transition:all .2s; }
.rs-btn:hover{ background:#fff; color:#0a0a0a; }
.rs-cal{ border-top:none !important; padding-top:0 !important; }
