/* ───────────────────────────────────────────────────────────
   andrewwolhuter.com — EVENTS module styles
   Layers on tokens.css + site.css. Editorial-bold, monochrome +
   single yellow punch, aviation spine. The ticket is a boarding pass.
   ─────────────────────────────────────────────────────────── */

/* ── Listing: series header ──────────────────────────────── */
.ev-listhero{ background:var(--aw-black); color:#fff; padding-block:clamp(120px,16vw,200px) clamp(56px,7vw,96px); overflow:hidden; }
.ev-listhero .wrap{ position:relative; z-index:2; }
.ev-listhero__eyebrow{ color:var(--accent); }
.ev-listhero h1{ font-size:clamp(48px,8vw,120px); line-height:.86; letter-spacing:-0.03em; margin-top:18px; }
.ev-listhero h1 em{ font-style:italic; color:var(--accent); }
.ev-listhero__sub{ color:rgba(255,255,255,.74); font-size:clamp(15px,1.4vw,20px); line-height:1.55; max-width:56ch; margin-top:22px; font-weight:300; }

/* ── Listing: the cards ──────────────────────────────────── */
.ev-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
/* a single upcoming card sits in the left column at card size, so the
   next event slots in beside it — it never blows up to full width */
.ev-grid--solo{ grid-template-columns:repeat(2,1fr); }
.ev-card{ position:relative; display:flex; flex-direction:column; background:var(--bg-panel); border-radius:var(--radius-lg);
  overflow:hidden; box-shadow:var(--shadow-1); text-decoration:none; color:var(--fg-1);
  transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base); }
.ev-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-3); }
.ev-card__media{ position:relative; aspect-ratio:16/10; background:#111 center/cover; overflow:hidden; }
.ev-card__media img{ width:100%; height:100%; object-fit:cover; transition:transform var(--dur-slow) var(--ease-out); }
.ev-card:hover .ev-card__media img{ transform:scale(1.04); }
.ev-card__datechip{ position:absolute; top:14px; left:14px; z-index:2; background:#fff; border-radius:var(--radius-md);
  padding:8px 12px; text-align:center; box-shadow:var(--shadow-2); line-height:1; }
.ev-card__datechip .d{ font-family:var(--font-display); font-weight:900; font-size:26px; color:var(--aw-black); }
.ev-card__datechip .m{ font-family:var(--font-body); font-weight:700; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--fg-3); margin-top:2px; }
.ev-card__body{ padding:24px 26px 26px; display:flex; flex-direction:column; gap:12px; flex:1; }
.ev-card__no{ font-family:var(--font-body); font-weight:600; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
.ev-card__title{ font-family:var(--font-display); font-weight:900; text-transform:uppercase; font-size:clamp(24px,2.4vw,34px); line-height:.98; letter-spacing:-0.01em; }
.ev-card__meta{ display:flex; flex-wrap:wrap; gap:8px 18px; font-size:13px; color:var(--fg-2); }
.ev-card__meta span{ display:inline-flex; align-items:center; gap:7px; }
.ev-card__meta .ic{ width:6px; height:6px; border-radius:999px; background:var(--accent); flex:none; }
.ev-card__foot{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:auto; padding-top:16px; border-top:1px solid var(--divider); }
.ev-card__price{ font-family:var(--font-display); font-weight:800; font-size:18px; }
.ev-card__price small{ font-family:var(--font-body); font-weight:600; font-size:11px; color:var(--fg-3); letter-spacing:.04em; text-transform:uppercase; display:block; }
.ev-card__go{ font-family:var(--font-display); font-weight:700; display:inline-flex; align-items:center; gap:8px; font-size:14px; }
.ev-card:hover .ev-card__go .arrow{ transform:translateX(4px); }
.ev-card__go .arrow{ transition:transform var(--dur-base) var(--ease-snap); }
.ev-card.is-past{ opacity:.96; }
.ev-card.is-past .ev-card__media img{ filter:grayscale(1) contrast(1.02); }

/* status ribbons on cards */
.ev-ribbon{ position:absolute; top:14px; right:14px; z-index:2; font-family:var(--font-body); font-weight:700;
  font-size:10px; letter-spacing:.1em; text-transform:uppercase; padding:6px 11px; border-radius:999px; }
.ev-ribbon--few{ background:var(--accent); color:var(--aw-black); }
.ev-ribbon--out{ background:var(--aw-black); color:#fff; }
.ev-ribbon--past{ background:rgba(255,255,255,.9); color:var(--fg-2); }

/* small section label used between upcoming / past */
.ev-divlabel{ display:flex; align-items:center; gap:16px; margin:0 0 26px; }
.ev-divlabel h2{ font-size:clamp(22px,2.4vw,32px); }
.ev-divlabel::after{ content:""; flex:1; height:1px; background:var(--border); }

/* ── Detail hero ─────────────────────────────────────────── */
.ev-hero{ position:relative; background:var(--aw-black); color:#fff; overflow:hidden; padding-block:clamp(120px,15vw,180px) clamp(48px,6vw,80px); }
.ev-hero__bg{ position:absolute; inset:0; z-index:0; }
.ev-hero__bg img{ width:100%; height:100%; object-fit:cover; opacity:.32; filter:grayscale(.3); }
.ev-hero__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,20,20,.55) 0%, rgba(20,20,20,.78) 60%, var(--aw-black) 100%); }
.ev-hero .wrap{ position:relative; z-index:2; }
.ev-hero__grid{ display:grid; grid-template-columns:1.35fr .65fr; gap:clamp(28px,5vw,72px); align-items:end; }
.ev-hero__no{ display:inline-flex; align-items:center; gap:10px; color:var(--accent); font-family:var(--font-body);
  font-weight:600; font-size:12px; letter-spacing:.16em; text-transform:uppercase; }
.ev-hero__title{ font-family:var(--font-display); font-weight:900; text-transform:uppercase;
  font-size:clamp(44px,7vw,108px); line-height:.86; letter-spacing:-0.03em; margin:18px 0 0; }
.ev-hero__tagline{ font-family:var(--font-display); font-weight:500; text-transform:none; font-style:italic;
  font-size:clamp(18px,2vw,28px); line-height:1.2; color:#fff; margin-top:20px; max-width:24ch; }
.ev-hero__facts{ display:flex; flex-wrap:wrap; gap:10px 14px; margin-top:30px; }
.ev-fact{ display:inline-flex; align-items:center; gap:10px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14);
  border-radius:999px; padding:10px 16px; font-size:13.5px; font-weight:500; }
.ev-fact .k{ color:rgba(255,255,255,.5); font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.ev-fact .v{ color:#fff; font-weight:600; }

/* ── Booking card (sticky on detail) ─────────────────────── */
.ev-book{ background:var(--bg-panel); border-radius:var(--radius-lg); box-shadow:var(--shadow-3); overflow:hidden; }
.ev-book__top{ background:var(--aw-black); color:#fff; padding:22px 24px; position:relative; overflow:hidden; }
.ev-book__top .ast{ position:absolute; top:-26px; right:-26px; width:120px; opacity:.12; }
.ev-book__from{ font-family:var(--font-body); font-weight:600; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.ev-book__price{ font-family:var(--font-display); font-weight:900; font-size:clamp(38px,4.4vw,52px); line-height:1; margin-top:6px; color:#fff; }
.ev-book__price .cur{ color:var(--accent); }
.ev-book__pricenote{ font-size:12px; color:rgba(255,255,255,.6); margin-top:8px; }
.ev-book__body{ padding:22px 24px 24px; }

/* seats-remaining counter */
.ev-seats{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.ev-seats__bar{ flex:1; height:8px; border-radius:999px; background:var(--aw-ink-100); overflow:hidden; }
.ev-seats__bar i{ display:block; height:100%; background:var(--accent); border-radius:999px; transition:width var(--dur-slow) var(--ease-out); }
.ev-seats__n{ font-size:12.5px; font-weight:600; color:var(--fg-2); white-space:nowrap; }
.ev-seats__n b{ color:var(--aw-black); }
.ev-seats.is-low .ev-seats__bar i{ background:#d8412f; }
.ev-seats.is-low .ev-seats__n b{ color:#d8412f; }

.ev-book .btn{ width:100%; justify-content:center; }
.ev-book__perks{ list-style:none; margin:18px 0 0; padding:16px 0 0; border-top:1px solid var(--divider); display:flex; flex-direction:column; gap:11px; }
.ev-book__perks li{ display:flex; gap:11px; align-items:flex-start; font-size:13.5px; color:var(--fg-2); line-height:1.45; }
.ev-book__perks .tick{ width:18px; height:18px; flex:none; border-radius:999px; background:var(--accent); color:var(--aw-black);
  display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:900; margin-top:1px; }
.ev-book__safe{ display:flex; align-items:center; gap:8px; justify-content:center; margin-top:16px; font-size:11.5px; color:var(--fg-3); }

/* ── Detail content blocks ───────────────────────────────── */
.ev-body{ background:var(--bg-page); }
.ev-detailgrid{ display:grid; grid-template-columns:1.5fr .9fr; gap:clamp(28px,5vw,64px); align-items:start; }
.ev-detailgrid__aside{ position:sticky; top:96px; }
.ev-prose p{ font-size:clamp(15px,1.2vw,18px); line-height:1.7; color:var(--fg-2); margin:0 0 18px; max-width:60ch; }
.ev-prose p.lead{ font-size:clamp(18px,1.6vw,23px); color:var(--fg-1); font-weight:400; line-height:1.5; }

/* agenda (a runway timeline) */
.ev-agenda{ margin-top:8px; border-left:2px solid var(--border); padding-left:0; }
.ev-agenda__row{ position:relative; display:grid; grid-template-columns:78px 1fr; gap:18px; padding:14px 0 14px 26px; }
.ev-agenda__row::before{ content:""; position:absolute; left:-7px; top:20px; width:12px; height:12px; border-radius:999px; background:var(--accent); box-shadow:0 0 0 4px var(--bg-page); }
.ev-agenda__t{ font-family:var(--font-display); font-weight:800; font-size:16px; color:var(--aw-black); }
.ev-agenda__l{ font-size:14.5px; color:var(--fg-2); line-height:1.4; align-self:center; }

/* includes chips on detail */
.ev-includes{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:8px; }
.ev-inc{ background:var(--bg-panel); border-radius:var(--radius-md); padding:18px 20px; box-shadow:var(--shadow-1); }
.ev-inc .k{ font-family:var(--font-display); font-weight:800; text-transform:uppercase; font-size:15px; }
.ev-inc .t{ font-size:13px; color:var(--fg-2); margin-top:6px; line-height:1.5; }

/* host strip */
.ev-host{ display:flex; gap:20px; align-items:center; background:var(--aw-black); color:#fff; border-radius:var(--radius-lg); padding:24px 26px; }
.ev-host img{ width:84px; height:84px; border-radius:999px; object-fit:cover; flex:none; }
.ev-host .k{ color:var(--accent); font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.ev-host .t{ font-family:var(--font-display); font-weight:800; text-transform:uppercase; font-size:20px; margin-top:4px; }
.ev-host .b{ font-size:13.5px; color:rgba(255,255,255,.72); line-height:1.55; margin-top:8px; max-width:52ch; }

/* ══ CHECKOUT — desktop slide-over / mobile inline ══════════ */
.co-scrim{ position:fixed; inset:0; z-index:1600; background:rgba(20,18,16,.55); backdrop-filter:blur(3px);
  opacity:0; pointer-events:none; transition:opacity var(--dur-base); }
.co-scrim.is-open{ opacity:1; pointer-events:auto; }

/* the panel itself */
.co{ position:fixed; top:0; right:0; bottom:0; z-index:1700; width:min(460px,94vw); background:var(--aw-stone);
  transform:translateX(100%); transition:transform var(--dur-slow) var(--ease-out); display:flex; flex-direction:column; box-shadow:var(--shadow-3); }
.co.is-open{ transform:none; }
.co__head{ padding:20px 24px 16px; background:var(--aw-black); color:#fff; flex:none; }
.co__steps{ display:flex; align-items:center; gap:8px; margin-top:14px; }
.co__step{ display:flex; align-items:center; gap:8px; font-size:11px; font-weight:600; letter-spacing:.04em; color:rgba(255,255,255,.45); }
.co__step .n{ width:22px; height:22px; border-radius:999px; background:rgba(255,255,255,.12); color:#fff; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; flex:none; }
.co__step.is-on{ color:#fff; } .co__step.is-on .n{ background:var(--accent); color:var(--aw-black); }
.co__step.is-done .n{ background:var(--accent); color:var(--aw-black); }
.co__steptail{ flex:1; height:1px; background:rgba(255,255,255,.14); }
.co__close{ position:absolute; top:18px; right:18px; background:none; border:none; color:#fff; cursor:pointer; font-size:20px; padding:4px; line-height:1; opacity:.7; }
.co__close:hover{ opacity:1; }
.co__evtitle{ font-family:var(--font-display); font-weight:800; text-transform:uppercase; font-size:18px; line-height:1; padding-right:30px; }
.co__evmeta{ font-size:12px; color:rgba(255,255,255,.6); margin-top:6px; }
.co__body{ flex:1; overflow-y:auto; padding:22px 24px; }
.co__foot{ flex:none; padding:16px 24px; background:var(--bg-panel); border-top:1px solid var(--divider); }
.co__total{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:12px; }
.co__total .l{ font-size:12px; color:var(--fg-3); font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.co__total .v{ font-family:var(--font-display); font-weight:900; font-size:26px; }
.co__foot .btn{ width:100%; justify-content:center; }

/* inline (mobile) mode — same markup, different host */
.co-inline{ margin-top:18px; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-2);
  display:grid; grid-template-rows:0fr; transition:grid-template-rows var(--dur-slow) var(--ease-out); }
.co-inline.is-open{ grid-template-rows:1fr; }
.co-inline__inner{ overflow:hidden; }
.co-inline .co__head{ border-radius:0; }
.co-inline .co__body{ overflow:visible; }

/* tier selector */
.co-tier{ display:flex; align-items:center; gap:14px; width:100%; text-align:left; cursor:pointer;
  background:var(--bg-panel); border:1.5px solid var(--border); border-radius:var(--radius-md); padding:16px 18px; margin-bottom:12px;
  transition:border-color var(--dur-base), box-shadow var(--dur-base); }
.co-tier:hover{ border-color:var(--aw-ink-300); }
.co-tier.is-sel{ border-color:var(--aw-black); box-shadow:var(--shadow-yellow); }
.co-tier__radio{ width:20px; height:20px; border-radius:999px; border:2px solid var(--aw-ink-300); flex:none; position:relative; }
.co-tier.is-sel .co-tier__radio{ border-color:var(--aw-black); }
.co-tier.is-sel .co-tier__radio::after{ content:""; position:absolute; inset:3px; border-radius:999px; background:var(--accent); }
.co-tier__name{ font-family:var(--font-display); font-weight:800; text-transform:uppercase; font-size:15px; }
.co-tier__note{ font-size:12px; color:var(--fg-3); margin-top:3px; }
.co-tier__price{ margin-left:auto; font-family:var(--font-display); font-weight:900; font-size:20px; }
.co-tier.is-disabled{ opacity:.5; pointer-events:none; }
.co-tier__tag{ display:inline-block; background:var(--accent); color:var(--aw-black); font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:2px 7px; border-radius:999px; margin-left:8px; vertical-align:middle; }

/* qty stepper */
.co-qty{ display:flex; align-items:center; justify-content:space-between; margin-top:6px; padding:14px 2px; }
.co-qty__lab{ font-size:13.5px; font-weight:600; }
.co-qty__ctl{ display:flex; align-items:center; gap:4px; background:var(--bg-panel); border:1.5px solid var(--border); border-radius:999px; padding:4px; }
.co-qty__ctl button{ width:32px; height:32px; border-radius:999px; border:none; background:none; cursor:pointer; font-size:18px; font-weight:700; color:var(--aw-black); display:flex; align-items:center; justify-content:center; }
.co-qty__ctl button:hover{ background:var(--aw-ink-100); }
.co-qty__ctl button:disabled{ opacity:.3; cursor:not-allowed; }
.co-qty__n{ min-width:28px; text-align:center; font-family:var(--font-display); font-weight:800; font-size:18px; }

/* form fields */
.co-field{ margin-bottom:14px; }
.co-field label{ display:block; font-size:12px; font-weight:600; color:var(--fg-2); margin-bottom:6px; }
.co-field label .opt{ color:var(--fg-3); font-weight:500; text-transform:none; letter-spacing:0; }
.co-field input, .co-field textarea, .co-field select{ width:100%; font-family:var(--font-body); font-size:15px; padding:13px 15px;
  border:1.5px solid var(--border); border-radius:var(--radius-md); background:var(--bg-panel); color:var(--fg-1); }
.co-field input:focus, .co-field textarea:focus, .co-field select:focus{ outline:2px solid var(--accent); outline-offset:1px; border-color:var(--aw-black); }
.co-field textarea{ min-height:64px; resize:vertical; }
.co-field.is-err input, .co-field.is-err textarea{ border-color:#d8412f; }
.co-field .err{ color:#d8412f; font-size:12px; margin-top:5px; display:none; }
.co-field.is-err .err{ display:block; }
.co-row2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }

/* payfast-style payment block */
.co-pay{ }
.co-pay__brandrow{ display:flex; align-items:center; gap:10px; background:var(--bg-panel); border:1.5px solid var(--border); border-radius:var(--radius-md); padding:14px 16px; margin-bottom:16px; }
.co-pay__pf{ display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:14px; color:#1F8A5B; }
.co-pay__pf .dot{ width:18px; height:18px; border-radius:5px; background:#1F8A5B; color:#fff; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:900; }
.co-pay__methods{ margin-left:auto; display:flex; gap:6px; }
.co-pay__methods span{ font-size:10px; font-weight:700; letter-spacing:.04em; color:var(--fg-3); border:1px solid var(--border); border-radius:5px; padding:4px 7px; }
.co-pay__card{ position:relative; }
.co-pay__card .ccico{ position:absolute; right:14px; top:50%; transform:translateY(-50%); font-size:18px; color:var(--fg-3); }
.co-summary{ background:var(--bg-panel); border-radius:var(--radius-md); padding:16px 18px; margin-bottom:18px; }
.co-summary__row{ display:flex; justify-content:space-between; align-items:baseline; font-size:13.5px; padding:5px 0; }
.co-summary__row.tot{ border-top:1px solid var(--divider); margin-top:6px; padding-top:12px; font-family:var(--font-display); font-weight:800; font-size:18px; }
.co-summary__row .muted{ color:var(--fg-3); }

/* processing + success */
.co-processing{ text-align:center; padding:40px 0; }
.co-processing .ring{ width:54px; height:54px; border-radius:999px; border:4px solid var(--aw-ink-100); border-top-color:var(--accent); margin:0 auto 20px; animation:cospin .8s linear infinite; }
@keyframes cospin{ to{ transform:rotate(360deg); } }
.co-processing .t{ font-family:var(--font-display); font-weight:800; text-transform:uppercase; font-size:18px; }
.co-processing .s{ font-size:13px; color:var(--fg-3); margin-top:8px; }
.co-success{ text-align:center; }
.co-success__check{ width:64px; height:64px; border-radius:999px; background:var(--accent); color:var(--aw-black); display:flex; align-items:center; justify-content:center; font-size:32px; font-weight:900; margin:6px auto 16px; animation:copop .5s var(--ease-snap); }
@keyframes copop{ 0%{ transform:scale(.4); opacity:0; } 100%{ transform:scale(1); opacity:1; } }
.co-success__t{ font-family:var(--font-display); font-weight:900; text-transform:uppercase; font-size:clamp(24px,3vw,32px); line-height:.96; }
.co-success__s{ font-size:14px; color:var(--fg-2); margin-top:10px; line-height:1.5; }
.co-success__email{ font-size:12.5px; color:var(--fg-3); margin-top:6px; }
.co-success__actions{ display:flex; flex-direction:column; gap:10px; margin-top:22px; }
.co-success__actions .btn{ width:100%; justify-content:center; }

/* ══ BOARDING-PASS TICKET ══════════════════════════════════ */
.bpass{ position:relative; background:var(--aw-white); border-radius:16px; overflow:hidden; box-shadow:var(--shadow-3);
  text-align:left; margin:0 auto; max-width:380px; }
.bpass__stub-line{ position:absolute; top:0; bottom:0; left:var(--stub,72%); width:0; border-left:2px dashed var(--aw-ink-200); z-index:3; }
.bpass__notch{ position:absolute; left:var(--stub,72%); width:18px; height:18px; border-radius:999px; background:var(--aw-stone); transform:translateX(-50%); z-index:4; }
.bpass__notch.t{ top:-9px; } .bpass__notch.b{ bottom:-9px; }
.bpass__head{ background:var(--aw-black); color:#fff; padding:16px 20px; display:flex; align-items:center; justify-content:space-between; }
.bpass__brand{ display:flex; align-items:center; gap:9px; }
.bpass__brand img{ height:18px; width:auto; }
.bpass__brand .lbl{ font-family:var(--font-display); font-weight:800; text-transform:uppercase; font-size:11px; letter-spacing:.1em; }
.bpass__class{ font-family:var(--font-body); font-weight:600; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.bpass__main{ display:grid; grid-template-columns:1fr auto; }
.bpass__info{ padding:18px 20px; }
.bpass__route{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.bpass__route .pt{ font-family:var(--font-display); font-weight:900; font-size:13px; text-transform:uppercase; letter-spacing:.04em; }
.bpass__route .pt small{ display:block; font-family:var(--font-body); font-weight:600; font-size:9px; color:var(--fg-3); letter-spacing:.06em; }
.bpass__route .plane{ flex:1; position:relative; height:14px; }
.bpass__route .plane::before{ content:""; position:absolute; left:0; right:0; top:50%; border-top:1.5px dashed var(--aw-ink-300); }
.bpass__route .plane svg{ position:absolute; right:0; top:50%; transform:translateY(-50%); }
.bpass__rows{ display:grid; grid-template-columns:1fr 1fr; gap:12px 10px; }
.bpass__cell .k{ font-family:var(--font-body); font-weight:600; font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--fg-3); }
.bpass__cell .v{ font-family:var(--font-display); font-weight:800; font-size:15px; text-transform:uppercase; margin-top:2px; line-height:1.05; }
.bpass__cell .v.sm{ font-size:12.5px; }
.bpass__stub{ padding:16px 14px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; border-left:0; background:var(--aw-white); }
.bpass__qr{ width:104px; height:104px; background:#fff; border-radius:8px; display:flex; align-items:center; justify-content:center; }
.bpass__qr canvas, .bpass__qr img{ width:100%; height:100%; display:block; border-radius:6px; }
.bpass__ref{ font-family:var(--font-mono); font-size:11px; font-weight:600; letter-spacing:.06em; color:var(--fg-2); }
.bpass__barcode{ height:32px; background-image:repeating-linear-gradient(90deg,#202020 0 2px,transparent 2px 4px,#202020 4px 5px,transparent 5px 9px); margin:0; }
.bpass__foot{ background:var(--aw-stone); padding:10px 20px; font-size:10px; color:var(--fg-3); display:flex; justify-content:space-between; }

/* on the public confirmation we render slightly larger */
.bpass--lg{ max-width:440px; }

/* waitlist */
.co-waitlist{ }
.co-waitlist .lead{ font-size:14px; color:var(--fg-2); line-height:1.55; margin-bottom:16px; }

@media (max-width:920px){
  .ev-grid{ grid-template-columns:1fr; }
  .ev-hero__grid{ grid-template-columns:1fr; align-items:start; }
  .ev-detailgrid{ grid-template-columns:1fr; }
  .ev-detailgrid__aside{ position:static; }
  .ev-includes{ grid-template-columns:1fr; }
}

/* ═══════════════════════════════════════════════════════════
   Round-3 polish — square framed tiles, glowing CTAs, live
   "what you get" cards. Appended so these win over the base rules.
   ═══════════════════════════════════════════════════════════ */

/* listing card: a square, black-and-white photo inside a yellow frame */
.ev-card__media{ aspect-ratio:1/1; }
.ev-card__media img{ filter:grayscale(1) contrast(1.04); transition:filter var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out); }
.ev-card:hover .ev-card__media img{ filter:grayscale(0) contrast(1); transform:scale(1.04); }
.ev-card__media::after{ content:""; position:absolute; inset:0; border:4px solid var(--accent); pointer-events:none; z-index:3; }

/* the listing CTA becomes a real, glowing pill button */
.ev-card__go.is-glow{ background:var(--accent); color:var(--aw-black); padding:11px 20px; border-radius:999px;
  font-family:var(--font-display); font-weight:800; letter-spacing:.01em; animation:awGlow 2.2s ease-in-out infinite; }
.ev-card:hover .ev-card__go.is-glow{ background:var(--aw-black); color:#fff; }
.ev-card__go.is-glow .arrow{ transition:transform var(--dur-base) var(--ease-snap); }
.ev-card:hover .ev-card__go.is-glow .arrow{ transform:translateX(4px); }

/* primary booking/reserve button glow (detail page + drawer) */
.btn.is-glow{ animation:awGlow 2.2s ease-in-out infinite; }

@keyframes awGlow{
  0%, 100% { box-shadow:0 0 0 0 rgba(254,212,3,.0); }
  50%      { box-shadow:0 0 24px 4px rgba(254,212,3,.55); }
}

/* "What you get" tiles: lift + yellow glow + a sliding top accent on hover */
.ev-inc{ position:relative; overflow:hidden; transition:transform .22s var(--ease-out), box-shadow .22s var(--ease-out); }
.ev-inc::before{ content:""; position:absolute; left:0; right:0; top:0; height:3px; background:var(--accent);
  transform:scaleX(0); transform-origin:left; transition:transform .28s var(--ease-out); }
.ev-inc:hover{ transform:translateY(-5px); box-shadow:0 14px 34px rgba(254,212,3,.26), var(--shadow-2); }
.ev-inc:hover::before{ transform:scaleX(1); }
.ev-inc:hover .k{ color:var(--aw-black); }

/* respect reduced-motion: no pulsing for those who ask for calm */
@media (prefers-reduced-motion: reduce){
  .ev-card__go.is-glow, .btn.is-glow{ animation:none; }
  .ev-card__media img, .ev-inc, .ev-inc::before{ transition:none; }
}
