/**
 * Nova skin for The Events Calendar + Event Tickets (RSVP).
 *
 * Event Tickets ships a self-contained "tribe-common" design system driven by
 * --tec-* CSS custom properties. Rather than fight hundreds of selectors, we
 * (1) retheme those tokens to Nova's palette + type, then (2) add a handful of
 * targeted polish rules on the concrete RSVP classes so the block reads as a
 * modern card instead of the stock 2019 look. Loaded AFTER event-tickets CSS.
 */

/* 1. Retheme the design tokens ------------------------------------------- */
.tribe-common,
.tribe-tickets,
.tribe-events {
  --tec-color-accent-primary: var(--nova-primary, #21458c);
  --tec-color-accent-secondary: var(--nova-primary-dark, #173265);  /* darker blue for hovers */
  --tec-color-background: #ffffff;
  --tec-color-text-primary: var(--nova-ink, #1b2340);
  --tec-color-border-active: var(--nova-teal, #0d8a7c);
  --tec-border-radius-default: 10px;
  --tec-font-family-sans-serif: var(--nova-font, 'Inter', system-ui, sans-serif);
}

/* 2. RSVP block as a modern card ---------------------------------------- */
.tribe-tickets__rsvp-wrapper {
  background: #fff;
  border: 1px solid rgba(33, 69, 140, 0.14);
  border-radius: 16px;
  padding: 1.6rem 1.8rem;
  box-shadow: 0 10px 30px rgba(16, 32, 74, 0.08);
  margin: 1.6rem 0;
}

.tribe-tickets__rsvp.tribe-common-g-row {
  align-items: center;
  gap: 1rem 1.5rem;
}

/* Title */
.tribe-tickets__rsvp-title {
  font-family: var(--nova-display, 'Space Grotesk', 'Inter', sans-serif);
  color: var(--nova-primary, #21458c);
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0 0 0.4rem;
}

/* Attendance count — the social-proof number, in Nova teal */
.tribe-tickets__rsvp-attendance {
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
  margin-top: 0.5rem;
}
.tribe-tickets__rsvp-attendance-number {
  color: var(--nova-teal, #0d8a7c);
  font-weight: 800;
  line-height: 1;
}
.tribe-tickets__rsvp-attendance-going {
  color: var(--nova-muted, #5a6482);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.tribe-tickets__rsvp-availability {
  color: var(--nova-muted, #5a6482);
  margin-top: 0.35rem;
}
.tribe-tickets__rsvp-availability-quantity { color: var(--nova-ink, #1b2340); }

/* 3. Buttons — pill, bold, Nova gradient feel --------------------------- */
.tribe-tickets__rsvp-actions-button-going,
.tribe-tickets .tribe-common-c-btn,
.tribe-tickets__rsvp-form-button--submit {
  background: var(--nova-primary, #21458c);
  border: 0;
  border-radius: 999px;
  color: #fff !important;
  font-family: var(--nova-font, 'Inter', sans-serif);
  font-weight: 700;
  letter-spacing: 0.01em;
  padding: 0.7rem 1.6rem;
  min-height: 0;
  transition: background 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
  box-shadow: 0 6px 16px rgba(33, 69, 140, 0.22);
}
.tribe-tickets__rsvp-actions-button-going:hover,
.tribe-tickets .tribe-common-c-btn:hover,
.tribe-tickets__rsvp-form-button--submit:hover {
  background: var(--nova-primary-dark, #173265);
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(33, 69, 140, 0.28);
}

/* Secondary / bordered buttons (e.g. cancel) */
.tribe-tickets .tribe-common-c-btn-border,
.tribe-tickets__rsvp-form-button--cancel {
  background: #fff;
  border: 2px solid var(--nova-primary, #21458c);
  border-radius: 999px;
  color: var(--nova-primary, #21458c) !important;
  font-weight: 700;
  padding: 0.6rem 1.4rem;
  box-shadow: none;
}
.tribe-tickets .tribe-common-c-btn-border:hover,
.tribe-tickets__rsvp-form-button--cancel:hover {
  background: rgba(33, 69, 140, 0.06);
  transform: translateY(-1px);
}

/* 4. RSVP form (name / email / quantity) — modern inputs ---------------- */
.tribe-tickets__rsvp-form-wrapper,
.tribe-tickets__rsvp-ar {
  margin-top: 1.2rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(33, 69, 140, 0.1);
}
.tribe-tickets .tribe-common-form-control-text__input,
.tribe-tickets input[type="text"],
.tribe-tickets input[type="email"],
.tribe-tickets input[type="number"],
.tribe-tickets select {
  border: 1px solid rgba(33, 69, 140, 0.22);
  border-radius: 10px;
  padding: 0.65rem 0.8rem;
  font-family: var(--nova-font, 'Inter', sans-serif);
  color: var(--nova-ink, #1b2340);
  background: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.tribe-tickets .tribe-common-form-control-text__input:focus,
.tribe-tickets input[type="text"]:focus,
.tribe-tickets input[type="email"]:focus,
.tribe-tickets input[type="number"]:focus,
.tribe-tickets select:focus {
  outline: none;
  border-color: var(--nova-teal, #0d8a7c);
  box-shadow: 0 0 0 3px rgba(13, 138, 124, 0.18);
}
.tribe-tickets__rsvp-form-title,
.tribe-tickets .tribe-common-form-control-text__label {
  color: var(--nova-ink, #1b2340);
  font-weight: 600;
}

/* Quantity stepper */
.tribe-tickets__rsvp-form-quantity {
  border-radius: 10px;
  overflow: hidden;
}

/* 5. Confirmed / success state ----------------------------------------- */
.tribe-tickets__rsvp-message--success,
.tribe-tickets__rsvp-ar-going {
  background: rgba(13, 138, 124, 0.08);
  border: 1px solid rgba(13, 138, 124, 0.25);
  border-radius: 12px;
  padding: 0.9rem 1.1rem;
  color: var(--nova-ink, #1b2340);
}
.tribe-tickets__rsvp-message--success svg,
.tribe-tickets__rsvp-ar-going svg { color: var(--nova-teal, #0d8a7c); }

/* Links inside the block (e.g. "log in to RSVP") */
.tribe-tickets__rsvp-wrapper a {
  color: var(--nova-primary, #21458c);
  font-weight: 600;
}
.tribe-tickets__rsvp-wrapper a:hover { color: var(--nova-teal, #0d8a7c); }

/* 6. Loader dots in Nova teal ------------------------------------------ */
.tribe-tickets-loader__dots .tribe-common-c-loader__dot { background-color: var(--nova-teal, #0d8a7c); }

/* Small screens: stack the details + action columns cleanly */
@media (max-width: 600px) {
  .tribe-tickets__rsvp-wrapper { padding: 1.2rem 1.1rem; }
  .tribe-tickets__rsvp.tribe-common-g-row { gap: 0.9rem; }
}

/* PIC uses a native, server-handled RSVP (pic-community) instead of Event
   Tickets' AJAX RSVP block, which does not render its form reliably here.
   Hide the stock block on single events so members see only the working one. */
.single-tribe_events .tribe-tickets__rsvp-wrapper,
.single-tribe_events .tribe-tickets__rsvp { display: none !important; }

/* =======================================================================
   Nova layout for The Events Calendar — single event + list archive.
   CSS only; no backend/template/logic changes.
   ======================================================================= */

/* ---- Single event: center + constrain the classic template ---- */
.single-tribe_events .tribe-events-pg-template {
  width: min(860px, calc(100% - 3rem));
  margin-inline: auto;
  padding: 2.4rem 0 3.5rem;
}
.single-tribe_events #tribe-events-content.tribe-events-single { margin: 0; padding: 0; }

/* TEC makes .tribe_events a flex container (its sidebar layout), which shrink-
   wraps our meta card and leaves dead space beside it. Force normal block flow
   so title, description, RSVP, and the meta card stack full-width top-to-bottom. */
.single-tribe_events .tribe-events-single > .tribe_events,
.single-tribe_events #tribe-events-content > .tribe_events {
  display: block !important;
  width: 100% !important;
}

/* Back to all events */
.single-tribe_events .tribe-events-back { margin: 0 0 1.4rem; font-size: .92rem; }
.single-tribe_events .tribe-events-back a {
  display: inline-flex; align-items: center; gap: .35rem;
  color: var(--nova-primary, #21458c); font-weight: 600;
}
.single-tribe_events .tribe-events-back a:hover { color: var(--nova-teal, #0d8a7c); }

/* Title */
.single-tribe_events .tribe-events-single-event-title {
  font-family: var(--nova-display, 'Space Grotesk', sans-serif);
  color: var(--nova-ink, #10192e);
  font-size: clamp(2rem, 4.5vw, 3rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  margin: 0 0 1.1rem;
}

/* Schedule banner (date/time) as a Nova gradient bar */
.single-tribe_events .tribe-events-schedule {
  display: flex; flex-wrap: wrap; align-items: center; gap: .5rem;
  background: var(--nova-grad-cool, linear-gradient(120deg, #21458c 0%, #0d8a7c 100%));
  color: #fff;
  border-radius: 14px;
  padding: 1rem 1.4rem;
  margin: 0 0 1rem;
  font-family: var(--nova-display, 'Space Grotesk', sans-serif);
  font-weight: 600;
  font-size: 1.08rem;
}
.single-tribe_events .tribe-events-schedule h2 { margin: 0; color: #fff; font-size: inherit; font-weight: inherit; }
.single-tribe_events .tribe-events-schedule .tribe-event-date-start,
.single-tribe_events .tribe-events-schedule .tribe-event-time,
.single-tribe_events .tribe-events-schedule .tribe-events-start-date { color: #fff; }
.single-tribe_events .tribe-events-cost {
  display: inline-block;
  margin: 0 0 1.8rem;
  padding: .3em .95em;
  background: rgba(13, 138, 124, .12);
  color: var(--nova-teal, #0d8a7c);
  border-radius: 999px;
  font-weight: 700;
  font-size: .9rem;
}

/* Description / prose */
.single-tribe_events .tribe-events-single-event-description {
  color: var(--nova-ink-soft, #3d485f);
  font-size: 1.05rem;
  line-height: 1.75;
  margin: 0 0 1.5rem;
}
.single-tribe_events .tribe-events-single-event-description p { margin: 0 0 1rem; }

/* Details + Venue meta as a Nova card, two balanced columns.
   !important + double-class selector to beat The Events Calendar's
   #tribe-events-content / .tribe-events-event-meta{display:flex} rules. */
.single-tribe_events .tribe-events-event-meta.tribe-events-single-section {
  background: #fff;
  border: 1px solid rgba(33, 69, 140, .12);
  border-radius: 16px;
  padding: 1.6rem 1.8rem;
  box-shadow: 0 8px 24px rgba(16, 32, 74, .06);
  margin: 0 0 2rem;
  width: 100% !important;
  float: none !important;
  clear: both !important;
  box-sizing: border-box;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
  gap: 1.4rem 2.5rem !important;
  align-items: start !important;
}
.single-tribe_events .tribe-events-event-meta .tribe-events-meta-group {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}
/* Divider between columns on wide screens */
@media (min-width: 620px) {
  .single-tribe_events .tribe-events-event-meta .tribe-events-meta-group + .tribe-events-meta-group {
    border-left: 1px solid rgba(33, 69, 140, .1);
    padding-left: 2.5rem !important;
  }
}
/* Venue address lines: readable, spaced */
.single-tribe_events .tribe-events-meta-group-venue .tribe-events-meta-value,
.single-tribe_events .tribe-events-meta-group-venue address,
.single-tribe_events .tribe-events-venue-details {
  font-style: normal;
  color: var(--nova-ink, #10192e);
  line-height: 1.55;
}
.single-tribe_events .tribe-events-meta-group-venue .tribe-address { color: var(--nova-ink-soft, #3d485f); }

/* Admin "see who's attending" link inside the RSVP panel */
.pic-rsvp__admin { margin: .2rem 0 1rem; }
.pic-rsvp__admin a {
  display: inline-flex; align-items: center; gap: .35rem;
  font-weight: 600; font-size: .92rem;
  color: var(--nova-teal, #0d8a7c);
}
.pic-rsvp__admin a:hover { color: var(--nova-primary, #21458c); }
.single-tribe_events .tribe-events-single-section-title {
  font-family: var(--nova-display, 'Space Grotesk', sans-serif);
  color: var(--nova-primary, #21458c);
  font-size: 1.2rem;
  margin: 0 0 1rem;
}
.single-tribe_events .tribe-events-meta-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.single-tribe_events .tribe-events-meta-item { display: flex; flex-wrap: wrap; gap: .3rem .8rem; align-items: baseline; margin: 0; }
.single-tribe_events .tribe-events-meta-label {
  color: var(--nova-muted, #667089);
  text-transform: uppercase;
  letter-spacing: .05em;
  font-size: .72rem;
  font-weight: 700;
  min-width: 5.5rem;
}
.single-tribe_events .tribe-events-meta-value { color: var(--nova-ink, #10192e); font-weight: 600; margin: 0; }
.single-tribe_events .tribe-events-meta-value a { color: var(--nova-primary, #21458c); }

/* Add to Calendar dropdown -> Nova ghost pill */
.single-tribe_events .tribe-events-c-subscribe-dropdown__container { margin: 0 0 2rem; }
.single-tribe_events .tribe-events-c-subscribe-dropdown__button {
  border-radius: 999px;
  border: 2px solid var(--nova-primary, #21458c);
  background: #fff;
  color: var(--nova-primary, #21458c);
  font-weight: 700;
  padding: .55rem 1.2rem;
}
.single-tribe_events .tribe-events-c-subscribe-dropdown__button:hover { background: rgba(33, 69, 140, .06); }

/* Prev / next nav */
.single-tribe_events .tribe-events-sub-nav {
  display: flex; justify-content: space-between; gap: 1rem;
  list-style: none; margin: 2rem 0 0; padding: 1.3rem 0 0;
  border-top: 1px solid rgba(33, 69, 140, .12);
}
.single-tribe_events .tribe-events-sub-nav li { margin: 0; background: none; }
.single-tribe_events .tribe-events-sub-nav a { color: var(--nova-primary, #21458c); font-weight: 600; }
.single-tribe_events .tribe-events-sub-nav a:hover { color: var(--nova-teal, #0d8a7c); }

/* Native RSVP panel spacing within the flow */
.single-tribe_events .pic-rsvp { margin: 0 0 2rem; }

/* Hide Event Tickets' redundant "You have N RSVP … View RSVP" notice — our
   native RSVP panel already shows the going state and a cancel action. */
.single-tribe_events .tribe-link-view-attendee { display: none; }

/* ---- Events archive (list view): light card polish ---- */
.tribe-events-calendar-list__event {
  background: #fff;
  border: 1px solid rgba(33, 69, 140, .1);
  border-radius: 14px;
  padding: 1.1rem 1.3rem;
  margin-bottom: 1rem;
  box-shadow: 0 6px 18px rgba(16, 32, 74, .05);
  transition: transform .18s ease, box-shadow .18s ease;
}
.tribe-events-calendar-list__event:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(16, 32, 74, .1); }
.tribe-events-calendar-list__event-title-link { color: var(--nova-primary, #21458c) !important; }
.tribe-events-calendar-list__event-date-tag-daynum { color: var(--nova-teal, #0d8a7c); }
