/* Ended campaign landing page. Existing theme header/footer stay in place. */
.tgem-ended-page mark { background: transparent; color: #ffed00; padding: 0; }
.tgem-ended-page__hero { position: relative; isolation: isolate; display: grid; place-items: center; min-height: 540px; aspect-ratio: 1.86; overflow: hidden; background: #17191a; padding: 48px 24px; text-align: center; }
.tgem-ended-page__hero > .tgem-ended-page__image { position: absolute; inset: 0; z-index: -2; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; margin: 0; }
.tgem-ended-page__hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,rgba(0,0,0,.48),rgba(0,0,0,.64) 65%,rgba(0,0,0,.88)); }
.tgem-ended-page__hero-content { max-width: 850px; }
.tgem-ended-page__badge { font-family: Montserrat, Arial, sans-serif; font-style: normal; display: inline-block; background: var(--tgem-primary-color,#20ef8b); color: #050505; font-weight: 800; padding: 10px 30px 10px 18px; clip-path: polygon(0 0,100% 0,calc(100% - 16px) 100%,0 100%); }
.tgem-ended-page__hero h1 { color: #fff; font-family: Impact,'Arial Narrow',sans-serif; font-weight: 900; font-style: italic; font-size: clamp(54px,7.5vw,110px); line-height: .98; text-transform: uppercase; margin: 28px 0 20px; overflow-wrap: anywhere; }
.tgem-ended-page__message { color: #fff; font-size: clamp(19px,2.1vw,28px); font-weight: 800; line-height: 1.25; margin: 0 auto 18px; max-width: 720px; }
.tgem-ended-page__announcement { color: #b9bfca; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin: 0; }
.tgem-ended-page__related { margin-top: 40px; }
.tgem-ended-page__related-intro { text-align: center; margin-bottom: 48px; }
.tgem-ended-page__related-intro h2 { color: #fff; font-family: Impact,'Arial Narrow',sans-serif; font-style: italic; font-weight: 900; font-size: clamp(28px,3.6vw,48px); line-height: 1.12; text-transform: uppercase; margin: 0 0 14px; overflow-wrap: anywhere; }
.tgem-ended-page__related-intro p { color: #fff; font-size: clamp(16px,1.8vw,22px); font-weight: 700; line-height: 1.45; margin: 0; }
.tgem-ended-page mark.tgem-ended-page__offer { display: inline-block; background: #ffed00; color: #050505; border-radius: 4px; padding: 0 9px; }
.tgem-ended-page__grid.tgem-campaign-carousel { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch; column-gap: 30px; row-gap: 18px; margin: 0; padding: 0; width: 100%; max-width: none; }
/* Standalone cards must not inherit the scroller’s percentage flex basis. */
/* Shared rows keep purchase panels aligned when titles, prices or progress differ. */
.tgem-ended-page__car { min-width: 0; display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 18px; }
.tgem-ended-page__car--benefits { grid-row: span 3; }
.tgem-ended-page__car > .tgem-extras { margin-top: 0; align-self: start; width: 100%; }
.tgem-ended-page__partner-entry { align-self: start; margin: 0; }
.tgem-ended-page .tgem-ended-page__partner-button { display: block; background: #050505; color: #fff; border-radius: 999px; padding: 16px; text-align: center; text-decoration: none; font-size: 14px; font-weight: 800; }
.tgem-ended-page .tgem-ended-page__partner-button:hover { background: #252525; color: #fff; }
.tgem-ended-page .tgem-ended-page__partner-button:focus-visible { outline: 3px solid #050505; outline-offset: 3px; }
.tgem-ended-page__car > .tgem-campaign-card { flex: none; height: auto; align-self: start; width: 100%; min-width: 0; max-width: none; margin: 0; }
.tgem-ended-page__car .tgem-campaign-card__media { aspect-ratio: 1.5; }
.tgem-ended-page__car .tgem-campaign-detail__purchase-experience { margin-top: 0; align-self: start; width: 100%; min-width: 0; }
.tgem-ended-page__car .tgem-campaign-detail__purchase { padding: 24px 18px; }
.tgem-ended-page__car .tgem-campaign-detail__purchase h2 { font-size: 24px; }
.tgem-ended-page__car .tgem-campaign-detail__purchase-tabs { margin-bottom: 12px; }
.tgem-ended-page__car .tgem-campaign-detail__purchase-tabs button { padding: 10px 6px; font-size: 12px; }
.tgem-ended-page__car .tgem-campaign-detail__pass-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.tgem-ended-page__car .tgem-campaign-detail__pass-card { padding-left: 8px; padding-right: 8px; }
.tgem-ended-page__empty { text-align: center; padding: 36px 18px; color: #b9bfca; }
@media (max-width: 1100px) and (min-width: 1024px) { .tgem-ended-page__grid.tgem-campaign-carousel { gap: 18px; } .tgem-ended-page__car .tgem-campaign-detail__purchase { padding: 20px 12px; } }
@media (max-width: 1023px) { .tgem-ended-page__hero { min-height: 420px; aspect-ratio: auto; padding: 40px 20px; } .tgem-ended-page__related { margin-top: 20px; } .tgem-ended-page__related-intro { margin-bottom: 28px; } .tgem-ended-page__grid.tgem-campaign-carousel { grid-template-columns: minmax(0,1fr); gap: 40px; } .tgem-ended-page__car { display: flex; flex-direction: column; grid-row: auto; gap: 18px; } .tgem-ended-page__car .tgem-campaign-detail__purchase-tabs button { font-size: 14px; } }
/* Match the receipt's phone-sized, draggable card row. */
@media (max-width: 600px) {
 .tgem-ended-page:not(.tgem-thank-you-page) .tgem-ended-page__grid.tgem-campaign-carousel {
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: 88%;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  overscroll-behavior-x: contain;
  padding: 6px 0 12px;
  scrollbar-width: thin;
  scrollbar-color: #f9d948 #272727;
  touch-action: pan-x pan-y pinch-zoom;
  -webkit-overflow-scrolling: touch;
  cursor: grab;
 }
 .tgem-ended-page:not(.tgem-thank-you-page) .tgem-ended-page__grid.is-dragging { scroll-snap-type: none; scroll-behavior: auto; cursor: grabbing; }
 .tgem-ended-page:not(.tgem-thank-you-page) .tgem-ended-page__grid.is-dragging * { cursor: grabbing; -webkit-user-select: none; user-select: none; }
 .tgem-ended-page:not(.tgem-thank-you-page) .tgem-ended-page__car { scroll-snap-align: start; }
 .tgem-ended-page:not(.tgem-thank-you-page) .tgem-campaign-detail__quantity-control { grid-template-columns: 44px minmax(0,126px) 44px; width: 100% !important; max-width: 234px; }
 .tgem-ended-page:not(.tgem-thank-you-page) .tgem-campaign-detail__quantity-control label { min-width: 0; width: 100% !important; }
}
.tgem-ended-page__hero { order: 1; }
.tgem-ended-page__related { order: 2; }
.tgem-ended-page__car .tgem-campaign-detail__purchase { --tgem-ended-panel-padding: 18px; overflow: hidden; }
.tgem-ended-page__promotion { background: #cc1626; color: #fff; text-align: center; font-size: 12px; font-weight: 800; letter-spacing: .035em; line-height: 1.3; padding: 10px 12px; margin: -24px calc(-1 * var(--tgem-ended-panel-padding)) 20px; }
@media (max-width: 1100px) and (min-width: 1024px) { .tgem-ended-page__car .tgem-campaign-detail__purchase { --tgem-ended-panel-padding: 12px; } .tgem-ended-page__promotion { margin-top: -20px; } }

/* Italic display type can visually consume a normal word space at the highlight. */
.tgem-ended-page__related-intro h2 mark { padding-inline-start: .2em; }

/* Keep the ended hero compact so the live giveaways appear sooner. */
.tgem-ended-page:not(.tgem-thank-you-page) .tgem-ended-page__hero { min-height: 360px; aspect-ratio: auto; padding: 32px 24px; }
.tgem-ended-page:not(.tgem-thank-you-page) .tgem-ended-page__hero h1 { font-size: clamp(44px,5vw,72px); margin: 20px 0 14px; }
.tgem-ended-page:not(.tgem-thank-you-page) .tgem-ended-page__message { font-size: clamp(16px,1.6vw,22px); margin-bottom: 14px; }
@media (max-width: 1023px) { .tgem-ended-page:not(.tgem-thank-you-page) .tgem-ended-page__hero { min-height: 300px; padding: 24px 16px; } }

/* The paid-entry page shares the ended layout, with independent copy and cars. */
.tgem-thank-you-page .tgem-ended-page__hero h1 { font-size: clamp(44px,6.5vw,90px); }
.tgem-thank-you-page__coupon { margin: 22px auto; color: #fff; }
.tgem-thank-you-page__coupon p { margin: 0 0 12px; font-size: 18px; }
.tgem-thank-you-page__coupon strong { display: inline-block; max-width: 100%; overflow-wrap: anywhere; background: #ffed00; color: #050505; border: 2px dashed #050505; border-radius: 8px; padding: 12px 24px; font: 800 24px/1.3 Montserrat,Arial,sans-serif; user-select: all; }
.tgem-thank-you-page__receipt { text-align: center; margin: 20px 0 0; }
.tgem-thank-you-page__receipt a { color: #fff; text-decoration: underline; }

/* Let the phone compositor scroll both ended-page rows with natural momentum. */
@media (max-width:600px) {
 .tgem-ended-page:not(.tgem-thank-you-page) .tgem-campaign-carousel__track {
  overflow-x:auto; touch-action:pan-x pan-y pinch-zoom; -webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity; overscroll-behavior-x:contain;
  transform:none!important; will-change:auto; scrollbar-width:thin; scrollbar-color:#f9d948 #272727;
 }
 .tgem-ended-page:not(.tgem-thank-you-page) .tgem-campaign-carousel__track>.tgem-campaign-card { scroll-snap-align:start; }
 .tgem-ended-page:not(.tgem-thank-you-page) .tgem-campaign-carousel__track.is-dragging { scroll-snap-type:none; }
}
