/* VIP — 特典7点を実際の体験として見せる、専用の縦スクロール演出 */
.ticket-entry-vip{--accent:#ff57a7;--tone-deep:#b20a63}
.ticket-entry-vip .ticket-limited{display:inline-block;align-self:center;margin:2px 0 8px;padding:4px 11px;background:#ffeff8;color:#b20f66;border-radius:30px;font:900 10px 'Noto Sans JP',sans-serif;box-shadow:0 0 20px #ffe9fbd2}
.ticket-entry-vip .ticket-invite{border-bottom-color:#ffc1db}
.ticket-entry-vip .ticket-body .ticket-phrase{margin-top:8px}
.vip-story{background:#1a082e;color:#fff;line-height:1.7;text-align:left;overflow:hidden;font-family:'Noto Sans JP',sans-serif}
.vip-story *{box-sizing:border-box}
.vip-story .vip-opening{position:relative;isolation:isolate;min-height:332px;display:flex;flex-direction:column;justify-content:end;align-items:flex-start;padding:48px clamp(20px,2.4vw,36px) 31px;overflow:hidden;background:linear-gradient(180deg,#1a0c3590 0%,#370e57ab 47%,#160720fa 100%),var(--vip-scene) center / cover}
.vip-opening:before{position:absolute;z-index:-1;content:'';inset:0;background:radial-gradient(circle at 50% 5%,#ff7ad67a,transparent 50%),linear-gradient(120deg,transparent 40%,#f5a1dc14 52%,transparent 62%)}
.vip-quantity{position:absolute;top:23px;right:18px;background:#ffebfb;color:#a40c61;border:1px solid #fff;padding:7px 13px;font:900 12px 'Zen Maru Gothic',sans-serif;box-shadow:4px 5px 0 #4905369e;transform:rotate(4deg)}
.vip-opening .vip-intro{font:800 12px 'Zen Maru Gothic',sans-serif;color:#ffe4f4;letter-spacing:.075em}
.vip-opening h3{margin:12px 0 12px;font:900 clamp(20px,2.3vw,27px)/1.48 'Zen Maru Gothic',sans-serif;letter-spacing:.025em;text-shadow:0 2px 9px #220322,0 0 23px #f72a9c}
.vip-opening p{margin:0;font:600 12px/1.9 'Noto Sans JP',sans-serif;color:#ffeaf9;max-width:420px}
.vip-benefit{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;isolation:isolate}
.vip-copy{position:relative;padding:25px clamp(20px,2.2vw,31px) 31px;color:#74214e;background:linear-gradient(151deg,#fffafa 0%,#ffe1f0 100%)}
.vip-copy-invert{color:#fff;background:linear-gradient(141deg,#2d1142,#561353)}
.vip-step{display:flex;align-items:center;gap:9px;font:900 11px 'Noto Sans JP',sans-serif;color:#d4227c;letter-spacing:.055em}
.vip-step i{height:1px;flex:1;background:currentColor;opacity:.3}
.vip-copy-invert .vip-step{color:#ffacd9}
.vip-copy h4{margin:11px 0 10px;font:900 clamp(20px,2vw,26px)/1.48 'Zen Maru Gothic',sans-serif;letter-spacing:.02em}
.vip-copy p{font:600 12px/2.02 'Noto Sans JP',sans-serif;margin:0;max-width:420px}
.vip-stamp,.vip-sign-note{display:inline-block;margin-top:21px;padding:7px 15px;font:900 11px 'Zen Maru Gothic',sans-serif;transform:rotate(-2deg);background:#fff;color:#ae1664;border:2px solid #ff79b0;box-shadow:3px 3px 0 #ec7aac7c}
.vip-copy-invert .vip-stamp{background:#ffd8ec}
.vip-front{background:#210c3e}
.vip-front .vip-photo-scene{height:225px;position:relative;background:linear-gradient(90deg,#2909357a,#210e3e47),var(--photo) center 57%/cover;overflow:hidden}
.vip-front .vip-photo-scene:before{position:absolute;content:'';inset:-30px;background:linear-gradient(180deg,transparent 40%,#22072b 100%),radial-gradient(circle at 64% 25%,#ff8cd35f,transparent 55%)}
.vip-floating-word{position:absolute;bottom:22px;left:23px;font:900 clamp(43px,4.8vw,65px)/1 'Zen Maru Gothic',sans-serif;letter-spacing:.07em;color:#fff;white-space:nowrap;text-shadow:3px 3px 0 #eb267c,0 0 19px #e936a2,0 3px 12px #15041c}
.vip-shirt .vip-product-photo{background:#ffddeb}
.vip-pass .vip-product-photo{background:#982a70}
.vip-product-photo{position:relative;min-height:160px;line-height:0;overflow:hidden}
.vip-product-photo img{display:block;width:100%;height:auto;aspect-ratio:700/580;object-fit:cover;transition:transform .8s cubic-bezier(.2,.9,.2,1)}
.vip-shirt .vip-product-photo img{aspect-ratio:700/630}
.vip-benefit:hover .vip-product-photo img{transform:scale(1.035)}
.vip-product-caption{position:absolute;bottom:8px;right:10px;padding:4px 7px;background:#ffffffdb;color:#874d77;font-size:9px;line-height:1.6;font-weight:700}
.vip-shirt .vip-copy{background:linear-gradient(145deg,#fff9fd,#ffdce9)}
.vip-pass .vip-copy{background:linear-gradient(160deg,#fff9fb,#f6d9ef)}
.vip-pass .vip-big-number{font:900 44px/1 'DM Sans',sans-serif;color:#f41988;letter-spacing:-.04em;text-shadow:2px 3px 0 #ffb7d8}
.vip-middle-chapter{padding:26px 18px;text-align:center;position:relative;background:#f5318b;color:#fff;box-shadow:inset 0 5px 20px #bd0d6e;font:900 11px/1.9 'Zen Maru Gothic',sans-serif;letter-spacing:.05em}
.vip-middle-chapter:before,.vip-middle-chapter:after{position:absolute;content:'';inset:7px 10px;pointer-events:none;border-top:1px solid #ffcce8;border-bottom:1px solid #ffcce8;opacity:.7}
.vip-rehearsal{background:#240b44}
.vip-ribbon-photo{margin:0;height:190px;position:relative;overflow:hidden}
.vip-ribbon-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.24) contrast(1.05)}
.vip-ribbon-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#220b46bb,transparent 67%)}
.vip-rehearsal .vip-copy{background:linear-gradient(150deg,#341153,#161431);border-top:2px solid #f8a5e1}
.vip-cheki .vip-cheki-visual{min-height:300px;display:grid;place-items:center;padding:25px;overflow:hidden;background:radial-gradient(circle at 40% 40%,#f0b0f0,#a24dc3 60%,#602978)}
.vip-cheki-print{width:80%;max-width:320px;padding:10px 10px 30px;background:#fff;box-shadow:0 15px 22px #2c07428a,0 2px 3px #38042f82;transform:rotate(-8deg);position:relative}
.vip-cheki-print:before{content:'';position:absolute;z-index:-1;width:100%;height:100%;left:9px;top:8px;border:2px solid #ffd4f2;transform:rotate(9deg)}
.vip-cheki-print img{display:block;width:100%;aspect-ratio:1;object-fit:cover;filter:saturate(1.2)}
.vip-cheki-print span{position:absolute;bottom:5px;left:8px;right:8px;text-align:center;font:800 9px 'DM Sans',sans-serif;letter-spacing:.15em;color:#b76398}
.vip-cheki .vip-copy{background:linear-gradient(140deg,#fffaff,#eee1ff)}
.vip-huddle .vip-huddle-visual{min-height:250px;display:grid;place-items:center;position:relative;isolation:isolate;background:linear-gradient(0deg,#27093ec5,#310b4480),var(--photo) center/cover}
.vip-huddle .vip-huddle-visual:before{content:'';position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 50% 35%,#f537c47d,transparent 65%)}
.vip-huddle .vip-huddle-visual span{font:900 clamp(28px,3.3vw,40px) 'Zen Maru Gothic',sans-serif;color:#fff;transform:rotate(-6deg);text-shadow:3px 4px 0 #bc137a,0 0 20px #fff,0 0 40px #ff16a5}
.vip-huddle .vip-copy{background:linear-gradient(150deg,#32114b,#220b42)}
.vip-message .vip-video-mock{height:335px;display:grid;place-items:center;padding:26px;background:radial-gradient(circle at 50% 42%,#edb5ff 0%,#b951ba 43%,#4e207e 100%);overflow:hidden}
.vip-phone{height:280px;width:151px;border-radius:26px;border:7px solid #28162f;padding:5px;background:#160e24;box-shadow:15px 18px 20px #25092f83,0 0 0 2px #f7c1e3;transform:rotate(8deg)}
.vip-phone-screen{width:100%;height:100%;border-radius:12px;position:relative;overflow:hidden;background:#24112b}
.vip-phone-screen:before{position:absolute;z-index:2;content:'';top:0;left:34%;width:32%;height:9px;background:#28162f;border-radius:0 0 8px 8px}
.vip-phone-screen img{width:100%;height:100%;object-fit:cover;filter:brightness(.69) saturate(1.2)}
.vip-video-play{position:absolute;left:50%;top:48%;width:51px;height:51px;transform:translate(-50%,-50%);border-radius:100%;background:#fff2;border:2px solid #fff;box-shadow:0 0 22px #ffdbf9}
.vip-video-play:before{content:'';position:absolute;top:15px;left:19px;border-left:18px solid #fff;border-top:10px solid transparent;border-bottom:10px solid transparent}
.vip-phone-bottom{position:absolute;bottom:12px;left:10px;right:10px;text-align:center;color:#fff;font:900 12px 'DM Sans',sans-serif;letter-spacing:.1em}
.vip-phone-bottom span{color:#ff437e;font-size:12px}
.vip-message .vip-copy{background:linear-gradient(160deg,#fff5fc,#f0e2ff)}
.vip-finale{padding:36px 23px 35px;background:radial-gradient(ellipse at 40% 10%,#a62c80,#531460 46%,#1c0b37 100%);text-align:center;position:relative;color:#fff}
.vip-finale:before{content:'';position:absolute;inset:8px;pointer-events:none;border:1px solid #ffc1e65a}
.vip-finale p{font:800 16px/1.8 'Zen Maru Gothic',sans-serif;letter-spacing:.03em;margin:0 0 13px}
.vip-finale>strong{font:900 13px/1.5 'Zen Maru Gothic',sans-serif;color:#ffc8e6}
.vip-final-price{display:flex;justify-content:center;align-items:baseline;gap:11px;margin:21px 0 15px;border-top:1px solid #ffc8e64f;padding-top:14px}
.vip-final-price span{font:900 11px 'Zen Maru Gothic',sans-serif}
.vip-final-price b{font:900 31px 'DM Sans',sans-serif;letter-spacing:-.04em}
.vip-final-price small{font:900 12px 'Noto Sans JP',sans-serif}
.vip-final-cta{position:relative;display:block;border:1px solid #fff;border-radius:30px;padding:14px 15px;margin:15px 0;background:linear-gradient(90deg,#e61e77,#ff70b3);font:900 13px 'Zen Maru Gothic',sans-serif;color:#fff;box-shadow:0 0 12px #ff56aa}
.vip-final-pending{display:block;margin-top:15px;padding:12px;border:1px solid #fac7e87a;background:#18082a5e;font:700 10px/1.6 'Noto Sans JP',sans-serif;color:#fff0fa}
.vip-visual-disclaimer{display:block;margin-top:18px;font:600 9px/1.8 'Noto Sans JP',sans-serif;text-align:left;color:#ffdef0ad}
@media (min-width:1100px){
  .ticket-entry-vip .vip-opening{min-height:360px}
  .vip-copy p{font-size:12px}
}
@media (max-width:580px){
  .vip-opening .vip-quantity{top:21px;right:17px}
  .vip-story .vip-opening{min-height:335px;padding:48px 24px 30px}
  .vip-opening h3{font-size:23px}
  .vip-opening p{font-size:11px}
  .vip-copy{padding:24px 23px 31px}
  .vip-copy h4{font-size:25px}
  .vip-copy p{font-size:12px;line-height:2.05}
  .vip-front .vip-photo-scene{height:240px}
  .vip-floating-word{font-size:53px}
  .vip-ribbon-photo{height:220px}
  .vip-product-photo img{max-height:335px}
  .vip-middle-chapter{padding:27px 12px}
  .vip-story .desktop-only{display:none}
}
@media (prefers-reduced-motion:reduce){.vip-product-photo img{transition:none}}

/* PCではチケット一覧の直下に、選んだ券種の詳細が横幅いっぱいで展開。
   DOM上の詳細は各チケットの内部にあるため、独立した別ブロックではない。 */
@media (min-width:800px){
  .ticket-showcase{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:0}
  .ticket-entry{display:contents}
  .ticket-entry .ticket-invite{grid-row:1;border:1px solid var(--accent);border-radius:9px 9px 0 0;box-shadow:0 12px 24px #1805308c;overflow:hidden;min-height:355px}
  .ticket-entry-vip .ticket-invite{grid-column:1}
  .ticket-entry-s .ticket-invite{grid-column:2}
  .ticket-entry-general .ticket-invite{grid-column:3}
  .ticket-entry .ticket-reveal{grid-column:1/-1;grid-row:2;min-width:0;box-shadow:0 14px 42px #17062ea0}
  .ticket-entry.expanded .ticket-invite{box-shadow:0 0 0 2px #ffe4f4,0 0 24px var(--accent);z-index:3}
  .ticket-entry .ticket-reveal-clip{width:100%}
  .vip-story .vip-opening{min-height:340px;padding:50px 7% 35px;background-position:center 55%}
  .vip-story .vip-opening h3{font-size:34px}
  .vip-story .vip-opening p{font-size:14px}
  .vip-story .vip-opening .vip-quantity{right:4%;top:29px}
  .vip-story .vip-benefit{display:grid;grid-template-columns:1.04fr .96fr;min-height:385px}
  .vip-story .vip-benefit .vip-copy{display:flex;flex-direction:column;justify-content:center;padding:35px min(6vw,70px)}
  .vip-story .vip-benefit .vip-copy h4{font-size:clamp(25px,2.8vw,41px);line-height:1.45}
  .vip-story .vip-benefit .vip-copy p{font-size:14px;line-height:2;max-width:490px}
  .vip-story .vip-benefit .vip-step{font-size:12px}
  .vip-story .vip-product-photo{height:100%;min-height:385px}
  .vip-story .vip-product-photo img{width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover}
  .vip-story .vip-front .vip-photo-scene{height:100%;min-height:385px}
  .vip-story .vip-floating-word{left:10%;bottom:12%;font-size:clamp(54px,5.7vw,88px)}
  .vip-story .vip-ribbon-photo{height:100%;min-height:385px}
  .vip-story .vip-cheki-visual{min-height:385px}
  .vip-story .vip-huddle-visual{min-height:385px}
  .vip-story .vip-message .vip-video-mock{min-height:385px;height:100%}
  .vip-story .vip-pass .vip-product-photo,.vip-story .vip-rehearsal .vip-ribbon-photo,.vip-story .vip-huddle .vip-huddle-visual,.vip-story .vip-message .vip-video-mock{order:2}
  .vip-story .vip-pass .vip-copy,.vip-story .vip-rehearsal .vip-copy,.vip-story .vip-huddle .vip-copy,.vip-story .vip-message .vip-copy{order:1}
  .vip-story .vip-middle-chapter{font-size:14px;padding:27px}
  .vip-story .vip-finale{padding:45px 15% 55px}
  .vip-story .vip-finale p{font-size:25px}
  .vip-story .vip-final-price b{font-size:43px}
  .vip-story .vip-final-price span{font-size:13px}
  .vip-story .vip-final-pending{max-width:420px;margin:16px auto}
  .vip-story .vip-visual-disclaimer{text-align:center}
}
/* 全サイト共通の footer セレクタに飲み込まれないよう VIP締め部分を独立 */
.vip-story .vip-finale{
  display:block;
  width:100%;
  min-width:0;
  gap:0;
  text-align:center;
  flex-direction:initial;
  align-items:initial;
  justify-content:initial;
  color:#fff;
  border-top:0;
  box-shadow:none;
}
.vip-story .vip-finale p,.vip-story .vip-finale>strong,.vip-story .vip-finale .vip-final-price,.vip-story .vip-finale .vip-final-pending,.vip-story .vip-finale .vip-visual-disclaimer{position:relative;z-index:1}
