/* Pre defined classes */
.display-flex {
  display: flex;
}
.flex-direction-row {
  flex-direction: row !important;
}
.flex-direction-column {
  flex-direction: column !important;
}
.justify-center {
  justify-content: center !important;
}
.justify-around {
  justify-content: space-around !important;
}
.justify-between {
  justify-content: space-between !important;
}
.justify-end {
  justify-content: flex-end !important;
}
.align-end {
  align-items: flex-end !important;
}
.align-center {
  align-items: center;
}
.mt-50 {
  margin-top: 50px !important;
}
.mb-50 {
  margin-bottom: 50px !important;
}
.mb-35 {
  margin-bottom: 35px !important;
}
.mt-32 {
  margin-top: 32px !important;
}
.mt-12 {
  margin-top: 12px !important;
}
.mb-12 {
  margin-bottom: 12px !important;
}
.ml-1r {
  margin-left: 1rem !important;
}
.ml-2r {
  margin-left: 2rem !important;
}
.mr-1r {
  margin-right: 1rem !important;
}
.mt-1r {
  margin-top: 1rem;
}
.m-0 {
  margin: 0;
}
.mt-0 {
  margin-top: 0 !important;
}
.mb-0 {
  margin-bottom: 0 !important;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.d-inline-block {
  display: inline-block !important;
}
.float-right {
  float: right;
}
.fs-10 {
  font-size: 10px;
}
.fs-12 {
  font-size: 12px;
}
.fs-16 {
  font-size: 16px;
}
.fs-18 {
  font-size: 18px;
}
.fs-20 {
  font-size: 20px;
}
.fs-24 {
  font-size: 24px;
}
.fs-48 {
  font-size: 48px;
}
.font-medium {
  font-weight: 500;
}
.bold {
  font-weight: bold;
}
.position-absolute {
  position: absolute;
}
.position-relative {
  position: relative;
}
.text-center {
  text-align: center;
}
.see-slider {
  height: 600px;
}
.see-slider .swiper-pagination {
  bottom: 0 !important;
}
.slider-event-title {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.seetickets-list-events,
.seetickets-calendar-container,
.see-slider,
.list-view-events {
  max-width: 1024px !important;
  margin: auto !important;
}
.seetickets-list-events.grid-container {
  display: grid !important;
  gap: 16px;
}
.seetickets-list-event-container.grid-item {
  box-sizing: border-box;
  flex-direction: column;
  width: 100%;
}
.seetickets-list-events.grid-cols-2 {
  grid-template-columns: repeat(2, 1fr);
}
.seetickets-list-events.grid-cols-3 {
  grid-template-columns: repeat(3, 1fr);
}
.seetickets-list-events.grid-cols-4 {
  grid-template-columns: repeat(4, 1fr);
}
/* Calendar view */
.seetickets-calendar {
  border-collapse: separate;
  border-spacing: 4px 4px;
  table-layout: fixed;
  border: 0;
  min-width: 100%;
}
.seetickets-calendar td {
  vertical-align: baseline;
  background-color: #f8f9fa;
  text-align: left;
  border: 0;
  border: 1px solid black;
  width: calc(100% / 7);
  padding-left: 8px;
  padding-right: 8px;
}
.seetickets-calendar td p {
  margin: 0;
}
.seetickets-calendar td .date-number {
  color: #495057;
}
.seetickets-calendar th {
  border: 0;
  background: transparent;
  text-align: center;
  font-weight: normal;
  color: #212429;
}
.seetickets-calendar-year-month-container {
  color: #212429;
}
.seetickets-calendar td {
  height: 3rem;
  border: 0;
}
.seetickets-calendar-event-container {
  background-color: white;
  margin-bottom: 6px;
  margin-top: 6px;
  padding: 6px;
  display: flex;
  justify-content: center;
  flex-direction: column;
}

/* Material Design styles for calendar event container */
.seetickets-calendar-event-container.mdc-card {
  border-radius: 4px;
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2),
    0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
}

.seetickets-calendar-event-container.mdc-card--outlined {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2),
    0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
  border-width: 1px;
  border-style: solid;
  border-color: #e0e0e0;
  border-radius: 0;
}

.seetickets-calendar-event-title {
  font-weight: bold;
}
.calendar-body {
  max-width: 100px;
  margin: auto;
  margin-top: 8px;
}
.seetickets-calendar-event-picture {
  width: 100px;
  max-width: 100%;
  height: 100px;
  margin: auto;
  object-fit: cover;
}
.seetickets-list-view-event-image-empty {
  background-color: #e5e5e5;
  border: 5px solid white;
  height: auto;
}
.grid-item .seetickets-list-view-event-image-container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: auto;
  margin: 0;
}
.grid-item .seetickets-list-view-event-image-container img {
  width: 100%;
  height: auto;
}
.seetickets-list-view-event-image-container {
  margin: 12px;
}
.list-view-events.with-calendar,
.seetickets-calendar-container {
  display: none;
}
div.seetickets-buy-btn {
  border-radius: 5px;
  padding: 6px 6px;
}
a.seetickets-buy-btn {
  padding: 8px 22px;
  border-radius: 5px;
  text-transform: uppercase;
  text-decoration: none;
}
div.seetickets-buy-btn a {
  padding: 0;
}
div.seetickets .seetickets-buy-btn,
.seetickets-buy-btn a,
.seetickets-load-more-btn {
  text-transform: uppercase;
  border-radius: 5px;
  padding: 6px 12px;
  text-decoration: none;
  cursor: pointer;
}
.seetickets-buy-btn,
.seetickets-buy-btn a,
.seetickets-load-more-btn {
  color: white;
}
.seetickets-load-more-btn:hover {
  text-decoration: none;
}
.seetickets-load-more-btn {
  border: 0;
}
.seetickets-buy-btn.disabled {
  background-color: #acb5bd;
}

/* List view */
.seetickets-list-event-content-container {
  padding: 12px;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
}
.buy-and-share-block {
  bottom: 16px;
}
.buy-and-share-block p {
  margin-top: 17px;
}
.event-info-block p {
  margin: 0;
}
.event-info-block h5 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.event-info-block h4 {
  margin-bottom: 0 !important;
}

/* Paginator */
.seetickets-list-view-pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-right: 1rem;
  padding-left: 1rem;
}
.seetickets-list-view-pagination li {
  background-color: #acb5bd;
  border-radius: 50%;
  list-style-type: none;
  display: flex;
  align-items: center;
  color: white;
  margin: 0.5rem 0 0 0.5rem;
}
.seetickets-list-view-pagination li.seetickets-list-view-pagination-active {
  background-color: #212429;
  color: white;
  padding: 12px 16px;
}
.seetickets-list-view-pagination li {
  text-decoration: none;
  padding: 12px 16px;
  color: white;
}
.seetickets-list-view-pagination li:hover {
  cursor: pointer;
}
.seetickets-list-view-pagination li span {
  padding: 0 5px;
}
/* Slider */
.swiper {
  width: 100%;
  padding-top: 300px;
  padding-bottom: 300px;
}

.swiper-slide {
  background-position: center;
  background-size: cover;
  width: 300px;
  height: 200px;
  margin-bottom: 50px;
}

.swiper-slide div.slider-content {
  height: 100%;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-position: center !important;
  padding: 8px;
  min-height: 220px;
  color: white;
}
.swiper-slide .slider-img-container {
  display: flex;
  align-items: center;
  height: 100%;
  width: 100%;
}
.swiper-slide .slider-img-container img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.swiper-button-next:after,
.swiper-button-prev:after {
  color: white;
}
a.disabled {
  pointer-events: none;
  cursor: default;
}
.social-circle {
  padding: 0.2rem;
  border-radius: 50%;
}
.seetickets-social-share img {
  width: 21px;
}
.mdc-card.seetickets-list-event-container:not(.grid-item) {
  flex-direction: initial !important;
}
.seetickets-social-media-container a {
  line-height: 0.7;
  margin-left: 0.6rem;
}

.overlay {
  background-color: black;
  opacity: 60%;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.z-index-1 {
  z-index: 1;
}
button.seetickets-search {
  display: inline-flex;
  text-transform: uppercase;
  border-radius: 5px;
  border: 0;
  background-color: #212429;
  color: white;
  padding: 8px 16px;
  align-items: center;
  width: 160px;
}
button.seetickets-search span.dashicons-search:before {
  font-size: 24px;
}
button.seetickets-search:hover {
  text-decoration: none;
}
input[name="seetickets-search"] {
  border-radius: 5px;
  color: black;
  border: 1px solid #dde2e5;
  line-height: 2rem;
  padding-left: 1rem;
}
div.searchresults {
  color: #212429;
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.seetickets-calendar-event-title a,
.seetickets-list-event-content-container .event-info-block a,
.slider-event-title a {
  text-decoration: none;
}

.exact-match {
  border: 2px solid black !important;
}

.seetickets-list-view-load-more-button img,
#seetickets-past-events-load-more-button img,
#seetickets-search-list-view-load-more-button img {
  display: none;
  height: 14px;
}

#seetickets-search-list-view-load-more-button {
  margin-bottom: 2rem;
}
img.fullwidth {
  object-fit: cover !important;
}

/* Mobile responsive */
@media (max-width: 767px) {
  /* List view: stack cards vertically */
  .mdc-card.seetickets-list-event-container:not(.grid-item) {
    flex-direction: column !important;
  }
  .mdc-card.seetickets-list-event-container:not(.grid-item) .seetickets-list-view-event-image-container {
    width: 100%;
    margin: 0;
  }
  .mdc-card.seetickets-list-event-container:not(.grid-item) .seetickets-list-view-event-image {
    width: 100% !important;
    height: auto !important;
  }
  /* Grid view: collapse to single column */
  .seetickets-list-events.grid-container {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
}
