/* Ver.72: align the three ticket covers and action rows on desktop without altering phone VIP/S covers. */
/* The general ticket has only a title, price and phrase: center them instead of pushing them to the bottom. */
.ticket-entry.ticket-entry-general .ticket-body {
  justify-content: center;
  padding: 15px 14px 25px;
}
.ticket-entry-general .ticket-tier::after { margin-top: 7px; margin-bottom: 7px; }
.ticket-entry-general .ticket-phrase { margin: 5px 0 0; }

@media (min-width: 800px) {
  /* display:contents is defined upstream; its children are direct grid items. Give all three a shared cover height. */
  .ticket-showcase { align-items: stretch; }
  .ticket-entry .ticket-invite,
  .ticket-entry.ticket-entry-general .ticket-invite {
    height: 456px;
    min-height: 456px;
  }
  .ticket-entry .ticket-body,
  .ticket-entry.ticket-entry-vip .ticket-body,
  .ticket-entry.ticket-entry-s .ticket-body,
  .ticket-entry.ticket-entry-general .ticket-body {
    box-sizing: border-box;
    height: 100%;
    min-height: 456px;
    padding: 33px 16px 0;
  }
  /* Higher-value tiers retain a clearly visible top title and a lower visual emphasis on price and benefits. */
  .ticket-entry.ticket-entry-vip .ticket-body,
  .ticket-entry.ticket-entry-s .ticket-body { justify-content: flex-start; }
  .ticket-entry-vip .ticket-tier,
  .ticket-entry-s .ticket-tier { align-self: flex-start; margin-left: 10px; }
  .ticket-entry-vip .ticket-price,
  .ticket-entry-s .ticket-price { margin-top: 80px; }
  .ticket-entry-vip .ticket-phrase,
  .ticket-entry-s .ticket-phrase { margin-top: 8px; margin-bottom: 0; }
  .ticket-entry-vip .ticket-expand,
  .ticket-entry-s .ticket-expand {
    margin-top: auto;
    margin-bottom: 16px;
    min-height: 112px;
  }
  /* General: actual content is vertically balanced rather than hugging the lower border. */
  .ticket-entry.ticket-entry-general .ticket-body {
    justify-content: center;
    padding: 26px 16px 43px;
  }
  .ticket-entry-general .ticket-tier { font-size: clamp(20px, 2.05vw, 29px); }
  .ticket-entry-general .ticket-price { font-size: clamp(45px, 4.5vw, 65px); }
  .ticket-entry-general .ticket-phrase { margin: 8px 0 0; }
  /* All application buttons occupy the same row, with the same height/baseline. */
  .ticket-entry .ticket-purchase-link,
  .ticket-entry-vip .ticket-purchase-link,
  .ticket-entry-s .ticket-purchase-link,
  .ticket-entry-general .ticket-purchase-link {
    box-sizing:border-box;
    height:78px;
    min-height:78px;
    width:calc(100% - 20px);
    margin:12px 10px 16px;
    align-self:start;
  }
  .ticket-entry-general .ticket-purchase-copy strong,
  .ticket-entry-s .ticket-purchase-copy strong { font-size: clamp(13px,1.15vw,17px); }
}
@media (min-width:800px) and (max-width:1020px) {
  .ticket-entry .ticket-invite,
  .ticket-entry.ticket-entry-general .ticket-invite {height:422px;min-height:422px;}
  .ticket-entry .ticket-body,
  .ticket-entry.ticket-entry-vip .ticket-body,
  .ticket-entry.ticket-entry-s .ticket-body,
  .ticket-entry.ticket-entry-general .ticket-body {min-height:422px;}
  .ticket-entry-vip .ticket-price,
  .ticket-entry-s .ticket-price {margin-top:66px;}
  .ticket-entry-vip .ticket-expand,
  .ticket-entry-s .ticket-expand {width:calc(100% - 18px);margin-left:9px;margin-right:9px;padding:10px 21px 10px 8px;}
  .ticket-entry .ticket-expand .ticket-expand-label {font-size:clamp(12px,1.5vw,16px);}
  .ticket-entry .ticket-expand-preview {font-size:9px;}
}
/* Desktop compact screens: avoid stray one-character lines in the benefit buttons. */
@media (min-width: 800px) {
  .ticket-entry .ticket-expand-preview {
    max-width: 100%;
    font-size: clamp(7.5px, .68vw, 9px);
    letter-spacing: -.02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}
@media (min-width: 800px) and (max-width: 1199px) {
  .ticket-entry .ticket-expand-eyebrow {
    font-size: clamp(8px, .83vw, 10px);
    padding: 4px 7px;
    letter-spacing: 0;
    white-space: nowrap;
  }
  .ticket-entry .ticket-expand .ticket-expand-label {
    font-size: clamp(12px, 1.15vw, 15px);
    letter-spacing: 0;
  }
  .ticket-entry .ticket-expand { gap: 6px; }
}
@media (max-width:580px) {
  .ticket-entry.ticket-entry-general .ticket-body {padding:8px 12px 18px;}
}
