/* ==========================================================================
   Ship 3 — show_times additions.
   Linked AFTER show-page.css and design-system.css. Purely additive.
   ========================================================================== */

/* --- Listings: showtime label under venue ---------------------------------- */
.shared-show-time {
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
  letter-spacing: 0.04em;
}

/* --- Show page: list of multiple showtimes inside the ticket card --------- */
.showtime-list {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}
.showtime-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 16px 18px;
  background: rgba(245,184,0,0.04);
  border: 1px solid rgba(245,184,0,0.18);
  border-radius: 12px;
  transition: border-color .2s, background .2s, transform .15s;
}
.showtime-row:hover {
  border-color: rgba(245,184,0,0.45);
  background: rgba(245,184,0,0.07);
  transform: translateY(-1px);
}
.showtime-meta { min-width: 0; }
.showtime-date {
  font-family: var(--display);
  font-weight: 800;
  font-size: 14px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--white);
  line-height: 1.1;
}
.showtime-time {
  font-size: 13px;
  color: var(--gold);
  font-weight: 600;
  margin-top: 2px;
  letter-spacing: 0.04em;
}
.showtime-note {
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
}
.showtime-btn {
  white-space: nowrap;
  min-height: 44px;
  padding: 0 22px;
  font-size: 12px;
  letter-spacing: 0.18em;
}

@media (max-width: 540px) {
  .showtime-row {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 14px 16px;
    text-align: center;
  }
  .showtime-btn { width: 100%; }
}

/* === Ship 3c — refined single-artist card on desktop ====================== */
@media (min-width: 1025px) {
  /* Full container width — match other sections */
  .artists-wrap {
    width: min(100% - 48px, var(--container, 1200px));
  }
  /* Hero card — gap between photo and text, generous breathing room */
  .artists-grid:not(.is-2):not(.is-3):not(.is-4) .artist-card {
    grid-template-columns: minmax(360px, 40%) minmax(0, 1fr);
    column-gap: 56px;
    border-radius: 28px;
    box-shadow: 0 24px 80px rgba(0,0,0,0.28);
    padding: 0;
  }
  .artists-grid:not(.is-2):not(.is-3):not(.is-4) .artist-photo {
    min-height: 520px;
  }
  .artists-grid:not(.is-2):not(.is-3):not(.is-4) .artist-info {
    padding: 64px 72px 64px 0;
  }
  .artists-grid:not(.is-2):not(.is-3):not(.is-4) .artist-role {
    font-size: 11px;
    margin-bottom: 14px;
  }
  .artists-grid:not(.is-2):not(.is-3):not(.is-4) .artist-name {
    font-size: clamp(44px, 4.8vw, 72px);
    line-height: 0.95;
    letter-spacing: -0.025em;
    margin-bottom: 18px;
  }
  .artists-grid:not(.is-2):not(.is-3):not(.is-4) .artist-divider {
    width: 56px;
    height: 3px;
    margin-bottom: 22px;
  }
  .artists-grid:not(.is-2):not(.is-3):not(.is-4) .artist-quote {
    font-size: 14px;
    line-height: 1.4;
    margin-bottom: 22px;
  }
  .artists-grid:not(.is-2):not(.is-3):not(.is-4) .artist-bio {
    font-size: 15px;
    line-height: 1.7;
    -webkit-line-clamp: 7;
    max-width: 56ch;
    margin-bottom: 28px;
  }
  .artists-grid:not(.is-2):not(.is-3):not(.is-4) .artist-socials {
    gap: 10px;
  }
  .artists-grid:not(.is-2):not(.is-3):not(.is-4) .artist-social {
    width: 36px; height: 36px;
  }
  /* Restore comfortable section padding */
  #artists { padding-block: 40px; }
}

/* === Ship 3b — mobile typography parity ================================== */
@media (max-width: 768px) {
  /* Center the FAQ title block (eyebrow + h2) — was left-aligned */
  .faq-top {
    text-align: center;
  }
  .faq-top .wb-wipe {
    display: inline-block;
    width: 100%;
  }
  .faq-title {
    text-align: center;
    font-family: var(--display);
    font-weight: 900;
    text-transform: uppercase;
    color: var(--white);
    line-height: 0.95;
    letter-spacing: -0.02em;
    font-size: clamp(40px, 11vw, 64px);
    margin: 0 auto 20px;
  }
  /* Bump artist name on mobile to match FAQ/section title scale */
  .artist-name,
  .artists-grid:not(.is-2):not(.is-3):not(.is-4) .artist-name {
    font-size: clamp(36px, 10vw, 56px);
    line-height: 0.95;
    letter-spacing: -0.02em;
    margin-bottom: 10px;
  }
  /* Match other titles' weight + spacing on artist info */
  .artist-divider {
    margin-left: auto;
    margin-right: auto;
  }
  .artist-info {
    text-align: center;
    align-items: center;
  }
  .artist-quote,
  .artist-bio {
    margin-left: auto;
    margin-right: auto;
  }
  .artist-socials {
    justify-content: center;
  }
}

/* === Ship 6 — view toggle (Upcoming / Past) ============================== */
.view-toggle {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--border);
  border-radius: 999px;
  margin-right: 14px;
}
.view-pill {
  display: inline-flex; align-items: center;
  padding: 8px 18px;
  font-size: 12px; letter-spacing: 0.18em;
  text-transform: uppercase; font-weight: 700;
  color: var(--mid);
  text-decoration: none;
  border-radius: 999px;
  transition: background 0.15s, color 0.15s;
}
.view-pill:hover { color: var(--white); }
.view-pill.is-active {
  background: var(--gold);
  color: #0B0B0D;
}

/* Past show badge */
.shared-show-badge.is-past {
  background: rgba(255,255,255,0.06);
  color: rgba(245,245,242,0.6);
  border: 1px solid rgba(255,255,255,0.12);
}
.shared-show-card.is-past {
  opacity: 0.78;
}
.shared-show-card.is-past:hover {
  opacity: 1;
}

@media (max-width: 768px) {
  .view-toggle { margin: 0 0 12px; width: 100%; justify-content: center; }
  .view-pill { padding: 8px 14px; font-size: 11px; }
}

/* === Ship 6 — body-text URL color (brand orange) ========================= */
/* Get Directions on its own line in orange */
.ticket-v2-maplink {
  display: inline-block;
  margin-top: 6px;
  color: var(--orange);
  font-weight: 600;
  text-decoration: none;
  letter-spacing: 0.02em;
  transition: color 0.15s, text-decoration 0.15s;
}
.ticket-v2-maplink:hover {
  color: var(--gold);
  text-decoration: underline;
}

/* Global: inline body-text links go orange (excludes nav, buttons, footer, cards) */
.ticket-v2-info a:not(.btn-primary):not(.btn-outline),
.ticket-v2-cta-col a:not(.btn-primary):not(.btn-outline),
.ticket-v2-trust a,
.faq-a a,
.artist-bio a,
.overview-item-value a,
.shared-faq-a a,
.page-cta-inner p a,
.page-sub a {
  color: var(--orange);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
  transition: color 0.15s;
}
.ticket-v2-info a:hover,
.ticket-v2-cta-col a:hover,
.ticket-v2-trust a:hover,
.faq-a a:hover,
.artist-bio a:hover,
.overview-item-value a:hover,
.shared-faq-a a:hover,
.page-cta-inner p a:hover,
.page-sub a:hover {
  color: var(--gold);
}

/* === Ship 7d — tour-dates spacing + JSON-LD safety ======================= */
/* More breathing room between hero CTAs and stats counter */
#page-hero .hero-actions {
  margin-bottom: 32px;
}
@media (max-width: 768px) {
  #page-hero .hero-actions { margin-bottom: 24px; }
}
