/* Mosaique Progressive Booth Sales — storefront styles v3.0.0 */
.mpbs-root{
  --mpbs-text:#171717;
  --mpbs-muted:#6f7378;
  --mpbs-border:#e4e6e8;
  --mpbs-surface:#ffffff;
  --mpbs-soft:#f7f8f8;
  --mpbs-accent:#2f9e1f;
  --mpbs-accent-hover:#267f19;
  --mpbs-radius:16px;
  color:var(--mpbs-text);
  font-family:inherit;
}
.mpbs-root *{box-sizing:border-box}
.mpbs-wrap{margin:28px 0 10px}

/* Sections */
.mpbs-standing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:38px}
.mpbs-section{margin:0 0 42px;min-width:0}
.mpbs-standing-grid .mpbs-section{margin-bottom:0}
.mpbs-section>h3{
  margin:0 0 14px!important;
  padding:0!important;
  color:var(--mpbs-text)!important;
  font:700 clamp(21px,2vw,27px)/1.25 inherit!important;
  letter-spacing:-.02em;
}
.mpbs-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.mpbs-grid-standing{grid-template-columns:1fr}

/* Cards */
.mpbs-card{
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:220px;
  padding:20px;
  border:1px solid var(--mpbs-border)!important;
  border-radius:var(--mpbs-radius)!important;
  background:var(--mpbs-surface)!important;
  box-shadow:0 5px 18px rgba(17,24,39,.055)!important;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.mpbs-card:hover{transform:translateY(-2px);border-color:#d7dadd!important;box-shadow:0 10px 26px rgba(17,24,39,.09)!important}
.mpbs-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:15px}
.mpbs-card h4{
  margin:0!important;
  padding:0!important;
  color:var(--mpbs-text)!important;
  font:700 17px/1.35 inherit!important;
  letter-spacing:-.01em;
  overflow-wrap:anywhere;
}
.mpbs-price{
  flex:0 0 auto;
  color:var(--mpbs-text)!important;
  font:800 17px/1.35 inherit!important;
  white-space:nowrap;
}
.mpbs-price .amount,.mpbs-price bdi{color:inherit!important;font:inherit!important}

/* Capacity / stock shown as compact pills rather than loose lines */
.mpbs-capacity,.mpbs-stock{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  min-height:28px;
  margin:0 7px 8px 0!important;
  padding:5px 10px;
  border-radius:999px;
  background:var(--mpbs-soft);
  color:var(--mpbs-muted)!important;
  font:600 12px/1.35 inherit!important;
}
.mpbs-stock{margin-bottom:18px!important}
.mpbs-card .mpbs-capacity + .mpbs-stock{margin-top:0!important}

/* Cart row */
.mpbs-cart{
  display:grid!important;
  grid-template-columns:112px minmax(0,1fr);
  gap:10px!important;
  align-items:center!important;
  width:100%;
  margin:auto 0 0!important;
  padding:0!important;
}

/* Hard reset theme/WooCommerce quantity decorations inside this plugin. */
.mpbs-root .mpbs-qty-wrap{
  position:relative!important;
  display:grid!important;
  grid-template-columns:36px 40px 36px!important;
  align-items:center!important;
  width:112px!important;
  height:46px!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid #d7dadd!important;
  border-radius:12px!important;
  background:#fff!important;
  box-shadow:none!important;
}
.mpbs-root .mpbs-qty-wrap .quantity{
  position:static!important;
  display:block!important;
  float:none!important;
  width:40px!important;
  height:44px!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.mpbs-root .mpbs-qty-wrap .quantity:before,
.mpbs-root .mpbs-qty-wrap .quantity:after,
.mpbs-root .mpbs-qty-wrap:before,
.mpbs-root .mpbs-qty-wrap:after,
.mpbs-root .mpbs-cart .quantity .plus,
.mpbs-root .mpbs-cart .quantity .minus{
  display:none!important;
  content:none!important;
}
.mpbs-root .mpbs-qty-wrap input.qty,
.mpbs-root .mpbs-qty-wrap input[type=number]{
  position:static!important;
  display:block!important;
  width:40px!important;
  min-width:0!important;
  height:44px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  outline:0!important;
  background:transparent!important;
  color:var(--mpbs-text)!important;
  box-shadow:none!important;
  text-align:center!important;
  font:700 14px/44px inherit!important;
  -moz-appearance:textfield!important;
  appearance:textfield!important;
}
.mpbs-root .mpbs-qty-wrap input.qty::-webkit-outer-spin-button,
.mpbs-root .mpbs-qty-wrap input.qty::-webkit-inner-spin-button{-webkit-appearance:none!important;margin:0!important}
.mpbs-root .mpbs-qty-btn{
  position:static!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:36px!important;
  min-width:36px!important;
  height:44px!important;
  min-height:44px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#2c6f62!important;
  box-shadow:none!important;
  font:500 20px/1 inherit!important;
  cursor:pointer!important;
  transform:none!important;
}
.mpbs-root .mpbs-qty-btn:hover{background:var(--mpbs-soft)!important;color:var(--mpbs-text)!important}
.mpbs-root .mpbs-qty-btn:before,.mpbs-root .mpbs-qty-btn:after{display:none!important;content:none!important}

/* CTA */
.mpbs-root .mpbs-add-button,
.mpbs-root button.mpbs-add-button,
.mpbs-root a.mpbs-add-button{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  min-height:46px!important;
  margin:0!important;
  padding:10px 18px!important;
  border:0!important;
  border-radius:12px!important;
  background:var(--mpbs-accent)!important;
  color:#fff!important;
  box-shadow:none!important;
  text-decoration:none!important;
  text-transform:none!important;
  letter-spacing:0!important;
  font:700 14px/1.2 inherit!important;
  cursor:pointer!important;
  transition:background .15s ease,transform .15s ease!important;
}
.mpbs-root .mpbs-add-button:hover{background:var(--mpbs-accent-hover)!important;color:#fff!important;transform:translateY(-1px)}
.mpbs-root .mpbs-add-button:before,.mpbs-root .mpbs-add-button:after{display:none!important;content:none!important}

.mpbs-sold-out{margin-top:auto;padding:12px;border-radius:10px;background:var(--mpbs-soft);color:var(--mpbs-muted);font-weight:700;text-align:center}
.mpbs-card.is-sold-out{opacity:.62}

/* Standing cards get a little more breathing room without becoming oversized. */
.mpbs-standing .mpbs-card{min-height:205px;padding:22px}
.mpbs-standing .mpbs-cart{grid-template-columns:120px minmax(0,1fr)}
.mpbs-standing .mpbs-qty-wrap{width:120px!important;grid-template-columns:40px 40px 40px!important}
.mpbs-standing .mpbs-qty-btn{width:40px!important;min-width:40px!important}

/* Responsive */
@media(max-width:1100px){.mpbs-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){
  .mpbs-standing-grid{grid-template-columns:1fr;gap:22px;margin-bottom:34px}
  .mpbs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .mpbs-wrap{margin-top:20px}
  .mpbs-section{margin-bottom:34px}
  .mpbs-grid{grid-template-columns:1fr}
  .mpbs-card{min-height:0;padding:18px}
  .mpbs-cart,.mpbs-standing .mpbs-cart{grid-template-columns:108px minmax(0,1fr)}
  .mpbs-root .mpbs-qty-wrap,.mpbs-standing .mpbs-qty-wrap{width:108px!important;grid-template-columns:34px 40px 34px!important}
  .mpbs-root .mpbs-qty-btn,.mpbs-standing .mpbs-qty-btn{width:34px!important;min-width:34px!important}
}

/* v2.9.0: ticket full description on storefront cards */
.mpbs-root .mpbs-description{
  margin:8px 0 14px!important;
  font-size:14px!important;
  line-height:1.45!important;
  opacity:.86!important;
}
.mpbs-root .mpbs-description p{margin:0!important;}
.mpbs-root .mpbs-description p+p{margin-top:6px!important;}


/* v3.0.0 — refined ticket-card presentation */
.mpbs-root{
  --mpbs-price:#c0266d;
  --mpbs-description-bg:#f2f3f5;
}
.mpbs-root .mpbs-card h4{
  color:#111827!important;
  font-weight:600!important;
}
.mpbs-root .mpbs-price{
  color:var(--mpbs-price)!important;
  font-weight:800!important;
}
.mpbs-root .mpbs-price .amount,
.mpbs-root .mpbs-price bdi,
.mpbs-root .mpbs-price .woocommerce-Price-currencySymbol{
  color:inherit!important;
  font-weight:inherit!important;
}
.mpbs-root .mpbs-description{
  margin:4px 0 15px!important;
  padding:12px 13px!important;
  border-radius:12px!important;
  background:var(--mpbs-description-bg)!important;
  color:#667085!important;
  opacity:1!important;
  font-size:13.5px!important;
  line-height:1.5!important;
}
.mpbs-root .mpbs-cart{
  grid-template-columns:112px minmax(0,1fr)!important;
}
.mpbs-root .mpbs-qty-wrap,
.mpbs-standing .mpbs-qty-wrap{
  position:relative!important;
  display:block!important;
  width:112px!important;
  height:46px!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  border:0!important;
  border-radius:12px!important;
  background:transparent!important;
  box-shadow:none!important;
}
.mpbs-root .mpbs-qty-select{
  display:block!important;
  width:100%!important;
  height:46px!important;
  min-height:46px!important;
  margin:0!important;
  padding:0 34px 0 14px!important;
  border:1px solid #d7dadd!important;
  border-radius:12px!important;
  outline:0!important;
  background-color:#fff!important;
  color:#111827!important;
  box-shadow:none!important;
  font:700 14px/1 inherit!important;
  cursor:pointer!important;
  -webkit-appearance:none!important;
  -moz-appearance:none!important;
  appearance:none!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 7.5 10 12.5 15 7.5' stroke='%23111827' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 12px center!important;
  background-size:14px 14px!important;
}
.mpbs-root .mpbs-qty-select:focus{
  border-color:#aeb4bb!important;
  box-shadow:0 0 0 3px rgba(17,24,39,.06)!important;
}
@media(max-width:560px){
  .mpbs-root .mpbs-cart,.mpbs-standing .mpbs-cart{grid-template-columns:108px minmax(0,1fr)!important}
  .mpbs-root .mpbs-qty-wrap,.mpbs-standing .mpbs-qty-wrap{width:108px!important}
}

/* v3.1.0 — event-level visual designer overrides */
.mpbs-root{
  --mpbs-title:#111827;
  --mpbs-description-color:#667085;
  --mpbs-card-bg:#ffffff;
  --mpbs-card-border:#e5e7eb;
  --mpbs-section-title:#111827;
  --mpbs-button-text:#ffffff;
  --mpbs-title-size:18px;
  --mpbs-price-size:18px;
  --mpbs-description-size:14px;
  --mpbs-meta-size:13px;
  --mpbs-button-size:14px;
  --mpbs-card-radius:16px;
  --mpbs-card-padding:20px;
  --mpbs-desktop-columns:4;
  --mpbs-tablet-columns:2;
}
.mpbs-root .mpbs-section>h3{color:var(--mpbs-section-title)!important}
.mpbs-root .mpbs-grid{grid-template-columns:repeat(var(--mpbs-desktop-columns),minmax(0,1fr))}
.mpbs-root .mpbs-grid-standing{grid-template-columns:1fr}
.mpbs-root .mpbs-card{
  padding:var(--mpbs-card-padding)!important;
  border-color:var(--mpbs-card-border)!important;
  border-radius:var(--mpbs-card-radius)!important;
  background:var(--mpbs-card-bg)!important;
}
.mpbs-root .mpbs-card h4{color:var(--mpbs-title)!important;font-size:var(--mpbs-title-size)!important;font-weight:600!important}
.mpbs-root .mpbs-price{color:var(--mpbs-price)!important;font-size:var(--mpbs-price-size)!important;font-weight:800!important}
.mpbs-root .mpbs-description{background:var(--mpbs-description-bg)!important;color:var(--mpbs-description-color)!important;font-size:var(--mpbs-description-size)!important}
.mpbs-root .mpbs-capacity,.mpbs-root .mpbs-stock{font-size:var(--mpbs-meta-size)!important}
.mpbs-root .mpbs-add-button,.mpbs-root button.mpbs-add-button,.mpbs-root a.mpbs-add-button{background:var(--mpbs-accent)!important;color:var(--mpbs-button-text)!important;font-size:var(--mpbs-button-size)!important}
.mpbs-root .mpbs-add-button:hover{filter:brightness(.92);background:var(--mpbs-accent)!important;color:var(--mpbs-button-text)!important}
.mpbs-root.mpbs-header-stacked .mpbs-card-head{display:block}
.mpbs-root.mpbs-header-stacked .mpbs-price{margin-top:6px}
@media(max-width:1100px){.mpbs-root .mpbs-grid{grid-template-columns:repeat(var(--mpbs-tablet-columns),minmax(0,1fr))}.mpbs-root .mpbs-grid-standing{grid-template-columns:1fr}}
@media(max-width:560px){.mpbs-root .mpbs-grid{grid-template-columns:1fr}.mpbs-root .mpbs-card{padding:max(14px,calc(var(--mpbs-card-padding) - 2px))!important}}
