/* ============================================================
   New Urban Widgets — Card components
   Brand palette baked in so the cards stay on-brand and
   non-coders only edit content through the widget panel.
   ------------------------------------------------------------
   wine #7A1F25 | wine-deep #5C161B | gold #D6BB7E
   ink #14110F  | ink-soft #3A332D | ink-mute #6E645B
   hairline rgba(20,17,15,.10)
   ============================================================ */

/* ---------- shared font helpers ---------- */
.num-fcard, .num-icard, .om-vcard, .om-icard2 {
  --nu-wine: #7A1F25;
  --nu-wine-deep: #5C161B;
  --nu-gold: #D6BB7E;
  --nu-ink: #14110F;
  --nu-ink-soft: #3A332D;
  --nu-ink-mute: #6E645B;
  --nu-hairline: rgba(20,17,15,.10);
  --nu-font-display: "proxima-nova","Proxima Nova","Figtree",system-ui,sans-serif;
  --nu-font-mark: "kepler-std","Kepler Std","Cormorant Garamond",Georgia,serif;
  --nu-font-mono: ui-monospace,"SF Mono",Menlo,monospace;
}

/* ============================================================
   FEATURE CARD  (.num-fcard)  — light ".way" style
   ============================================================ */
.num-fcard {
  background: #fff;
  border: 1px solid var(--nu-hairline);
  border-radius: 10px;
  padding: 32px 30px 28px;
  display: flex;
  flex-direction: column;
  height: 100%;
  position: relative;
  transition: transform .2s, border-color .2s, box-shadow .2s;
}
.num-fcard:hover {
  transform: translateY(-3px);
  border-color: rgba(20,17,15,.18);
  box-shadow: 0 16px 40px -28px rgba(20,17,15,.45);
}
.num-fcard__num {
  font-family: var(--nu-font-mono);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--nu-ink-mute);
  margin-bottom: 2px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 48px;
}
.num-fcard__num--noidx { justify-content: flex-end; }
.num-fcard__icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--nu-hairline);
  display: grid;
  place-items: center;
  color: var(--nu-wine);
  flex-shrink: 0;
  transition: background .2s, color .2s, box-shadow .2s;
}
.num-fcard__icon i,
.num-fcard__icon svg { font-size: 23px; width: 23px; height: 23px; line-height: 1; }
.num-fcard__icon svg { fill: currentColor; }
/* center the glyph in its circle regardless of the icon's intrinsic width */
.num-fcard__icon i { width: 1.25em; text-align: center; }
.num-fcard:not(.num-fcard--accent):hover .num-fcard__icon {
  background: var(--nu-wine);
  box-shadow: inset 0 0 0 1px var(--nu-wine);
  color: #fff;
}
.num-fcard__title {
  font-family: var(--nu-font-display);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.2;
  color: var(--nu-ink);
  margin: 0 0 10px;
}
.num-fcard__price {
  font-family: var(--nu-font-mark);
  font-style: italic;
  color: var(--nu-wine);
  font-size: 18px;
  margin-bottom: 12px;
}
.num-fcard__body {
  font-family: var(--nu-font-display);
  font-size: 15px;
  line-height: 1.6;
  color: var(--nu-ink-soft);
  margin: 0 0 22px;
}
.num-fcard__foot {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--nu-hairline);
  padding-top: 16px;
}
.num-fcard__foot--nochan { justify-content: flex-start; }
.num-fcard__chan {
  font-family: var(--nu-font-mono);
  font-size: 10.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--nu-ink-mute);
}
.num-fcard__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--nu-font-display);
  font-weight: 600;
  font-size: 14.5px;
  color: var(--nu-ink);
  border-bottom: 1.5px solid transparent;
  padding-bottom: 2px;
  text-decoration: none;
  transition: color .15s, border-color .15s;
}
.num-fcard__cta:hover { color: var(--nu-wine); border-color: var(--nu-wine); }
.num-fcard__chev { display: inline-block; transition: transform .2s; }
.num-fcard__cta:hover .num-fcard__chev { transform: translateX(3px); }

/* accent (wine) variant */
.num-fcard--accent {
  background: var(--nu-wine);
  border-color: transparent;
}
.num-fcard--accent .num-fcard__title { color: #fff; }
.num-fcard--accent .num-fcard__num { color: rgba(255,255,255,.65); }
.num-fcard--accent .num-fcard__icon {
  background: rgba(255,255,255,.12);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.28);
  color: #fff;
}
.num-fcard--accent:hover .num-fcard__icon {
  background: #fff;
  box-shadow: inset 0 0 0 1px #fff;
  color: var(--nu-wine);
}
.num-fcard--accent .num-fcard__price { color: var(--nu-gold); }
.num-fcard--accent .num-fcard__body { color: rgba(255,255,255,.85); }
.num-fcard--accent .num-fcard__foot { border-top-color: rgba(255,255,255,.16); }
.num-fcard--accent .num-fcard__chan { color: rgba(255,255,255,.6); }
.num-fcard--accent .num-fcard__cta { color: #fff; }
.num-fcard--accent .num-fcard__cta:hover { color: var(--nu-gold); border-color: var(--nu-gold); }

/* Ways to Give grid: invert to wine on hover (match .num-fcard--accent) */
.om-wtg-grid .num-fcard:not(.num-fcard--accent) {
  transition: transform .2s, border-color .2s, box-shadow .2s, background-color .2s;
}
.om-wtg-grid .num-fcard:not(.num-fcard--accent) .num-fcard__title,
.om-wtg-grid .num-fcard:not(.num-fcard--accent) .num-fcard__num,
.om-wtg-grid .num-fcard:not(.num-fcard--accent) .num-fcard__body,
.om-wtg-grid .num-fcard:not(.num-fcard--accent) .num-fcard__price,
.om-wtg-grid .num-fcard:not(.num-fcard--accent) .num-fcard__chan,
.om-wtg-grid .num-fcard:not(.num-fcard--accent) .num-fcard__cta,
.om-wtg-grid .num-fcard:not(.num-fcard--accent) .num-fcard__foot {
  transition: color .2s, border-color .2s;
}
.om-wtg-grid .num-fcard:not(.num-fcard--accent):hover {
  background: var(--nu-wine);
  border-color: transparent;
}
.om-wtg-grid .num-fcard:not(.num-fcard--accent):hover .num-fcard__title { color: #fff; }
.om-wtg-grid .num-fcard:not(.num-fcard--accent):hover .num-fcard__num { color: rgba(255,255,255,.65); }
.om-wtg-grid .num-fcard:not(.num-fcard--accent):hover .num-fcard__icon {
  background: rgba(255,255,255,.12);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.28);
  color: #fff;
}
.om-wtg-grid .num-fcard:not(.num-fcard--accent):hover .num-fcard__price { color: var(--nu-gold); }
.om-wtg-grid .num-fcard:not(.num-fcard--accent):hover .num-fcard__body { color: rgba(255,255,255,.85); }
.om-wtg-grid .num-fcard:not(.num-fcard--accent):hover .num-fcard__foot { border-top-color: rgba(255,255,255,.16); }
.om-wtg-grid .num-fcard:not(.num-fcard--accent):hover .num-fcard__chan { color: rgba(255,255,255,.6); }
.om-wtg-grid .num-fcard:not(.num-fcard--accent):hover .num-fcard__cta { color: #fff; }
.om-wtg-grid .num-fcard:not(.num-fcard--accent):hover .num-fcard__cta:hover {
  color: var(--nu-gold);
  border-color: var(--nu-gold);
}


/* ============================================================
   ICON CARD  (.num-icard)  — dark ".yw-card" style
   ============================================================ */
.num-icard {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  padding: 24px 22px 22px;
  display: flex;
  flex-direction: column;
  height: 100%;
  position: relative;
  transition: background .2s, border-color .2s, transform .2s;
}
.num-icard:hover {
  background: rgba(255,255,255,.07);
  border-color: rgba(214,187,126,.42);
  transform: translateY(-3px);
}
.num-icard__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
}
.num-icard__num {
  font-family: var(--nu-font-mono);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
}
.num-icard__icon {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--nu-gold);
  display: grid;
  place-items: center;
  color: #fff;
  flex-shrink: 0;
  transition: background .2s, color .2s;
}
.num-icard__icon i,
.num-icard__icon svg { font-size: 22px; width: 22px; height: 22px; line-height: 1; }
.num-icard__icon svg { fill: currentColor; }
/* center the glyph in its circle regardless of the icon's intrinsic width */
.num-icard__icon i { width: 1.25em; text-align: center; }
.num-icard:hover .num-icard__icon { background: var(--nu-wine); color: #fff; }
.num-icard__title {
  font-family: var(--nu-font-display);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0 0 8px;
  line-height: 1.15;
}
.num-icard__body {
  font-family: var(--nu-font-display);
  color: rgba(255,255,255,.72);
  font-size: 14px;
  line-height: 1.55;
  margin: 0 0 18px;
  flex: 1;
}
.num-icard__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--nu-font-display);
  font-weight: 600;
  font-size: 13.5px;
  color: #fff;
  border-bottom: 1.5px solid transparent;
  padding-bottom: 2px;
  align-self: flex-start;
  text-decoration: none;
  transition: color .15s, border-color .15s, gap .15s;
}
.num-icard__chev { font-family: var(--nu-font-mark); font-style: italic; font-size: 17px; }
.num-icard:hover .num-icard__cta { color: var(--nu-gold); border-color: var(--nu-gold); gap: 11px; }

/* ============================================================
   CLICKABLE CARD (stretched link)
   Toggle "Make entire card clickable" extends the CTA link's
   hit area to cover the whole card. Keeps a single real <a>
   (no nested links), so screen readers announce it once.
   ============================================================ */
.num-fcard--clickable,
.num-icard--clickable { cursor: pointer; }
.num-fcard--clickable .num-fcard__cta::after,
.num-icard--clickable .num-icard__cta::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
/* the CTA must stay un-positioned so its ::after stretches to the card,
   not just to the footer link */

/* ============================================================
   OM VENUES  (.om-vcard)  — light venue card
   eyebrow + name + address + body + footer label/value
   ============================================================ */
.om-vcard {
  background: #fff;
  border: 1px solid var(--nu-hairline);
  border-radius: 10px;
  padding: 28px 30px;
  display: flex;
  flex-direction: column;
  height: 100%;
  position: relative;
  transition: transform .2s, border-color .2s, box-shadow .2s;
}
.om-vcard:hover {
  transform: translateY(-3px);
  border-color: rgba(20,17,15,.18);
  box-shadow: 0 16px 40px -28px rgba(20,17,15,.45);
}
.om-vcard__eyebrow {
  display: block;
  font-family: var(--nu-font-mono);
  font-size: 10.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--nu-ink-mute);
  margin-bottom: 10px;
}
.om-vcard__name {
  font-family: var(--nu-font-display);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.2;
  color: var(--nu-ink);
  margin: 0 0 6px;
}
.om-vcard__addr {
  font-family: var(--nu-font-display);
  font-size: 14px;
  line-height: 1.5;
  color: var(--nu-ink-mute);
  margin: 0 0 14px;
}
.om-vcard__addr a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgba(20,17,15,.22);
  transition: color .15s, border-color .15s;
}
.om-vcard__addr a:hover { color: var(--nu-wine); border-color: var(--nu-wine); }
.om-vcard__body {
  font-family: var(--nu-font-display);
  font-size: 15px;
  line-height: 1.6;
  color: var(--nu-ink-soft);
  margin: 0 0 18px;
}
.om-vcard__foot {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid var(--nu-hairline);
  padding-top: 14px;
  font-family: var(--nu-font-mono);
  font-size: 11.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.om-vcard__foot-label { color: var(--nu-ink-mute); }
.om-vcard__foot-value { color: var(--nu-ink); font-weight: 700; text-align: right; }

/* ============================================================
   OM ICON CARDS  (.om-icard2)  — icon box + title + rich body
   built for ticketing-policy rows. Icon always centred.
   ============================================================ */
.om-icard2 {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 22px;
}
.om-icard2__icon {
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: rgba(122,31,37,.06);
  color: var(--nu-wine);
  display: grid;
  place-items: center;
  transition: background .2s, color .2s, box-shadow .2s;
}
.om-icard2__icon i,
.om-icard2__icon svg { font-size: 22px; width: 22px; height: 22px; line-height: 1; }
.om-icard2__icon svg { fill: currentColor; }
/* center the glyph in its box regardless of the icon's intrinsic width */
.om-icard2__icon i { width: 1.25em; text-align: center; }
.om-icard2__content { flex: 1 1 auto; min-width: 0; }
.om-icard2__title {
  font-family: var(--nu-font-display);
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.005em;
  line-height: 1.2;
  color: var(--nu-ink);
  margin: 0 0 12px;
}
.om-icard2__body,
.om-icard2__body p {
  font-family: var(--nu-font-display);
  font-size: 17px;
  line-height: 1.65;
  color: var(--nu-ink-soft);
  margin: 0 0 12px;
}
.om-icard2__body > *:last-child { margin-bottom: 0; }
.om-icard2__body strong { color: var(--nu-ink); }
.om-icard2__body a {
  color: var(--nu-wine);
  border-bottom: 1.5px solid rgba(122,31,37,.35);
  text-decoration: none;
  transition: border-color .15s;
}
.om-icard2__body a:hover { border-bottom-color: var(--nu-wine); }

/* T139 venue name size */
.om-vcard .om-vcard__name{font-size:16px;line-height:1.25;}
