.cmbg-custom-basket{
  --cmbg-accent: var(--global-palette10);
  --cmbg-accent-alt: var(--global-palette2);
  --cmbg-accent-strong: var(--global-palette1);
  --cmbg-info: var(--global-palette12);
  --cmbg-alert: var(--global-palette13);
  --cmbg-warning: var(--global-palette14);
  --cmbg-success: var(--global-palette11);
  --cmbg-bg: var(--global-palette9);
  --cmbg-bg-light: var(--global-palette8);
  --cmbg-bg-subtle: var(--global-palette7);
  --cmbg-text-strong: var(--global-palette4);
  --cmbg-text: var(--global-palette5);
  --cmbg-text-subtle: var(--global-palette6);
  position:relative;
}

.cmbg-custom-basket__status{
  position:absolute;
  top:0;
  left:0;
}

body.cmbg-cart-page--shopping-cart .masthead{
  display: none;
}

body.cmbg-cart-page--shopping-cart .wysiwyg{
  margin: 0;
}

.cmbg-cart-page__header{
  margin-top: 65px;
}

.cmbg-custom-basket__layout{
  display:grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  align-items: stretch;
  background: var(--cmbg-bg-light);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
  padding-bottom: 50px;
  padding-top: 50px;
}
@media (min-width: 900px){
  .cmbg-custom-basket__layout{ grid-template-columns: 1fr 360px; align-items:stretch; }
}

.cmbg-custom-basket__summary-card{
  background:var(--cmbg-bg);
  border:1px solid color-mix(in srgb, var(--cmbg-text-strong) 8%, transparent);
  border-radius:9px;
  padding:1.4rem 1.6rem;
  box-shadow: 0 18px 45px rgba(10, 42, 32, 0.18);
}

.cmbg-custom-basket__summary{
  display: flex;
  flex-direction: column;
}

.cmbg-custom-basket__block{
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  border-radius: 0;
}

.cmbg-custom-basket__block + .cmbg-custom-basket__block{
  margin-top:1.5rem;
}

.cmbg-custom-basket__block-title{ 
  font-family: "franklin-gothic-urw", "Arial", sans-serif !important;
  font-weight: 700 !important;
  margin:0 0 .75rem; 
  font-size:34px !important; }

.cmbg-custom-basket__instance{
  background:var(--cmbg-bg);
  border-radius:9px;
  padding:1.4rem 1.6rem;
  box-shadow: 0 18px 45px rgba(10, 42, 32, 0.18);
}

.cmbg-custom-basket__instance + .cmbg-custom-basket__instance{
  margin-top:1.5rem;
}

.cmbg-custom-basket__instance-header{
  padding-bottom:1.1rem;
}

.cmbg-custom-basket__instance-title{
  font-size: 24px;
  font-weight:700;
  color:var(--cmbg-text-strong);
  line-height:1.2;
}

.cmbg-custom-basket__instance-meta{
  margin-top:0.35rem;
  font-size:18px;
  color:var(--cmbg-text);
}

.cmbg-custom-basket__row{
  display:grid;
  grid-template-columns: 1fr;
  gap:1.5rem;
  align-items:start;
  padding:1.4rem 0;
  border-top:2px dashed color-mix(in srgb, var(--cmbg-text-strong) 20%, transparent);
}
.cmbg-custom-basket__row:first-of-type{
  border-top:0;
  padding-top:1rem;
}

.cmbg-custom-basket__name{
  font-weight:400;
  font-size:c18px;
  color:var(--cmbg-text-strong);
}

.cmbg-custom-basket__controls{
  display:flex;
  align-items:center;
  gap:1.4rem;
  width:100%;
  justify-content:space-between;
}

.cmbg-custom-basket__controls-left{
  display:flex;
  align-items:center;
  min-width:0;
}

.cmbg-custom-basket__controls-right{
  display:flex;
  align-items:center;
  gap:1.4rem;
  justify-content:flex-end;
}

.cmbg-custom-basket__price{
  font-weight:800;
  font-size:24px;
  color:var(--cmbg-text-strong);
  white-space:nowrap;
}

.cmbg-custom-basket__row--card{
  background:var(--cmbg-bg);
  border-radius:9px;
  padding:1.4rem 1.6rem;
  box-shadow: 0 18px 45px rgba(10, 42, 32, 0.18);
  border-top:0;
}

.cmbg-custom-basket__row--card + .cmbg-custom-basket__row--card{
  margin-top:1.5rem;
}

/* Stepper: match event details (.spektrix-single__tickets-main .cmbg-stepper) — scoped so borders win over theme */
.cmbg-custom-basket .cmbg-stepper{
  display: grid;
  grid-template-columns: 1fr 74px;
  align-items: stretch;
  width: 132px;
  border-radius: 6px !important;
  overflow: hidden;
}

.cmbg-custom-basket .cmbg-ticket-qty-input{
  width: 100%;
  max-width: none;
  height: 58px;
  padding: 0 10px;
  border-radius: 6px !important;
  border: 1px solid color-mix(in srgb, var(--cmbg-text-strong) 55%, transparent) !important;
  background: var(--cmbg-bg) !important;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--cmbg-text);
  text-align: center;
  appearance: textfield;
  -moz-appearance: textfield;
}

.cmbg-custom-basket .cmbg-ticket-qty-input::-webkit-outer-spin-button,
.cmbg-custom-basket .cmbg-ticket-qty-input::-webkit-inner-spin-button{
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
}

.cmbg-custom-basket .cmbg-stepper__input{
  display: block;
}

.cmbg-custom-basket .cmbg-stepper__input .cmbg-ticket-qty-input{
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.cmbg-custom-basket .cmbg-stepper__buttons{
  display: grid;
  grid-template-rows: 1fr 1fr;
  height: 58px;
}

.cmbg-custom-basket .cmbg-stepper__btn{
  width: 44px;
  height: 100%;
  padding: 0;
  line-height: 1;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--cmbg-text-strong) 55%, transparent) !important;
  border-left: 0 !important;
  background: var(--cmbg-bg) !important;
  color: var(--cmbg-accent);
  border-radius: 0 !important;
  cursor: pointer;
}

.cmbg-custom-basket .cmbg-stepper__btn--up{
  border-bottom: 0 !important;
  border-top-right-radius: 6px !important;
}

.cmbg-custom-basket .cmbg-stepper__btn--down{
  border-bottom-right-radius: 6px !important;
}

.cmbg-custom-basket .cmbg-stepper__chev{
  width: 18px;
  height: 12px;
  display: block;
  color: var(--cmbg-accent-alt);
}

.cmbg-custom-basket__remove{
  border:0;
  background:transparent;
  color:var(--cmbg-alert);
  cursor:pointer;
  padding:0;
  display:grid;
  place-items:center;
}

.cmbg-custom-basket__remove:hover,
.cmbg-custom-basket__remove:active,
.cmbg-custom-basket__remove:focus,
.cmbg-custom-basket__remove:focus-visible{
  background:transparent !important;
  background-color:transparent !important;
  box-shadow:none !important;
}
.cmbg-custom-basket__remove:hover{
  color:inherit;
}

.cmbg-custom-basket__remove svg{
  width:30px;
  height:30px;
  aspect-ratio:1/1;
}

.cmbg-custom-basket__actions{ margin-top:1rem; display:grid; gap:.5rem; }

.cmbg-custom-basket__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:.75rem 1rem;
  background:var(--cmbg-accent);
  color:var(--cmbg-bg);
  text-decoration:none;
  font-weight:700;
}

.cmbg-custom-basket__cta:hover,
.cmbg-custom-basket__cta:active,.cmbg-custom-basket__cta:focus{
  color:#fff;
  box-shadow: inset 150px 150px 0px 0px rgba(0, 0, 0, 0.25);
}

.cmbg-custom-basket__summary-placeholder{
  min-height: 160px;
  border-radius: 0;
  box-shadow: none;
  height:100%;
  display:flex;
  flex-direction:column;
}

.cmbg-custom-basket__summary-placeholder .kb-row-layout-wrap,
.cmbg-custom-basket__summary-placeholder .kt-row-column-wrap,
.cmbg-custom-basket__summary-placeholder .wp-block-kadence-column,
.cmbg-custom-basket__summary-placeholder .kt-inside-inner-col{
  height:100%;
}

.cmbg-custom-basket__summary-placeholder .kb-row-layout-wrap,
.cmbg-custom-basket__summary-placeholder .kt-row-column-wrap,
.cmbg-custom-basket__summary-placeholder .wp-block-kadence-column{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:0;
}

.cmbg-custom-basket__summary-default .wp-block-kadence-rowlayout{
  margin-top:76px;
}

.cmbg-custom-basket__summary-recommended{
  height:100%;
  display:flex;
  flex-direction:column;
}

.cmbg-custom-basket__recommended{
  margin:0;
}

.cmbg-custom-basket__recommended-title{
  font-family:"franklin-gothic-urw", "Arial", sans-serif !important;
  font-weight:700 !important;
  margin:0 0 .75rem;
  font-size:34px !important;
  color:var(--cmbg-text-strong);
}

.cmbg-custom-basket__recommended-list{
  list-style:none;
  margin:0;
  padding:0;
  padding-left:0 !important;
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.cmbg-custom-basket__recommended-card{
  margin:0;
  border-radius:12px;
  overflow:hidden;
  min-height:180px;
  background-size:cover;
  background-position:center;
  background-color:var(--cmbg-bg-subtle);
  box-shadow:0 8px 24px rgba(10, 42, 32, 0.12);
  position:relative;
}

.cmbg-custom-basket__recommended-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0.15) 100%);
  pointer-events:none;
}

.cmbg-custom-basket__recommended-card-inner{
  position:relative;
  padding:1.25rem 1.25rem 1.5rem;
  height:100%;
  min-height: 274px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:flex-start;
}

.cmbg-custom-basket__recommended-headline{
  margin:0 0 0.75rem;
  font-family:"adobe-garamond-pro", "Times New Roman", serif;
  font-size:1.35rem;
  font-weight:600;
  line-height:1.25;
  color:#fff;
  text-shadow:0 1px 3px rgba(0,0,0,0.5);
}

.cmbg-custom-basket__recommended-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0.5rem 1.25rem;
  border-radius:999px;
  background:#203F6F;
  color:#fff;
  font-weight:600;
  font-size:0.95rem;
  text-decoration:none;
  border:none;
  box-shadow:none;
  transition:background-color 0.2s ease, opacity 0.2s ease;
}

.cmbg-custom-basket__recommended-cta:hover{
  background:#2a4f87;
  color:#fff;
  text-decoration:none;
  box-shadow:none;
}

.cmbg-custom-basket__recommended-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0.75rem;
}

.cmbg-custom-basket__recommended-add{
  cursor:pointer;
}

.cmbg-custom-basket__recommended-more{
  color:rgba(255,255,255,0.95);
  font-size:0.9rem;
  text-decoration:underline;
}

.cmbg-custom-basket__recommended-more:hover{
  color:#fff;
}

.cmbg-custom-basket__summary--bottom{
  display:flex;
  flex-direction:column;
  margin-top:2.5rem;
}

.cmbg-custom-basket__summary--bottom .cmbg-custom-basket__summary-card{
  background: var(--cmbg-success);
}

.cmbg-custom-basket__summary--bottom .cmbg-custom-basket__summary-row{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:1.5rem;
  padding:0.25rem 0;
}

.cmbg-custom-basket__summary--bottom [data-basket-total]{
  font-size:2.15rem;
  font-weight:700;
  color:var(--cmbg-text-strong);
  text-align:right;
}

.cmbg-custom-basket__summary-save{
  margin-top:.35rem;
  margin-bottom:.75rem;
  color:var(--cmbg-text-strong);
}

.cmbg-custom-basket__summary--bottom .cmbg-custom-basket__cta{
  background:var(--cmbg-accent-strong);
}

.cmbg-custom-basket__summary--bottom .cmbg-custom-basket__danger{
  background:var(--cmbg-accent);
  border:0;
  color:#FFF;
  text-decoration:none;
  padding:7px 12px;
  border-radius:999px;
  justify-content:flex-end;
  text-align:right;
}

.cmbg-custom-basket__summary--bottom .cmbg-custom-basket__actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}

.cmbg-custom-basket__continue{
  color:var(--cmbg-accent);
  text-decoration:underline;
}

.cmbg-custom-basket__actions-right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:.5rem;
}

@media (max-width: 700px){
  .cmbg-custom-basket__actions{
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .cmbg-custom-basket__actions-right{
    width: 100%;
    align-items: stretch;
  }

  .cmbg-custom-basket__continue{
    text-align: left;
  }
}

.cmbg-custom-basket__secondary,
.cmbg-custom-basket__danger{
  border-radius:999px;
  padding:.7rem 1rem;
  border:1px solid color-mix(in srgb, var(--cmbg-text-strong) 12%, transparent);
  background:var(--cmbg-bg);
  cursor:pointer;
  font-weight:700;
}
.cmbg-custom-basket__danger{ border-color: color-mix(in srgb, var(--cmbg-warning) 35%, transparent); color:var(--cmbg-warning); }

.cmbg-custom-basket__error{
  margin-top:.75rem;
  padding:.75rem;
  border-radius:10px;
  background: color-mix(in srgb, var(--cmbg-warning) 12%, transparent);
}

.cmbg-custom-basket__promo-membership-error{
  margin-top:.75rem;
  padding:.75rem 1rem;
  border-radius:10px;
  background: color-mix(in srgb, var(--cmbg-warning) 12%, transparent);
  color: var(--cmbg-text-strong);
  font-size: 0.95rem;
}

.cmbg-custom-basket__promo-membership-error:empty{
  display:none !important;
}

.cmbg-custom-basket__promo{
  margin-top:2.5rem;
  display:grid;
  gap:2rem;
}

.cmbg-custom-basket__promo-section{
  margin-top:2.5rem;
}

.cmbg-custom-basket__promo-row{
  display:grid;
  gap:2rem;
  align-items:stretch;
  min-width:0;
}

@media (min-width: 900px){
  .cmbg-custom-basket__promo-row{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.cmbg-custom-basket__promo-membership{
  background: transparent;
  padding: 0;
  border-radius: 0;
}

.cmbg-custom-basket__promo-title{
  margin:0 0 1rem;
  font-size:24px !important;
  color:var(--cmbg-text);
  font-family: 'franklin-gothic-urw', 'Arial', sans-serif !important;
  font-weight: 700 !important;
}

.cmbg-custom-basket__promo-card{
  background:var(--cmbg-bg);
  border-radius:9px;
  padding:1.4rem 1.6rem;
  box-shadow: 0 18px 45px rgba(10, 42, 32, 0.18);
}

.cmbg-custom-basket__promo-copy{
  margin:0 0 1rem;
  color:var(--cmbg-text-strong);
  font-size:1rem;
  line-height:1.4;
}

.cmbg-custom-basket__promo-subtitle{
  margin:0 0 .9rem;
  color:var(--cmbg-text-strong);
  font-family: 'franklin-gothic-urw', 'Arial', sans-serif !important;
  font-weight: 700 !important;
}
h3.cmbg-custom-basket__promo-subtitle{
  margin:0 0 .9rem;
  color:var(--cmbg-text-strong);
  font-family: 'franklin-gothic-urw', 'Arial', sans-serif !important;
  font-weight: 700 !important;
  font-size:24px !important;
}

.cmbg-custom-basket__promo-membership-list{
  display:grid;
  gap:.75rem;
}

.cmbg-custom-basket__promo-membership-row{
  display:grid;
  grid-template-columns: 1fr auto;
  align-items:center;
  column-gap:.9rem;
}

.cmbg-custom-basket__promo-membership-radio-option{
  display:grid;
  grid-template-columns: 36px auto 1fr auto;
  align-items:center;
  column-gap:.9rem;
  cursor:pointer;
}

.cmbg-custom-basket__promo-membership-radio-option:focus-visible{
  outline:2px solid var(--cmbg-accent-strong, currentColor);
  outline-offset:2px;
}

spektrix-memberships{
  width:100%;
  display:block;
}

.cmbg-custom-basket__promo-membership-row spektrix-memberships{
  display: contents;
}

.cmbg-custom-basket__promo-membership-radio{
  width:32px;
  height:32px;
  border-radius:999px;
  border:2px solid var(--cmbg-text-strong);
  background:var(--cmbg-bg);
  display:grid;
  place-content:center;
}

.cmbg-custom-basket__promo-membership-radio::before{
  content:"";
  width:14px;
  height:14px;
  border-radius:999px;
  background: #CACACA;
  transform: scale(0);
  transition: transform 120ms ease-in-out;
}

.cmbg-custom-basket__promo-membership-name{
  font-size:18px;
  color:var(--cmbg-text-strong);
}

.cmbg-custom-basket__promo-membership-dots{
  border-bottom:2px dotted color-mix(in srgb, var(--cmbg-text-strong) 55%, transparent);
  height:0;
  transform: translateY(4px);
}

.cmbg-custom-basket__promo-membership-price{
  font-weight:700;
  font-size:1.1rem;
  color:var(--cmbg-text-strong);
  white-space:nowrap;
}

.cmbg-custom-basket__promo-selector{
  cursor:pointer;
}

.cmbg-custom-basket__promo-membership-radio-option.is-selected .cmbg-custom-basket__promo-membership-radio::before{
  transform: scale(1);
}

.cmbg-custom-basket__promo-button{
  border:0;
  border-radius:999px;
  background:var(--cmbg-accent);
  color:var(--cmbg-bg);
  font-weight:400;
  font-size:14px;
  padding:0 12px;
  cursor:pointer;
  white-space:nowrap;
  text-decoration:none;
}

.cmbg-custom-basket__promo-button.is-added{
  background:var(--cmbg-accent-alt);
}

.cmbg-custom-basket__promo-button:hover, .cmbg-custom-basket__promo-button:active, .cmbg-custom-basket__promo-button:focus{
  background:var(--cmbg-accent-alt);
  color:var(--cmbg-bg);
  text-decoration:none;
}

.cmbg-custom-basket__promo-add{
  margin-top:1.2rem;
  margin-bottom:10px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.5rem;
}

.cmbg-custom-basket__promo-selected{
  font-size:0.95rem;
  color:var(--cmbg-text-strong);
}

.cmbg-custom-basket__promo-autorenew{
  display:flex;
  gap:.5rem;
  align-items:center;
  margin-top:.5rem;
  font-size:.95rem;
  color:var(--cmbg-text-subtle, currentColor);
}

.cmbg-custom-basket__promo-autorenew-label{
  display:flex;
  align-items:center;
  gap:.4rem;
  cursor:pointer;
}

.cmbg-custom-basket__promo [data-success-container],
.cmbg-custom-basket__promo [data-fail-container]{
  display:none !important;
  visibility:hidden !important;
  height:0 !important;
  margin:0 !important;
  padding:0 !important;
}

.cmbg-custom-basket__promo-link{
  color:var(--cmbg-accent);
  text-decoration:underline;
}

.cmbg-custom-basket__promo-donation{
  background:var(--cmbg-bg);
  justify-self:stretch;
  width:100%;
  position:relative;
}

.cmbg-custom-basket__promo-code{
  background:var(--cmbg-bg);
  justify-self:stretch;
  width:100%;
}

.cmbg-custom-basket__promo-code-input{
  display:flex;
  align-items:center;
  gap:.75rem;
  border:2px solid color-mix(in srgb, var(--cmbg-text-strong) 25%, transparent);
  border-radius:999px;
  padding: 2px;
  background:none;
  width:100%;
  box-sizing:border-box;
}

.cmbg-custom-basket__promo-code-input input{
  flex:1 1 auto;
  border: none !important;
  outline:0;
  font-size:1.05rem;
  background:none !important;
  color:var(--cmbg-text-strong);
  min-width:0;
  box-sizing:border-box;
}

.cmbg-custom-basket__promo-code-input input:focus-visible{
  outline: 2px solid var(--cmbg-accent-strong, currentColor);
  outline-offset: 2px;
}

.cmbg-custom-basket__promo-code-input input::placeholder{
  color:var(--cmbg-text-strong);
}

.cmbg-custom-basket__promo-code-input button{
  border:0;
  border-radius:999px;
  background:var(--cmbg-accent);
  color:var(--cmbg-bg);
  font-weight:700;
  padding:.6rem 1.4rem;
  cursor:pointer;
  white-space:nowrap;
  margin-right: 2px !important;
}


.cmbg-custom-basket__promo-donation-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
}

.cmbg-custom-basket__promo-donation-btn{
  border:0;
  border-radius:999px;
  padding:.6rem 1.1rem;
  font-weight:700;
  cursor:pointer;
  color:var(--cmbg-bg);
  background:var(--cmbg-accent-alt);
  white-space:nowrap;
}

.cmbg-custom-basket__promo-donation-btn:first-child{
  background:var(--cmbg-accent);
}

.cmbg-custom-basket__promo-donation-btn:disabled{
  opacity:0.6;
  cursor:not-allowed;
}

.cmbg-custom-basket__promo-donation-added{
  position:absolute;
  top:100%;
  left:0;
  margin-top:10px !important;
  margin-bottom:0;
  font-weight:400;
  color:#000;
  opacity:1;
  transition:opacity 0.4s ease-out;
}

.cmbg-custom-basket__promo-donation-added.is-fading{
  opacity:0;
}

@media (max-width: 768px){
  .cmbg-custom-basket__promo-section{
    display: flex;
    flex-direction: column;
    min-width: 0;
  }
  .cmbg-custom-basket__promo-section .cmbg-custom-basket__promo{
    display: flex;
    flex-direction: column;
    gap: 2rem;
    min-width: 0;
  }
  .cmbg-custom-basket__promo-section .cmbg-custom-basket__promo-row{
    display: flex;
    flex-direction: column;
    gap: 2rem;
    min-width: 0;
  }
  .cmbg-custom-basket__promo-section .cmbg-custom-basket__promo-donation,
  .cmbg-custom-basket__promo-section .cmbg-custom-basket__promo-code{
    min-width: 0;
  }
  .cmbg-custom-basket__promo-membership-name{
    font-size: 14px;
  }
  .cmbg-custom-basket__promo-donation-buttons{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    width: 100%;
  }
  .cmbg-custom-basket__promo-donation-buttons > *:first-child{
    grid-column: 1 / -1;
    width: 100%;
  }
  .cmbg-custom-basket__promo-donation-btn{
    width: 100%;
    box-sizing: border-box;
  }
}

.cmbg-custom-basket__promo-add .cmbg-custom-basket__promo-button{
  border:0;
  border-radius:999px;
  padding:.6rem 1.1rem;
  font-weight:700;
  font-size:18px;
  width:100%;
  color:var(--cmbg-bg);
  background:var(--cmbg-accent-alt);
}