/* ── EVENTS-CSS-START · /events/ demos page · bin/build_events.py ── */
.dm-band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:78% 45%;z-index:-2}
.dm-band::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(26,14,50,.35) 0%,
  rgba(26,14,50,.80) 55%,rgba(26,14,50,.94) 100%)}
.dm-band .wrap{min-height:clamp(240px,28vw,340px);display:flex;flex-direction:column;justify-content:flex-end}
@media(min-width:720px){.dm-band::after{background:linear-gradient(90deg,rgba(26,14,50,.92) 0%,rgba(26,14,50,.78) 38%,
  rgba(26,14,50,.25) 72%,rgba(26,14,50,.05) 100%)}}
.dm-tools{position:sticky;top:0;z-index:20;background:var(--ground);border-bottom:1px solid var(--hair)}
.dm-tools .wrap{padding-top:12px;padding-bottom:12px;display:grid;gap:10px}
.dm-row{display:flex;gap:8px;align-items:center}
.dm-search{flex:1;min-width:0;position:relative}
.dm-search input{width:100%;height:44px;border:1px solid var(--edge);border-radius:12px;background:var(--surface);
  padding:0 14px 0 38px;font:16px/1 var(--sans);color:var(--ink)}
.dm-search input:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.dm-search svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted)}
.dm-views{display:flex;gap:3px;padding:4px;background:var(--sunken);border-radius:12px;flex:none}
.dm-views button{border:0;background:transparent;font:600 14px/1 var(--sans);color:var(--ink-2);
  padding:0 13px;height:36px;border-radius:9px;cursor:pointer}
.dm-views button[aria-pressed="true"]{background:var(--surface);color:var(--brand);box-shadow:0 1px 2px rgba(36,16,70,.12)}
.dm-views button:focus-visible,.dm-chips button:focus-visible,.dm-days button:focus-visible,.dm-nav button:focus-visible,
.dm-cell:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.dm-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter)}
.dm-chips::-webkit-scrollbar{display:none}
.dm-chips button{flex:none;border:1px solid var(--border);background:var(--surface);color:var(--ink-2);
  font:500 13.5px/1 var(--sans);height:36px;padding:0 13px;border-radius:999px;cursor:pointer;white-space:nowrap}
.dm-chips button[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#fff}
.dm-chips b{font-family:var(--label);font-weight:400;font-size:10.5px;margin-left:6px;opacity:.7;font-variant-numeric:tabular-nums}

.dm-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:26px 0 4px}
.dm-head h2{font-size:clamp(22px,5vw,30px);letter-spacing:-.03em;font-weight:800;font-variation-settings:"wdth" 88}
.dm-count{font-family:var(--label);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
  white-space:nowrap;font-variant-numeric:tabular-nums}
.dm-nav{display:flex;gap:6px}
.dm-nav button{width:40px;height:40px;border-radius:10px;border:1px solid var(--edge);background:var(--surface);
  color:var(--ink);cursor:pointer;font:18px/1 var(--sans)}
.dm-nav button:disabled{opacity:.35;cursor:default}

/* list: a date rail beside the day's cards, the shape Eric called viewer friendly */
.dm-day{display:grid;grid-template-columns:52px 1fr;gap:12px;padding:18px 0;border-top:1px solid var(--hair)}
.dm-day:first-of-type{border-top:0}
.dm-date{position:sticky;top:132px;align-self:start;text-align:center;padding-top:4px}
.dm-date span{display:block;font-family:var(--label);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.dm-date strong{display:block;font-family:var(--display);font-size:30px;line-height:1;font-weight:800;color:var(--ink);
  font-variation-settings:"wdth" 88;font-variant-numeric:tabular-nums;margin-top:4px}
.dm-date.is-today span{color:var(--brand)}
.dm-date.is-today strong{color:var(--brand)}
.dm-cards{display:grid;gap:10px;min-width:0}

.dm-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;
  display:grid;grid-template-columns:64px 1fr;gap:0 14px;padding:14px}
.dm-logo{width:64px;height:64px;border-radius:12px;background:var(--sunken);overflow:hidden;display:grid;place-items:center}
.dm-logo img{width:100%;height:100%;object-fit:contain;background:#fff}
.dm-logo i{font-style:normal;font-family:var(--display);font-weight:800;font-size:22px;color:var(--brand);
  letter-spacing:-.03em;font-variation-settings:"wdth" 88}
.dm-body{min-width:0}
.dm-time{font-family:var(--label);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-text);
  font-variant-numeric:tabular-nums}
.dm-brand{font-family:var(--sans);font-size:18px;font-weight:700;letter-spacing:-.015em;line-height:1.25;margin-top:4px;
  color:var(--ink);overflow-wrap:anywhere}
.dm-offer{margin:4px 0 0;color:var(--ink-2);font-size:14.5px;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dm-tag{display:inline-block;margin-left:6px;vertical-align:2px;font-family:var(--label);font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--open);border:1px solid currentColor;border-radius:999px;padding:2px 7px}
.dm-foot{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:12px;padding-top:12px;border-top:1px solid var(--hair);font-size:13.5px}
.dm-where{min-width:0;color:var(--ink-2);line-height:1.35}
.dm-where a,.dm-where strong{color:var(--ink);font-weight:650;text-decoration:none}
.dm-where a:hover{color:var(--link);text-decoration:underline}
.dm-where small{display:block;color:var(--muted);font-size:12.5px}
.dm-acts{display:flex;gap:6px;flex:none}
.dm-acts a{display:inline-flex;align-items:center;height:36px;padding:0 12px;border-radius:10px;font-weight:600;
  font-size:13.5px;text-decoration:none;color:var(--link);border:1px solid var(--edge);background:var(--surface);white-space:nowrap}
.dm-acts a:hover{border-color:var(--brand);color:var(--brand)}
.dm-acts a.dm-cal{width:36px;padding:0;justify-content:center}

/* day strip (Day view): the /deals/ pattern */
.dm-days{display:flex;gap:3px;padding:4px;background:var(--sunken);border-radius:14px;overflow-x:auto;scrollbar-width:none;margin-top:16px}
.dm-days::-webkit-scrollbar{display:none}
.dm-days button{flex:none;width:52px;border:0;background:transparent;border-radius:10px;padding:8px 0 7px;cursor:pointer;
  color:var(--ink-2);font:600 14px/1.1 var(--sans)}
.dm-days button span{display:block;font-family:var(--label);font-weight:400;font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted)}
.dm-days button b{display:block;font-family:var(--label);font-weight:400;font-size:10px;margin-top:4px;color:var(--muted);
  font-variant-numeric:tabular-nums}
.dm-days button[aria-pressed="true"]{background:var(--surface);color:var(--brand);box-shadow:0 1px 2px rgba(36,16,70,.12)}
.dm-days button:disabled{opacity:.4;cursor:default}

/* month grid */
.dm-month{margin-top:14px;display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.dm-dow{font-family:var(--label);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
  text-align:center;padding:4px 0 6px}
.dm-cell{min-height:56px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:6px;
  text-align:left;font:inherit;color:inherit;cursor:pointer;display:flex;flex-direction:column;gap:4px;min-width:0}
.dm-cell[disabled]{cursor:default;background:transparent;border-color:var(--hair)}
.dm-cell.is-out{visibility:hidden}
.dm-cell .n{font-family:var(--label);font-size:11px;color:var(--ink);font-variant-numeric:tabular-nums}
.dm-cell.is-today .n{color:#fff;background:var(--brand);border-radius:999px;width:22px;height:22px;display:grid;place-items:center;margin:-2px}
.dm-cell[disabled] .n{color:var(--muted)}
.dm-cell.is-today .n,.dm-cell.is-today[disabled] .n{color:#fff}
.dm-dots{display:flex;flex-wrap:wrap;gap:3px}
.dm-dots i{width:6px;height:6px;border-radius:50%;background:var(--brand)}
.dm-cell ul{display:none;list-style:none;margin:0;padding:0}
.dm-cell li{font-size:12px;line-height:1.3;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dm-cell li b{font-family:var(--label);font-weight:400;font-size:10px;color:var(--gold-text);margin-right:4px}
.dm-cell .more{font-size:11.5px;color:var(--link);font-weight:600}

.dm-empty{margin:18px 0 0;padding:28px 18px;text-align:center;background:var(--surface);border:1px dashed var(--edge);
  border-radius:16px;color:var(--muted);font-size:14.5px}
.dm-empty button{margin-top:10px;border:0;background:none;color:var(--link);font:600 14.5px var(--sans);cursor:pointer;
  text-decoration:underline}
.dm-subscribe{margin-top:18px;display:flex;gap:8px;flex-wrap:wrap}

/* the vendor panel: how a brand books a slot */
.dm-vendor{margin-top:16px;background:var(--deep);color:#fff;border-radius:20px;padding:24px 20px}
.dm-vendor .lbl{color:var(--gold);margin:0 0 10px}
.dm-vendor h2{color:#fff}
.dm-vendor ol{margin:16px 0 0;padding:0;list-style:none;display:grid;gap:12px;counter-reset:s}
.dm-vendor li{position:relative;padding-left:40px;color:rgba(255,255,255,.86);font-size:14.5px;line-height:1.5}
.dm-vendor li::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:-2px;width:28px;height:28px;
  border-radius:50%;border:1px solid var(--deep-hair);display:grid;place-items:center;font-family:var(--label);
  font-size:11px;color:var(--gold)}
.dm-vendor li b{color:#fff;font-weight:650}
.dm-vendor .pg-act{margin-top:20px}

@media(min-width:720px){
  .dm-tools .wrap{grid-template-columns:1fr auto;align-items:center}
  .dm-chips{grid-column:1/-1;margin:0;padding:0;flex-wrap:wrap;overflow:visible}
  .dm-day{grid-template-columns:72px 1fr;gap:20px}
  .dm-date{top:116px}
  .dm-date strong{font-size:38px}
  .dm-card{grid-template-columns:88px 1fr auto;gap:0 18px;padding:16px;align-items:center}
  .dm-logo{width:88px;height:88px}
  .dm-foot{grid-column:auto;margin:0;padding:0 0 0 18px;border-top:0;border-left:1px solid var(--hair);
    flex-direction:column;align-items:flex-start;justify-content:center;min-width:230px;align-self:stretch}
  .dm-cell{min-height:104px}
  .dm-dots{display:none}
  .dm-cell ul{display:block}
  .dm-vendor{padding:36px 40px;display:grid;grid-template-columns:1fr 1.2fr;gap:12px 48px;align-items:start}
  .dm-vendor ol{margin:0}
}
/* EVENTS-CSS-END */
