.tixpress-list { list-style: none; padding-left: 0; margin: 0; }
.tixpress-list li { margin: 8px 0; }
.tixpress-btn, .tixpress-btn-secondary { display: inline-block; padding: 8px 12px; border-radius: 6px; text-decoration: none; }
.tixpress-btn { background: #111; color: #fff; }
.tixpress-btn-secondary { background: #eee; color: #111; }
.tixpress-checkout { max-width: 720px; margin: 0 auto; }
.tixpress-checkout__row { margin: 10px 0; }
.tixpress-checkout__row label { display: block; font-weight: 600; margin-bottom: 6px; }
.tixpress-checkout__row input[type="text"],
.tixpress-checkout__row input[type="email"],
.tixpress-checkout__row input[type="number"] { width: 100%; max-width: 420px; padding: 8px 10px; border: 1px solid #ddd; border-radius: 6px; }
.tixpress-checkout__tickets { margin-top: 12px; }
.tixpress-checkout__ticket { display: grid; grid-template-columns: 1fr auto auto; gap: 8px; align-items: center; padding: 8px 0; border-bottom: 1px solid #eee; }
.tixpress-checkout__total { margin-top: 12px; font-weight: 700; }
.tixpress-checkout__buttons { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.tixpress-success { padding: 12px; border: 1px solid #e3e3e3; border-radius: 10px; }

/* Calendar highlights */
.tixpress-has-show a { font-weight: 700; }

/* Modal */
.tixpress-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.4); display: flex; align-items: center; justify-content: center; z-index: 999999; }
.tixpress-modal { background: #fff; color: #111; border-radius: 12px; padding: 18px; max-width: 520px; width: calc(100% - 32px); position: relative; }
.tixpress-modal.tixpress-modal--wide{ max-width: 1020px; }
.tixpress-modal-close { position: absolute; top: 8px; right: 10px; border: 0; background: transparent; font-size: 22px; line-height: 1; cursor: pointer; }
.tixpress-modal-body h3 { margin-top: 0; }

/* Ensure show rows (calendar click) remain readable even if the theme sets
   link/button colors to something low-contrast inside overlays. */
.tixpress-modal-body .tixpress-cal-link,
.tixpress-modal-body a.tixpress-cal-link,
.tixpress-modal-body button.tixpress-cal-link{
  color: #111;
}

/* Overview calendar day "pop menu" */
.tixpress-daymenu{
  position: absolute;
  z-index: 999999;
  width: 360px;
  max-width: calc(100vw - 20px);
  background: #fff;
  color: #111;
  border: 1px solid #e8e8e8;
  border-radius: 14px;
  box-shadow: 0 18px 55px rgba(0,0,0,0.18);
  overflow: hidden;
}
.tixpress-daymenu__head{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 12px;
  border-bottom: 1px solid #eee;
}
.tixpress-daymenu__title{ font-weight: 800; font-size: 14px; }
.tixpress-daymenu__close{
  border: 0;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  padding: 2px 6px;
}
.tixpress-daymenu__body{
  max-height: min(56vh, 420px);
  overflow: auto;
  padding: 6px 12px 10px;
}
.tixpress-daymenu .tixpress-cal-item--row{ padding: 10px 0; }
.tixpress-daymenu .tixpress-cal-link{ display:block; padding: 6px 0; color:#111; }

/* Shared styling for calendar rows in modals/daymenus/exchange calendar */
.tixpress-cal-item__main{ flex: 1; min-width: 0; }
.tixpress-cal-link,
a.tixpress-cal-link,
button.tixpress-cal-link{
  color:#111;
  font-weight: 800;
  font-size: 15px;
  line-height: 1.25;
  text-decoration: none;
}
.tixpress-cal-link:hover{ text-decoration: underline; }
.tixpress-cal-link .tixpress-badge{ margin-right: 6px; }

@media (max-width: 640px){
  .tixpress-cal-link,
  a.tixpress-cal-link,
  button.tixpress-cal-link{ font-size: 16px; }
}


.tixpress-badge{
  display:inline-block;
  padding:2px 8px;
  border-radius:999px;
  font-size:12px;
  line-height:18px;
  background:#f1f1f1;
  border:1px solid #ddd;
  vertical-align:middle;
}
.tixpress-badge-openmic{ background:#e7f5ff; border-color:#b3e5ff; }
.tixpress-badge-premium{ background:#fff3cd; border-color:#ffe69c; }


.tixpress-badge-sale{ background:#ffe3e3; border-color:#ffb3b3; }
.tixpress-price-old{ text-decoration: line-through; opacity: .65; margin-right: 6px; }
.tixpress-sale-banner{ padding:10px 12px; border:1px solid #ffd6d6; background:#fff1f1; border-radius:10px; margin:12px 0; }


.tixpress-event-media{ max-width: 1040px; margin-left:auto; margin-right:auto; padding-left:16px; padding-right:16px; }
.tixpress-event-media--banner{ margin: 14px 0; }
.tixpress-event-media--banner img{ width:100%; height:auto; border-radius:12px; }
.tixpress-event-media--gallery{ display:grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap:10px; margin: 12px 0 20px; }
/* Desktop gallery thumbnails: show the full photo (no cropping). Mobile has its own carousel rules below. */
.tixpress-gallery-img{
  width:100%;
  height:180px;
  object-fit:contain;
  border-radius:12px;
  border:1px solid #eee;
  background:#f7f7f7;
}

/* -------------------------------------------------
   Mobile 1-up photo carousel (event page Photos section)
   ------------------------------------------------- */
@media (max-width: 768px){
  .tixpress-event-media--gallery.tixpress-mobile-carousel{
    display:block;
    gap:0;
  }
  .tixpress-event-media--gallery.tixpress-mobile-carousel .tixpress-mobile-carousel__viewport{
    position: relative;
    overflow: hidden;
    border-radius: 14px;
    border: 1px solid #eee;
    background: #f7f7f7;
  }
  .tixpress-event-media--gallery.tixpress-mobile-carousel .tixpress-mobile-carousel__track{
    display:flex;
    width: 100%;
    transition: transform .25s ease;
  }
  .tixpress-event-media--gallery.tixpress-mobile-carousel .tixpress-mobile-carousel__slide{
    min-width: 100%;
    margin: 0;
  }
  /* Contain avoids cutting heads/torso off on mobile */
  .tixpress-event-media--gallery.tixpress-mobile-carousel .tixpress-gallery-img{
    width: 100%;
    height: 260px;
    object-fit: contain;
    border: 0;
    border-radius: 0;
    display:block;
    background: #f7f7f7;
  }

  .tixpress-event-media--gallery.tixpress-mobile-carousel .tixpress-mobile-carousel__nav{
    position:absolute;
    top:50%;
    transform: translateY(-50%);
    border:0;
    background: rgba(0,0,0,.55);
    color:#fff;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow: 0 6px 18px rgba(0,0,0,.25);
  }
  .tixpress-event-media--gallery.tixpress-mobile-carousel .tixpress-mobile-carousel__prev{ left: 10px; }
  .tixpress-event-media--gallery.tixpress-mobile-carousel .tixpress-mobile-carousel__next{ right: 10px; }

  .tixpress-event-media--gallery.tixpress-mobile-carousel .tixpress-mobile-carousel__meta{
    margin-top: 8px;
    display:flex;
    align-items:center;
    justify-content: space-between;
    gap: 10px;
  }
  .tixpress-event-media--gallery.tixpress-mobile-carousel .tixpress-mobile-carousel__dots{
    display:flex;
    align-items:center;
    gap: 8px;
  }
}

/* Event page layout tweaks (theme-agnostic, but tuned for Astra) */
body.single-tix_event .entry-meta,
body.single-tix_event .ast-single-post-meta,
body.single-tix_event .ast-post-meta,
body.single-tix_event .ast-single-post-order,
body.single-tix_event .byline,
body.single-tix_event .posted-on,
body.single-tix_event .entry-footer{ display:none !important; }

/* Hide the theme title in Modern layout (we render our own hero title) */
body.tixpress-layout-modern.single-tix_event .entry-title,
body.tixpress-layout-modern.single-tix_event .wp-block-post-title{ display:none !important; }

body.single-tix_event .entry-title,
body.single-tix_event .wp-block-post-title{ text-align:center; }

/* Center the content area, but keep long-form text readable */
body.single-tix_event .entry-content{ text-align: left; }

/* Constrain typical text blocks to a readable centered column */
body.single-tix_event .entry-content > p,
body.single-tix_event .entry-content > h2,
body.single-tix_event .entry-content > h3,
body.single-tix_event .entry-content > h4,
body.single-tix_event .entry-content > ul,
body.single-tix_event .entry-content > ol,
body.single-tix_event .entry-content > blockquote{
  max-width: 1040px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 16px;
  padding-right: 16px;
}

body.single-tix_event .entry-content > p,
body.single-tix_event .entry-content > ul,
body.single-tix_event .entry-content > ol{
  line-height: 1.75;
  font-size: 1.05rem;
}

/* Make show list more readable + centered */
.tixpress-occ-item{
  border:1px solid #eee;
  border-radius:12px;
  padding:12px 14px;
  max-width: 720px;
  margin: 10px auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
}
.tixpress-occ-label{ font-weight:600; }
.tixpress-occ-action{ width:100%; text-align:center; }
.tixpress-occ-action .tixpress-btn{ margin-top:4px; }

/* -------------------------
   Modern event layout
   ------------------------- */
.tixpress-showtimes{
  max-width: 1040px;
  margin: 22px auto 18px;
  padding-left: 16px;
  padding-right: 16px;
}
.tixpress-showtimes__head{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 12px;
}
.tixpress-showtimes__title{ margin: 0; font-size: 1.35rem; }
.tixpress-calendar-toggle{
  appearance:none;
  border:1px solid #ddd;
  background:#fff;
  color:#111;
  padding: 8px 12px;
  border-radius: 10px;
  cursor:pointer;
  font-weight: 600;
}
.tixpress-calendar-toggle:hover{ background:#fafafa; }

.tixpress-showcards{ display:grid; gap: 12px; }
.tixpress-showcard{
  border:1px solid #eee;
  border-radius: 14px;
  padding: 14px;
  background:#fff;
  display:flex;
  align-items:center;
  gap: 14px;
  flex-wrap: wrap;
}
.tixpress-showcard__left{
  min-width: 132px;
}
.tixpress-showcard__date{ font-weight: 800; font-size: 1.05rem; }
.tixpress-showcard__time{ font-weight: 700; opacity: .9; margin-top: 2px; }
.tixpress-showcard__venue{ opacity: .9; }
.tixpress-showcard__mid{ flex: 1; }
.tixpress-showcard__right{
  white-space: nowrap;
  width: 100%;
  text-align: center;
}
.tixpress-showcard__right .tixpress-btn,
.tixpress-showcard__right .tixpress-muted{
  display: inline-block;
}

.tixpress-calendar-wrap{ margin-top: 14px; }

.tixpress-calendar-wrap{ padding: 8px 0 6px; }


@media (max-width: 640px){
  .tixpress-showcard{ flex-direction: column; align-items: flex-start; }
  .tixpress-showcard__right{ width:100%; }
  .tixpress-showcard__right .tixpress-btn{ width:100%; text-align:center; }
  .tixpress-showcard__left{ min-width: 0; }
  .tixpress-showtimes__head{ align-items:flex-start; }
}

/* -------------------------------------------------
   Checkout gallery (mobile-friendly carousel)
   ------------------------------------------------- */
.tixpress-checkout-card{
  max-width: 820px;
  margin: 0 auto;
}

.tixpress-checkout-gallery{ margin: 0 0 14px; }
.tixpress-checkout-gallery__viewport{
  position: relative;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid #eee;
  background: #f7f7f7;
}
.tixpress-checkout-gallery__track{
  display: flex;
  width: 100%;
  transition: transform .25s ease;
}
.tixpress-checkout-gallery__slide{
  min-width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Fixed-ish height + object-fit:contain prevents cropping on mobile */
.tixpress-checkout-gallery__img{
  width: 100%;
  height: 340px;
  object-fit: contain;
  display: block;
}
@media (max-width: 640px){
  .tixpress-checkout-gallery__img{ height: 220px; }
}

.tixpress-checkout-gallery__nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  background: rgba(0,0,0,.55);
  color: #fff;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  font-size: 22px;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
}
.tixpress-checkout-gallery__prev{ left: 10px; }
.tixpress-checkout-gallery__next{ right: 10px; }
.tixpress-checkout-gallery__nav:hover{ background: rgba(0,0,0,.78); }
.tixpress-checkout-gallery__nav:focus{ outline: 2px solid rgba(255,255,255,.85); outline-offset: 2px; }

.tixpress-checkout-gallery__meta{
  margin-top: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.tixpress-checkout-gallery__dots{ display:flex; align-items:center; gap: 8px; }
.tixpress-dot{
  appearance: none;
  border: 0;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #d8d8d8;
  cursor: pointer;
}
.tixpress-dot.is-active{ background: #111; }
.tixpress-dot:focus{ outline: 2px solid #111; outline-offset: 2px; }
.tixpress-checkout-gallery__counter{ font-size: 12px; opacity: .75; }

/* Sticky mobile buy bar */
.tixpress-sticky-buy{ display:none; }
@media (max-width: 768px){
  .tixpress-sticky-buy{
    display:block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 10px 12px;
    background: rgba(255,255,255,.98);
    border-top: 1px solid #e5e5e5;
    box-shadow: 0 -10px 22px rgba(0,0,0,.10);
    z-index: 9998;
  }
  .tixpress-sticky-buy__inner{ display:flex; gap: 10px; align-items:center; }
  .tixpress-sticky-buy__select{
    flex: 1;
    padding: 10px 10px;
    border-radius: 10px;
    border: 1px solid #ddd;
    background: #fff;
    min-width: 0;
  }
  .tixpress-sticky-buy__label{ flex:1; font-weight: 700; font-size: 0.95rem; }
  .tixpress-sticky-buy__btn{ padding: 10px 12px; border-radius: 10px; }

  body.tixpress-has-sticky{ padding-bottom: 84px; }
}

/* Gallery & reel lightbox */
.tixpress-gallery-link{ display:block; }
.tixpress-gallery-link img{ cursor: zoom-in; }

.tixpress-lightbox{ position:relative; }
.tixpress-lightbox-stage{ display:flex; align-items:center; justify-content:center; }

.tixpress-lightbox-img{
  max-width: min(92vw, 980px);
  width:100%;
  height:auto;
  border-radius:12px;
}
.tixpress-lightbox-video{
  max-width: min(92vw, 980px);
  width:100%;
  max-height: min(80vh, 760px);
  border-radius:12px;
  background:#000;
}

/* Nav arrows */
.tixpress-lightbox-nav{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  border:0;
  background: rgba(0,0,0,.55);
  color:#fff;
  width:44px;
  height:44px;
  border-radius:999px;
  font-size:22px;
  font-weight:700;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
}
.tixpress-lightbox-prev{ left:10px; }
.tixpress-lightbox-next{ right:10px; }

.tixpress-lightbox-nav:hover{ background: rgba(0,0,0,.78); }
.tixpress-lightbox-nav:focus{ outline: 2px solid rgba(255,255,255,.85); outline-offset: 2px; }

@media (max-width: 520px){
  .tixpress-lightbox-prev{ left:6px; }
  .tixpress-lightbox-next{ right:6px; }
  .tixpress-lightbox-nav{ width:40px; height:40px; }
}

.tixpress-lightbox-counter{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:-28px;
  color:#666;
  font-size:12px;
}
/* Reel videos */
.tixpress-event-media--reels{ margin: 18px 0 24px; }
.tixpress-reels-heading{ margin: 0 0 10px; text-align:center; }
.tixpress-reels{ display:grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap:10px; }
.tixpress-reel-thumb{ position:relative; width:100%; aspect-ratio: 9 / 16; border-radius:14px; overflow:hidden; border:1px solid #eee; background:#000; }
.tixpress-reel-video{ width:100%; height:100%; object-fit:cover; display:block; }
.tixpress-reel-play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:38px; color:rgba(255,255,255,.92); text-shadow:0 2px 10px rgba(0,0,0,.45); pointer-events:none; }
.tixpress-reel-link{ display:block; }
.tixpress-reel-link:hover .tixpress-reel-play{ transform: scale(1.04); }

.tixpress-gift{ max-width: 920px; margin: 0 auto; }
.tixpress-gift-grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin-top: 12px; }
.tixpress-gift-card{ border:1px solid #e3e3e3; border-radius: 14px; padding: 14px; background:#fff; }
.tixpress-muted{ opacity: .75; }



/* Calendar UI spacing (jQuery UI datepicker) */
.tixpress-event-calendar .ui-datepicker{
  width: 100%;
  max-width: 380px;
  margin: 14px auto;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #e6e6e6;
  background: #fff;
}
.tixpress-event-calendar .ui-datepicker .ui-datepicker-header{
  padding: 12px 56px;
  position: relative;
  text-align: center;
  border-bottom: 1px solid #eee;
}
.tixpress-event-calendar .ui-datepicker .ui-datepicker-title{ font-weight: 800; }

/* Datepicker nav: hide raw "Prev/Next" text and draw consistent arrows */
.tixpress-event-calendar .ui-datepicker a{ text-decoration: none !important; color: inherit; }
.tixpress-event-calendar .ui-datepicker .ui-datepicker-prev,
.tixpress-event-calendar .ui-datepicker .ui-datepicker-next{
  width: 34px;
  height: 34px;
  top: 50%;
  margin-top: -17px;
  border-radius: 999px;
  border: 1px solid #e2e2e2;
  background: #fafafa;
  overflow: hidden;
  text-indent: -9999px;
  position: absolute;
}
.tixpress-event-calendar .ui-datepicker .ui-datepicker-prev{ left: 10px; }
.tixpress-event-calendar .ui-datepicker .ui-datepicker-next{ right: 10px; }
.tixpress-event-calendar .ui-datepicker .ui-datepicker-prev-hover,
.tixpress-event-calendar .ui-datepicker .ui-datepicker-next-hover{
  top: 50%;
  margin-top: -17px;
}
.tixpress-event-calendar .ui-datepicker .ui-datepicker-prev span,
.tixpress-event-calendar .ui-datepicker .ui-datepicker-next span{
  display: none;
}

.tixpress-event-calendar .ui-datepicker .ui-datepicker-prev::before,
.tixpress-event-calendar .ui-datepicker .ui-datepicker-next::before{
  content: "";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#111;
  font-size: 18px;
  font-weight: 900;
  text-indent: 0;
}
.tixpress-event-calendar .ui-datepicker .ui-datepicker-prev::before{ content: "‹"; }
.tixpress-event-calendar .ui-datepicker .ui-datepicker-next::before{ content: "›"; }

.tixpress-event-calendar .ui-datepicker .ui-datepicker-prev:hover,
.tixpress-event-calendar .ui-datepicker .ui-datepicker-next:hover{ background: #f3f3f3; }

.tixpress-event-calendar .ui-datepicker table{ margin: 0; }
.tixpress-event-calendar .ui-datepicker th{ padding: 8px 0; font-weight: 800; }
.tixpress-event-calendar .ui-datepicker td{ padding: 2px; }
.tixpress-event-calendar .ui-datepicker td a{
  display:block;
  padding: 8px 0;
  border-radius: 8px;
}
.tixpress-event-calendar .ui-datepicker td a:hover{ background: #f5f5f5; }

/* Highlight days with shows (event page calendar) */
.tixpress-event-calendar .ui-datepicker td.tixpress-has-show a{
  background:#111;
  color:#fff;
  font-weight: 900;
}
.tixpress-event-calendar .ui-datepicker td.tixpress-has-show a:hover{ background:#000; }

.tixpress-event-calendar .ui-datepicker td.tixpress-has-show-closed a{
  background:#e8e8e8;
  color:#666;
  font-weight: 800;
}
.tixpress-event-calendar .ui-datepicker td.tixpress-has-show-closed a:hover{ background:#dedede; }

/* Keep "today" visible even when it's also a show day */
.tixpress-event-calendar .ui-datepicker td.ui-datepicker-today a{
  border:1px solid #d8d8d8;
}
.tixpress-event-calendar .ui-datepicker td.ui-datepicker-today.tixpress-has-show a{
  border-color: rgba(255,255,255,.55);
}

.tixpress-cal-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  text-align:center;
  margin: 10px 0;
}


/* -------------------------
   Modern poster hero
   ------------------------- */
.tixpress-hero{
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 44px 0 26px;
  overflow: hidden;
  background: linear-gradient(180deg, #f7f7f7, #ffffff);
}
.tixpress-hero::before{
  content: "";
  position: absolute;
  inset: -28px;
  background-image: var(--tixpress-hero-bg);
  background-size: cover;
  background-position: center;
  filter: blur(22px);
  transform: scale(1.08);
  opacity: .55;
}
.tixpress-hero::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,.95) 55%, rgba(255,255,255,1));
}
.tixpress-hero__inner{
  position: relative;
  z-index: 1;
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 16px;
  text-align: center;
}
.tixpress-hero__badges{ margin-bottom: 10px; }
.tixpress-badge-lang{ background:#f5f5ff; border-color:#d6d6ff; }
.tixpress-hero__title{
  margin: 6px 0 12px;
  font-weight: 850;
  line-height: 1.08;
  font-size: clamp(2.0rem, 4vw, 3.0rem);
}
.tixpress-hero__cta{ margin-top: 6px; }
.tixpress-hero__cta-btn{
  padding: 12px 18px;
  border-radius: 999px;
  font-weight: 800;
}
.tixpress-hero__next{ margin-top: 10px; }
.tixpress-hero__poster{
  margin: 22px auto 0;
  max-width: 760px;
}
.tixpress-hero__img{
  width: 100%;
  height: auto;
  border-radius: 18px;
  box-shadow: 0 14px 34px rgba(0,0,0,.16);
  border: 0;
  display: block;
}

/* About card */
.tixpress-about{
  max-width: 1040px;
  margin: 18px auto 22px;
  padding: 0 16px;
}
.tixpress-about__inner{
  background: #fff;
  border: 1px solid #eee;
  border-radius: 16px;
  padding: 18px 18px;
  box-shadow: 0 10px 26px rgba(0,0,0,.06);
}
.tixpress-about__title{
  margin: 0 0 10px;
  text-align: left;
  font-size: 1.25rem;
  font-weight: 800;
}
.tixpress-about__content{ text-align: left; width: 100%; }
.tixpress-about__content > *{ max-width: none !important; }

/* Separate descriptions: show mobile text by default, switch to desktop on larger screens */
.tixpress-about__content--desktop{ display:none; }
@media (min-width: 768px){
  .tixpress-about__content--desktop{ display:block; }
  .tixpress-about__content--mobile{ display:none; }
}

/* If the description was pasted with manual line breaks, remove them for a clean wrap */
.tixpress-about__content--mobile br{ display:none; }
.tixpress-about__content p{
  margin: 0 0 12px;
  line-height: 1.75;
  font-size: 1.05rem;
  max-width: none !important;
}
.tixpress-about__content p:last-child{ margin-bottom: 0; }
.tixpress-about__content ul,
.tixpress-about__content ol{
  padding-left: 1.2rem;
  margin: 0 0 12px;
}

/* Media sections */
.tixpress-media{ margin: 16px 0 26px; }
.tixpress-media__inner{ max-width: 1040px; margin: 0 auto; padding: 0 16px; }
.tixpress-media__title{ margin: 0 0 12px; text-align: center; font-size: 1.35rem; font-weight: 850; }

/* Nicer gallery grid */
.tixpress-event-media--gallery{ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.tixpress-gallery-img{ height: 180px; }

@media (max-width: 640px){
  .tixpress-hero{ padding: 32px 0 18px; }
  .tixpress-hero__poster{ max-width: 100%; }
}

/* Astra (separate container) can wrap single posts in a white boxed card.
   For Modern event pages we remove that boxing so the hero can feel full-bleed. */
body.tixpress-layout-modern.single-tix_event.ast-separate-container .ast-container,
body.tixpress-layout-modern.single-tix_event.ast-separate-container .site-content .ast-container{
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.tixpress-layout-modern.single-tix_event.ast-separate-container .ast-article-single,
body.tixpress-layout-modern.single-tix_event.ast-separate-container .ast-article-post,
body.tixpress-layout-modern.single-tix_event.ast-separate-container .ast-single-post{
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* -------------------------------------------------
   Mobile readability improvements (single event page)
   -------------------------------------------------
   Some themes set unusually small base font sizes on mobile (or apply
   aggressive scaling). These overrides ensure the event description
   and show details remain comfortably readable without pinch-zoom.
*/

/* Prevent horizontal panning caused by full-bleed sections on some themes */
body.single-tix_event{ overflow-x: hidden; }

@media (max-width: 640px){
  /* Ensure full-bleed hero doesn't introduce a few px of overflow */
  body.single-tix_event .tixpress-hero{ width: 100%; margin-left: 0; margin-right: 0; }

  /* About (description) card: larger type + comfortable spacing */
  body.single-tix_event .tixpress-about__inner{ padding: 18px 16px; }
  body.single-tix_event .tixpress-about__title{ font-size: 22px; }
  body.single-tix_event .tixpress-about__content{ overflow-wrap: anywhere; word-break: break-word; }
  body.single-tix_event .tixpress-about__content p,
  body.single-tix_event .tixpress-about__content li{
    font-size: 18px;
    line-height: 1.8;
  }
  body.single-tix_event .tixpress-about__content ul,
  body.single-tix_event .tixpress-about__content ol{ padding-left: 1.35rem; }

  /* Showtimes + cards: bump text so users can scan without zooming */
  body.single-tix_event .tixpress-showtimes__title{ font-size: 22px; }
  body.single-tix_event .tixpress-showcard__date{ font-size: 19px; }
  body.single-tix_event .tixpress-showcard__time,
  body.single-tix_event .tixpress-showcard__venue{ font-size: 17px; }

  /* Buttons: a bit larger & easier to tap */
  body.single-tix_event .tixpress-btn,
  body.single-tix_event .tixpress-btn-secondary,
  body.single-tix_event .tixpress-calendar-toggle{
    font-size: 17px;
    padding: 10px 14px;
  }
  body.single-tix_event .tixpress-hero__cta-btn{ padding: 12px 18px; }
}

/* -------------------------
   Upcoming shows overview (home page)
   - cleaner calendar
   - Eventbrite-like cards with banner + excerpt + CTA
   ------------------------- */
.tixpress-overview{
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 16px;
}
.tixpress-overview__filter{
  display:flex;
  justify-content:flex-start;
  margin: 10px 0 12px;
}
.tixpress-overview__filter select{
  width: 100%;
  max-width: 420px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid #e4e4e4;
  background: #fff;
}

/* Calendar (jQuery UI datepicker) */
.tixpress-overview__calendar{ margin: 0 0 16px; }
.tixpress-overview__calendar .ui-datepicker{
  width: 100%;
  border: 1px solid #ececec;
  border-radius: 14px;
  padding: 12px;
  background: #fff;
}
.tixpress-overview__calendar .ui-datepicker-header{
  position: relative;
  padding: 10px 46px;
  margin-bottom: 10px;
}
.tixpress-overview__calendar .ui-datepicker-title{
  text-align:center;
  font-weight: 800;
  font-size: 16px;
}
.tixpress-overview__calendar .ui-datepicker-prev,
.tixpress-overview__calendar .ui-datepicker-next{
  position: absolute;
  top: 8px;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 1px solid #e0e0e0;
  background: #fff;
  cursor: pointer;
  text-indent: -9999px;
  overflow: hidden;
}
.tixpress-overview__calendar .ui-datepicker-prev{ left: 8px; }
.tixpress-overview__calendar .ui-datepicker-next{ right: 8px; }
.tixpress-overview__calendar .ui-datepicker-prev:after,
.tixpress-overview__calendar .ui-datepicker-next:after{
  content: '';
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 24px;
  font-weight: 800;
  color:#111;
  text-indent: 0;
}
.tixpress-overview__calendar .ui-datepicker-prev:after{ content: '‹'; }
.tixpress-overview__calendar .ui-datepicker-next:after{ content: '›'; }

.tixpress-overview__calendar table{ width:100%; border-collapse: collapse; }
.tixpress-overview__calendar th{
  padding: 8px 0;
  font-size: 12px;
  color: #666;
  font-weight: 700;
}
.tixpress-overview__calendar td{ padding: 4px; text-align:center; }
.tixpress-overview__calendar td a,
.tixpress-overview__calendar td span{
  display:flex;
  width: 100%;
  height: 40px;
  align-items:center;
  justify-content:center;
  border-radius: 10px;
  text-decoration:none;
}
.tixpress-overview__calendar td a{ color:#111; }
.tixpress-overview__calendar td a:hover{ background:#f3f3f3; }
.tixpress-overview__calendar td.ui-datepicker-today a{ border:1px solid #d8d8d8; }

/* highlight days that have shows (fills the whole square) */
.tixpress-overview__calendar .tixpress-has-show a{
  background:#111;
  color:#fff;
}

/* dates with shows but not bookable (sold out / closed) */
.tixpress-overview__calendar .tixpress-has-show-closed a{
  background:#e8e8e8;
  color:#444;
}

/* today + has-show: keep contrast */
.tixpress-overview__calendar td.ui-datepicker-today.tixpress-has-show a{
  border: 1px solid rgba(255,255,255,.65);
}

/* Modal rows (calendar click) */
.tixpress-cal-item--row{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid #eee;
}
.tixpress-cal-item--row:last-child{ border-bottom:0; }
.tixpress-cal-item__main a{ text-decoration:none; }
.tixpress-btn--sm{ padding: 7px 10px; border-radius: 10px; font-size: 14px; }

/* Cards */
.tixpress-overview__cards{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  padding: 8px 0 28px;
}
@media (max-width: 1024px){
  .tixpress-overview__cards{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px){
  .tixpress-overview__cards{ grid-template-columns: 1fr; }
}

.tixpress-card{
  border: 1px solid #eee;
  border-radius: 14px;
  overflow:hidden;
  background:#fff;
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
}
.tixpress-card__media{ position:relative; }
.tixpress-card__img{ width:100%; height: 180px; object-fit: cover; display:block; }
.tixpress-card__placeholder{
  width:100%;
  height: 180px;
  background: linear-gradient(135deg, #f2f2f2, #e9e9e9);
}
.tixpress-card__badges{
  position:absolute;
  top: 10px;
  left: 10px;
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
}
.tixpress-card__body{ padding: 14px 14px 16px; }
.tixpress-card__when{ font-size: 12px; letter-spacing: .02em; color:#666; margin-bottom: 6px; }
.tixpress-card__title{ margin: 0 0 6px; font-size: 18px; line-height: 1.25; }
.tixpress-card__title a{ color:#111; text-decoration:none; }
.tixpress-card__venue{ font-size: 14px; margin-bottom: 10px; }
.tixpress-card__excerpt{ margin: 0 0 12px; font-size: 14px; line-height: 1.55; color:#333; }

/* clamp excerpt to keep cards tidy */
.tixpress-card__excerpt{
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow:hidden;
}

.tixpress-card__actions{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
}

.tixpress-overview-empty{
  border: 1px solid #eee;
  border-radius: 14px;
  padding: 14px;
  background:#fff;
  margin: 10px 0 22px;
}


/* ---------------------------------------------
   Ticket exchange: calendar + show info
   --------------------------------------------- */
.tixpress-exchange-calendar{
  max-width: 820px;
  margin: 14px 0 12px;
  padding: 14px;
  border: 1px solid #eee;
  border-radius: 14px;
  background: #fff;
}

/* Exchange calendar (jQuery UI datepicker) */
.tixpress-exchange-calendar .ui-datepicker{
  width: 100%;
  border: 1px solid #ececec;
  border-radius: 14px;
  padding: 12px;
  background: #fff;
}
.tixpress-exchange-calendar .ui-datepicker-header{
  position: relative;
  padding: 10px 46px;
  margin-bottom: 10px;
}
.tixpress-exchange-calendar .ui-datepicker-title{
  text-align:center;
  font-weight: 800;
  font-size: 16px;
}
.tixpress-exchange-calendar .ui-datepicker-prev,
.tixpress-exchange-calendar .ui-datepicker-next{
  position: absolute;
  top: 8px;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 1px solid #e0e0e0;
  background: #fff;
  cursor: pointer;
  text-indent: -9999px;
  overflow: hidden;
}
.tixpress-exchange-calendar .ui-datepicker-prev{ left: 8px; }
.tixpress-exchange-calendar .ui-datepicker-next{ right: 8px; }
.tixpress-exchange-calendar .ui-datepicker-prev:after,
.tixpress-exchange-calendar .ui-datepicker-next:after{
  content: '';
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 24px;
  font-weight: 800;
  color:#111;
  text-indent: 0;
}
.tixpress-exchange-calendar .ui-datepicker-prev:after{ content: '‹'; }
.tixpress-exchange-calendar .ui-datepicker-next:after{ content: '›'; }
.tixpress-exchange-calendar table{ width:100%; border-collapse: collapse; }
.tixpress-exchange-calendar th{
  padding: 8px 0;
  font-size: 12px;
  color: #666;
  font-weight: 700;
}
.tixpress-exchange-calendar td{ padding: 4px 0; text-align:center; }
.tixpress-exchange-calendar td a,
.tixpress-exchange-calendar td span{
  display:inline-flex;
  width: 36px;
  height: 34px;
  align-items:center;
  justify-content:center;
  border-radius: 10px;
  text-decoration:none;
}
.tixpress-exchange-calendar td a{ color:#111; }
.tixpress-exchange-calendar td a:hover{ background:#f3f3f3; }
.tixpress-exchange-calendar td.ui-datepicker-today a{ border:1px solid #d8d8d8; }
.tixpress-exchange-calendar .tixpress-has-show a{ background:#111; color:#fff; }
.tixpress-exchange-selected{
  max-width: 820px;
  margin: 0 0 14px;
  font-weight: 800;
}
.tixpress-exchange-choice{
  max-width: 820px;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #eee;
  border-radius: 14px;
  background: #fff;
  margin: 8px 0;
}
.tixpress-exchange-choice label{
  display:flex;
  align-items:center;
  gap: 8px;
  margin: 0;
}
.tixpress-exchange-moreinfo{ white-space: nowrap; }

@media (max-width: 640px){
  .tixpress-exchange-choice{ flex-wrap: wrap; }
  .tixpress-exchange-moreinfo{ width: 100%; }
}
button.tixpress-cal-link{
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  text-decoration: none;
  text-align: left;
  font-family: inherit;
  line-height: inherit;
}
.tixpress-exchange-info__img{
  width: 100%;
  height: auto;
  border-radius: 12px;
  margin-bottom: 10px;
}
.tixpress-exchange-info__actions{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.tixpress-exchange-info__head h3{ margin: 6px 0 6px; }
.tixpress-exchange-info__excerpt{ line-height: 1.7; }
