
/* VIP spotlight — bespoke limited-edition seal, restrained metallic gloss */
.ticket-entry-vip .ticket-invite { isolation:isolate; }
.ticket-entry-vip .ticket-limited {
  position:absolute; z-index:7; inset:17px 15px auto auto;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:120px;height:120px; margin:0; padding:13px 12px 11px;
  border:0;border-radius:0;white-space:nowrap;
  color:#982257; background:
    radial-gradient(ellipse at 36% 23%,#fffefa 0%,#fff6d6 24%,transparent 58%),
    linear-gradient(138deg,#fff6c9 0%,#edc068 39%,#fff8d8 56%,#efb95e 100%);
  clip-path:polygon(50% 0%,58% 9%,72% 3%,77% 17%,91% 13%,89% 28%,100% 36%,92% 49%,100% 61%,88% 70%,91% 85%,76% 86%,65% 100%,53% 91%,40% 99%,32% 88%,17% 92%,16% 77%,2% 70%,10% 57%,0 44%,11% 34%,6% 20%,22% 17%,29% 4%,43% 11%);
  text-shadow:none;box-shadow:none; transform:rotate(8deg);
  filter:none;
}
.ticket-entry-vip .ticket-limited::before {
  content:'';position:absolute;inset:10px;z-index:-1;
  border:1px solid rgba(147,66,78,.34);border-radius:50%;
  background:radial-gradient(circle at 50% 20%,#ffffff88,transparent 65%);
}
.ticket-entry-vip .ticket-limited-num {
  display:block; font:900 43px/.96 'DM Sans','Noto Sans JP',sans-serif;
  letter-spacing:-.065em; color:#a4195e;
  text-shadow:0 1px 0 #fff;
}
.ticket-entry-vip .ticket-limited-num small {
  font:900 15px 'Zen Maru Gothic','Noto Sans JP',sans-serif;letter-spacing:-.015em;margin-left:2px;
}
.ticket-entry-vip .ticket-limited-word {
  display:block;margin-top:5px; border-top:1px solid #a43c5a8c;
  padding-top:5px; font:900 18px/1.1 'Zen Maru Gothic',sans-serif;
  letter-spacing:.11em;color:#9b2057;
}
/* VIP gets priority through a subtle lit edge, not generic cards */
.ticket-entry-vip .ticket-invite {
  box-shadow:inset 0 0 0 2px #ffe4b2, 0 0 26px #ffb2d488;
  border-color:#ffe6b4;
}
.ticket-entry-vip .ticket-invite::after {
  content:'';position:absolute;inset:0;pointer-events:none;z-index:1;
  border:2px solid #ffe1ad;box-shadow:inset 0 0 23px #ffe4b42e;
}
.ticket-entry-vip .ticket-expand {
  border-top:1px solid #fff2ba;
  background:linear-gradient(100deg,#c31568 0%,#f83d94 35%,#ff80bf 50%,#dd197a 84%,#a20c58 100%);
  box-shadow:inset 0 1px 0 #fff5, 0 -8px 22px #ff75bc47;
  font-size:14px;letter-spacing:.045em;
}
.ticket-entry-vip .ticket-expand-label {text-shadow:0 1px 5px #8b0b4c;}
@media(max-width:580px){
  .ticket-entry-vip .ticket-limited{width:113px;height:113px;top:11px;right:10px;}
  .ticket-entry-vip .ticket-limited-num{font-size:41px;}
  .ticket-entry-vip .ticket-limited-word{font-size:17px;}
  .ticket-entry-vip .ticket-expand{font-size:13px;}
}
@media(prefers-reduced-motion:reduce){.ticket-entry-vip .ticket-expand{transition:none}}
/* The medallion sits above the tier, never over the title. */
.ticket-entry-vip .ticket-invite,.ticket-entry-vip .ticket-body{min-height:420px;}
@media(max-width:580px){
  .ticket-entry-vip .ticket-invite,.ticket-entry-vip .ticket-body{min-height:382px;}
}

/* v24 — make the VIP catchphrase itself sell the ticket */
.ticket-entry-vip .ticket-phrase {
  display:inline-flex;align-items:center;justify-content:center;
  margin:10px 0 24px; padding:10px 18px 11px;
  max-width:min(86%, 320px);
  border:1px solid rgba(255,234,199,.72);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(255,250,236,.18),rgba(255,188,226,.26));
  color:#fffdf8;
  font:900 15px/1.45 "Zen Maru Gothic",sans-serif;
  letter-spacing:.045em;
  text-shadow:0 2px 10px rgba(84,10,52,.72),0 0 18px rgba(255,121,188,.45);
  box-shadow:0 0 0 1px rgba(255,255,255,.12) inset,0 10px 24px rgba(255,86,162,.22);
}
.ticket-entry-vip .ticket-phrase::before {
  content:"★"; margin-right:10px; font-size:13px; color:#ffe8a7; text-shadow:0 0 12px rgba(255,226,120,.6);
}
.ticket-entry-vip .ticket-phrase::after {
  content:"★"; margin-left:10px; font-size:13px; color:#ffe8a7; text-shadow:0 0 12px rgba(255,226,120,.6);
}
.ticket-entry-vip .ticket-tier::after {width:76%;}
@media(max-width:580px){
  .ticket-entry-vip .ticket-phrase{font-size:15px;max-width:88%;padding:10px 14px 11px;}
}

/* v25 — keep the detail buttons inside the card, not on the border */
.ticket-entry-vip .ticket-expand,
.ticket-entry-s .ticket-expand {
  width:calc(100% - 24px);
  margin:0 12px 12px;
  min-height:56px;
  border:1px solid rgba(255,255,255,.28);
  border-top:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  box-shadow:0 8px 20px rgba(13,4,36,.24), inset 0 1px 0 rgba(255,255,255,.18);
}
.ticket-entry-vip .ticket-reveal,
.ticket-entry-s .ticket-reveal {
  margin-top:0;
}
@media(max-width:580px){
  .ticket-entry-vip .ticket-expand,
  .ticket-entry-s .ticket-expand {
    width:calc(100% - 20px);
    margin:0 10px 10px;
    min-height:54px;
  }
}


/* v28 — Sチケットにも限定バッジを追加して目立たせる */
.ticket-entry-s .ticket-invite { isolation:isolate; }
.ticket-entry-s .ticket-limited {
  position:absolute; z-index:7; inset:17px 15px auto auto;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:118px; height:118px; margin:0; padding:13px 12px 11px;
  border:0; border-radius:0; white-space:nowrap;
  color:#124b95; background:
    radial-gradient(ellipse at 36% 23%,#ffffff 0%,#e8f7ff 24%,transparent 58%),
    linear-gradient(138deg,#f5fbff 0%,#96d9ff 39%,#f4fbff 56%,#6baef4 100%);
  clip-path:polygon(50% 0%,58% 9%,72% 3%,77% 17%,91% 13%,89% 28%,100% 36%,92% 49%,100% 61%,88% 70%,91% 85%,76% 86%,65% 100%,53% 91%,40% 99%,32% 88%,17% 92%,16% 77%,2% 70%,10% 57%,0 44%,11% 34%,6% 20%,22% 17%,29% 4%,43% 11%);
  transform:rotate(8deg);
  box-shadow:0 9px 18px rgba(22,73,147,.18);
}
.ticket-entry-s .ticket-limited::before {
  content:''; position:absolute; inset:10px; z-index:-1;
  border:1px solid rgba(35,104,181,.34); border-radius:50%;
  background:radial-gradient(circle at 50% 20%,#ffffff88,transparent 65%);
}
.ticket-entry-s .ticket-limited-num {
  display:block; font:900 39px/.96 'DM Sans','Noto Sans JP',sans-serif;
  letter-spacing:-.065em; color:#1b60bb; text-shadow:0 1px 0 #fff;
}
.ticket-entry-s .ticket-limited-num small {
  font:900 14px 'Zen Maru Gothic','Noto Sans JP',sans-serif; letter-spacing:-.015em; margin-left:2px;
}
.ticket-entry-s .ticket-limited-word {
  display:block; margin-top:5px; border-top:1px solid rgba(29,94,176,.45);
  padding-top:5px; font:900 17px/1.1 'Zen Maru Gothic',sans-serif;
  letter-spacing:.11em; color:#1a5bb3;
}
.ticket-entry-s .ticket-invite {
  box-shadow:inset 0 0 0 2px #c7e6ff, 0 0 26px rgba(102,177,255,.30);
  border-color:#c5e6ff;
}
.ticket-entry-s .ticket-invite::after {
  content:''; position:absolute; inset:0; pointer-events:none; z-index:1;
  border:2px solid rgba(209,237,255,.9); box-shadow:inset 0 0 22px rgba(201,235,255,.18);
}
@media(max-width:580px){
  .ticket-entry-s .ticket-limited{width:110px;height:110px;top:11px;right:10px;}
  .ticket-entry-s .ticket-limited-num{font-size:35px;}
  .ticket-entry-s .ticket-limited-word{font-size:16px;}
}


/* Ver.31 — 一般チケットのみコンパクトに。VIP・Sと横幅は共通。 */
.ticket-entry.ticket-entry-general .ticket-invite,
.ticket-entry.ticket-entry-general .ticket-body {
  height:268px;
  min-height:268px;
}
.ticket-entry.ticket-entry-general .ticket-body {
  padding:24px 13px 0;
}
.ticket-entry-general .ticket-phrase {
  margin:4px 0 14px;
}
.ticket-entry-general .ticket-general-access {
  min-height:48px;
  font-size:13px;
}
@media(max-width:980px) and (min-width:581px){
  .ticket-entry.ticket-entry-general .ticket-invite,
  .ticket-entry.ticket-entry-general .ticket-body { height:250px; min-height:250px; }
  .ticket-entry.ticket-entry-general .ticket-body{padding-top:20px;}
}
@media(max-width:580px){
  .ticket-entry.ticket-entry-general .ticket-invite,
  .ticket-entry.ticket-entry-general .ticket-body { height:240px; min-height:240px; }
  .ticket-entry.ticket-entry-general .ticket-body { padding:16px 12px 0; }
  .ticket-entry-general .ticket-phrase { margin:3px 0 10px; }
  .ticket-entry-general .ticket-general-access { min-height:46px; }
}
