@charset "utf-8";

/* ==========================================
   TIXPICK GEN CAROUSEL WIDGET CSS
   File: /css/gen-carousel-widget.css
   Works with: /js/gen-carousel-widgets.js
   Carousel namespace: .tpU
========================================== */

/* ==========================================
   BASE CAROUSEL WRAPPER
========================================== */

.tpU {
  width: 100%;
  max-width: 1290px;
  margin: 28px auto;
  padding: 18px 14px;
  box-sizing: border-box;
  clear: both;
  font-family: Arial, Helvetica, sans-serif;
}

.tpU,
.tpU * {
  box-sizing: border-box;
}

.tpU a {
  text-decoration: none;
}

.tpU a:visited {
  text-decoration: none !important;
}

/* ==========================================
   HEADER
========================================== */

.tpU-header {
  text-align: center;
  margin: 0 0 16px 0;
  padding: 0 10px;
}

.tpU-title,
.tpU-title-white {
  margin: 0 0 6px 0;
  font-size: 28px;
  line-height: 1.15;
  font-weight: 800;
  text-align: center;
}

.tpU-title {
  color: #111;
}

.tpU-title-white {
  color: #fff;
}

.tpU-subtitle {
  margin: 0 auto;
  max-width: 850px;
  font-size: 15px;
  line-height: 1.45;
  color: #333;
  text-align: center;
}

/* ==========================================
   CONTROLS / DOTS
========================================== */

.tpU-controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin: 10px 0 14px 0;
}

.tpU-arrow {
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 999px;
  background: #ff9900;
  color: #111;
  font-size: 22px;
  font-weight: 800;
  line-height: 40px;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(0,0,0,.18);
}

.tpU-arrow:hover,
.tpU-arrow:focus {
  background: #ffb341;
  outline: none;
}

/* Tixpick canonical behavior: arrows are globally hidden.
   Navigation is primarily swipe/scroll + dots. */
.tpU .tpU-arrow {
  display: none !important;
}

.tpU-dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 7px;
  min-height: 16px;
  margin: 0 auto;
}

.tpU-dot {
  width: 10px;
  height: 10px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: #b8b8b8;
  cursor: pointer;
}

.tpU-dot.is-active,
.tpU-dot[aria-current="true"] {
  background: #ff9900;
}

/* ==========================================
   VIEWPORT / TRACK
========================================== */

.tpU-viewport {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 6px 2px 16px 2px;
}

.tpU-viewport:focus {
  outline: 2px solid rgba(255,153,0,.55);
  outline-offset: 3px;
}

.tpU-track {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: flex-start;
  gap: 14px;
  width: max-content;
  min-width: 100%;
}

/* Hide scrollbar where supported */
.tpU-viewport::-webkit-scrollbar {
  height: 8px;
}

.tpU-viewport::-webkit-scrollbar-track {
  background: rgba(0,0,0,.08);
  border-radius: 999px;
}

.tpU-viewport::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,.25);
  border-radius: 999px;
}

/* ==========================================
   CARD
========================================== */

.tpU-card {
  flex: 0 0 260px;
  width: 260px;
  min-height: 430px;
  height: auto !important;
  display: flex;
  flex-direction: column;
  scroll-snap-align: start;
  background: #fff;
  border: 1px solid #d7d7d7;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 5px 16px rgba(0,0,0,.15);
}

.tpU-media {
  width: 100%;
  height: 170px;
  display: block;
  overflow: hidden;
  background: #eee;
}

.tpU-media img,
.tpU-card > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Optional logo-style media */
.tpU-media.tpU-media--logo {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: #fff;
}

.tpU-media.tpU-media--logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.tpU-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  padding: 14px 14px 16px 14px;
  text-align: center;
}

.tpU-cardTitle {
  margin: 0 0 8px 0;
  font-size: 18px;
  line-height: 1.2;
  font-weight: 800;
  color: #111;
  text-align: center;
}

.tpU-desc {
  margin: 0 0 14px 0;
  font-size: 14px;
  line-height: 1.42;
  color: #333;
  text-align: center;

  /* Tixpick variable-height override */
  -webkit-line-clamp: unset !important;
  overflow: visible !important;
}

.tpU-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  margin: auto auto 0 auto;
  padding: 10px 16px;
  border-radius: 999px;
  background: #ff9900;
  color: #ffffff !important;
  font-size: 24px;
  line-height: 1.1;
  font-weight: bold;
  text-align: center;
  text-decoration: none !important;
  box-shadow: 0 4px 10px rgba(0,0,0,.16);
}

.tpU-btn:hover,
.tpU-btn:focus {
  background: #ffb341;
  color: #111 !important;
  text-decoration: none !important;
  outline: none;
}

/* ==========================================
   OPTIONAL BADGE
========================================== */

.tpU-badge {
  display: inline-block;
  margin: 0 auto 8px auto;
  padding: 5px 9px;
  border-radius: 999px;
  background: #111;
  color: #fff;
  font-size: 11px;
  line-height: 1;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .03em;
}

/* ==========================================
   MODIFIERS
========================================== */

.tpU-compact .tpU-card {
  min-height: 390px;
}

.tpU-compact .tpU-media {
  height: 150px;
}

.tpU-artists .tpU-media {
  height: 248px;
}

.tpU-artists .tpU-card {
  min-height: 500px;
}

/* Las Vegas venue / attraction style modifiers remembered from Tixpick */
.tpU[data-carousel="lvVenues9"] .tpU-card,
.tpU[data-carousel="lvAttractions5"] .tpU-card {
  flex-basis: 280px;
  width: 280px;
}

.tpU[data-carousel="lvVenues9"] .tpU-media,
.tpU[data-carousel="lvAttractions5"] .tpU-media {
  height: 180px;
}

/* MLB / larger carousel fix pattern */
.tpU[data-carousel="mlb"],
.tpU[data-carousel="mlbMinor"] {
  width: 100%;
}

.tpU[data-carousel="mlb"] .tpU-track,
.tpU[data-carousel="mlbMinor"] .tpU-track {
  justify-content: flex-start;
  width: max-content;
}

.tpU[data-carousel="mlb"] .tpU-card,
.tpU[data-carousel="mlbMinor"] .tpU-card {
  flex: 0 0 280px;
  width: 280px;
}

/* ==========================================
   RESPONSIVE
========================================== */

@media screen and (min-width: 768px) {
  .tpU {
    padding: 22px 18px;
  }

  .tpU-card {
    flex-basis: 300px;
    width: 300px;
    min-height: 455px;
  }

  .tpU-media {
    height: 190px;
  }

  .tpU-cardTitle {
    font-size: 17px;
  }

  .tpU-desc {
    font-size: 14px;
  }
}

@media screen and (max-width: 768px) {
  .tpU {
    margin: 22px auto;
    padding: 16px 10px;
  }

  .tpU-title,
  .tpU-title-white {
    font-size: 24px;
  }

  .tpU-subtitle {
    font-size: 14px;
  }

  .tpU-track {
    gap: 12px;
  }

  .tpU-card {
    flex-basis: 270px;
    width: 270px;
    min-height: 420px;
  }

  .tpU-media {
    height: 175px;
  }
}

@media screen and (max-width: 420px) {
  .tpU {
    padding: 14px 8px;
  }

  .tpU-title,
  .tpU-title-white {
    font-size: 21px;
  }

  .tpU-subtitle {
    font-size: 13px;
  }

  .tpU-card {
    flex-basis: 240px;
    width: 240px;
    min-height: 395px;
  }

  .tpU-media {
    height: 160px;
  }

  .tpU-body {
    padding: 12px;
  }

  .tpU-cardTitle {
    font-size: 16px;
  }

  .tpU-desc {
    font-size: 13px;
  }

  .tpU-btn {
    font-size: 13px;
    min-height: 38px;
    padding: 9px 14px;
  }

  .tpU .tpU-arrow {
    display: none !important;
  }
}

/* ==========================================
   IPHONE ANTI-BLOAT SAFETY
========================================== */

@media screen and (max-width: 480px) {
  html {
    -webkit-text-size-adjust: 100%;
  }

  .tpU,
  .tpU * {
    max-width: none;
  }

  .tpU img {
    max-width: 100%;
  }
}

/* iPhone landscape safety range */
@media screen and (min-width: 481px) and (max-width: 736px) {
  .tpU-card {
    flex-basis: 260px;
    width: 260px;
  }

  .tpU-media {
    height: 165px;
  }

  .tpU-title,
  .tpU-title-white {
    font-size: 22px;
  }
}