/* CMK mobile layout v2; no changes to ticket calculations. */
.cmk-admissions .cmk-stepper { gap: 10px; flex-shrink: 0; }
.cmk-admissions .cmk-stepper button {
  display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; min-width: 48px; padding: 0;
  border: 1px solid #55525f; border-radius: 12px;
  background: #24232b; color: #fff; font-family: Arial, sans-serif;
  font-size: 30px; font-weight: 500; line-height: 1;
  touch-action: manipulation; cursor: pointer;
  transition: background-color 150ms ease, transform 150ms ease;
}
.cmk-admissions .cmk-stepper button[aria-label^="Add "] {
  background: linear-gradient(125deg, #8636ed, #245af5);
  border-color: #9176ff; box-shadow: 0 3px 12px #5835d540;
}
.cmk-admissions .cmk-stepper button:active:not(:disabled) { transform: scale(.95); }
.cmk-admissions .cmk-stepper button:disabled { opacity: .35; box-shadow: none; cursor: default; }
.cmk-admissions .cmk-stepper output { min-width: 28px; font-variant-numeric: tabular-nums; }
.cmk-admissions .cmk-vip-check {
  display: flex; align-items: flex-start; justify-content: flex-start;
  text-align: left; gap: 12px; min-height: 44px;
}
.cmk-admissions .cmk-vip-check > span { flex: 1; min-width: 0; text-align: left; }
.cmk-admissions .cmk-vip-check strong,
.cmk-admissions .cmk-vip-check small { text-align: left; line-height: 1.5; }
.cmk-admissions .cmk-vip-check input {
  width: 22px !important; height: 22px !important;
  margin: 1px 0 0; accent-color: #7950ef;
}
.cmk-admissions .cmk-stepper button:focus-visible,
.cmk-admissions .cmk-vip-check input:focus-visible {
  outline: 3px solid #b9a5ff; outline-offset: 4px;
}
@media (max-width: 766px) {
  .cmk-admissions .cmk-admission {
    padding: 18px; margin-bottom: 18px; border-radius: 12px;
    border: 1px solid #46434f; background: #1b1a1f;
  }
  .cmk-admissions .cmk-card-top { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; align-items: start; }
  .cmk-admissions .cmk-card-top > div:first-child { min-width: 0; text-align: left; }
  .cmk-admissions .cmk-eyebrow { text-align: left; font-size: 10px; line-height: 1.5; }
  .cmk-admissions .cmk-admission h3 { font-size: 26px !important; line-height: 1.15; text-align: left; overflow-wrap: break-word; }
  .cmk-admissions .cmk-price { max-width: 112px; text-align: right; }
  .cmk-admissions .cmk-price strong { white-space: nowrap; font-size: 30px; }
  .cmk-admissions .cmk-price small { display: block; margin: 5px 0 0; font-size: 11px; line-height: 1.45; color: #b8b4c3; }
  .cmk-admissions .cmk-description { text-align: left; font-size: 13px; line-height: 1.65; color: #c2becb; margin: 16px 0; }
  .cmk-admissions .cmk-quantity { gap: 12px; padding: 16px 0; margin: 0; border-top: 1px solid #38353f; font-size: 13px; text-align: left; }
  .cmk-admissions .cmk-vip-check { padding: 16px 0 0; border-top: 1px solid #38353f; }
  .cmk-admissions .cmk-vip-check strong { font-size: 13px; font-weight: 600; }
  .cmk-admissions .cmk-vip-check small { font-size: 12px; color: #b8b4c3; }
  .cmk-admissions .cmk-vip-info { padding: 18px; text-align: left; border: 1px solid #46434f; border-radius: 12px; }
  .cmk-admissions .cmk-vip-info p,
  .cmk-admissions .cmk-vip-info h3,
  .cmk-admissions .cmk-selected,
  .cmk-admissions .cmk-fee-note { text-align: left; }
  .cmk-admissions .cmk-vip-info ul { grid-template-columns: 1fr; text-align: left; line-height: 1.5; }
}
@media (max-width: 360px) {
  .cmk-admissions .cmk-card-top { grid-template-columns: 1fr; gap: 10px; }
  .cmk-admissions .cmk-price { text-align: left; max-width: none; }
  .cmk-admissions .cmk-quantity { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .cmk-admissions .cmk-stepper button { transition: none; }
}

/* The legacy mobile cart hides the total and renders labels in an unbroken strip. */
@media (max-width: 767px) {
  #app .bucket.bucket-minimize-mobile {
    box-sizing: border-box; height: auto; max-height: 55vh; max-height: 55dvh;
    bottom: 0; left: 0; right: 0; width: 100%; padding: 0;
    background: #1d1b24; border: 1px solid #514763; border-bottom: 0;
    border-radius: 18px 18px 0 0; box-shadow: 0 -8px 32px #0008;
    overflow: hidden; z-index: 30;
  }
  #app .bucket .bucket__summary {
    display: flex; flex-direction: column; gap: 8px;
    margin: 0; padding: 14px 16px 12px; min-height: 0;
    overflow-y: auto; overscroll-behavior: contain;
    border: 0; box-shadow: none; scrollbar-width: thin;
  }
  #app .bucket .bucket__summary-field {
    gap: 12px; margin: 0; padding: 0; font-size: 13px; line-height: 1.5;
    color: #d2cddd; text-align: left;
  }
  #app .bucket .bucket__summary-field > div:last-child:not(.label-list) {
    color: #f5f2fa; font-weight: 600; white-space: nowrap;
    font-variant-numeric: tabular-nums;
  }
  #app .bucket .bucket__summary-field.show-on-mobile {
    display: flex; flex-direction: column; gap: 8px; order: -1;
    padding-bottom: 12px; margin-bottom: 2px; border-bottom: 1px solid #40394b;
  }
  #app .bucket .bucket__summary-field.show-on-mobile > div:first-child {
    color: #d2cddd; font-size: 12px; font-weight: 600;
  }
  #app .bucket .label-list {
    display: flex; flex-direction: column; gap: 8px; width: 100%;
    min-width: 0; margin: 0; padding: 0; overflow: visible;
  }
  #app .bucket .label-list .label {
    box-sizing: border-box; display: flex; justify-content: space-between;
    align-items: center; gap: 12px; width: 100%; min-width: 0;
    min-height: 46px; max-height: none; padding: 8px 10px 8px 12px;
    background: #302a3b; border: 1px solid #51455f; border-radius: 10px;
    color: #fff; font-size: 13px; line-height: 1.5; text-align: left;
    white-space: normal; overflow-wrap: anywhere;
  }
  #app .bucket .label-list .label svg {
    box-sizing: content-box; flex-shrink: 0; width: 12px; height: 12px;
    padding: 16px; margin: -8px -10px -8px 0; cursor: pointer;
  }
  #app .bucket .bucket__summary-total.hide-on-mobile {
    display: flex !important; justify-content: space-between; gap: 14px;
    margin: 4px 0 0; padding-top: 10px; border-top: 1px solid #514763;
    color: #fff; font-size: 20px; font-weight: 700; line-height: 1.4;
    font-variant-numeric: tabular-nums;
  }
  #app .bucket .bucket__summary-total > div:last-child { white-space: nowrap; }
  #app .bucket .bucket__submit,
  #app .bucket .bucket__submit-no-tickets {
    flex-shrink: 0; min-height: 56px; height: auto; margin: 0;
    padding: 16px 16px calc(16px + env(safe-area-inset-bottom, 0px));
    font-size: 16px; font-weight: 700; line-height: 1.4;
    border: 0; box-shadow: none; transform: none;
  }
  #app .bucket .bucket__payments-icons { display: none; }
  #app .main > .content { padding-bottom: var(--cmk-mobile-cart-height, 0px); }
}
