/* Coupon presentation v3. Existing coupon APIs, eligibility and wallet are unchanged. */
.promo-v3{--navy:#172238;--pink:#ff397d;--pink2:#ff74a3;background:linear-gradient(180deg,#fff5f8 0,#fff 760px);padding-bottom:20px}
.promo-v3 .crumbs{margin:0;padding:12px 0 8px;font-size:13px;color:#626981}
.promo-v3 .pv-hero{display:block;min-height:0;overflow:hidden;border-radius:0;background:radial-gradient(ellipse at 15% 25%,#ffe5ed,transparent 50%),linear-gradient(115deg,#fff1f5,#fff9e6 63%,#e7f6ff);isolation:isolate}
.pv-banner{display:none;position:relative;max-width:1800px;margin:0 auto}
.pv-banner>img{width:100%;height:auto;display:block}
.pv-banner-action{position:absolute;left:3%;top:54%;width:30%;height:25%;border-radius:99px}
.pv-banner-action:focus-visible{outline:3px solid #1b2940;outline-offset:5px;background:#ffffff20}
.pv-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.promo-v3 .pv-clouds{opacity:.6;z-index:-1}
.promo-v3 .pv-text{padding:22px 24px 0;max-width:600px;margin:0 auto}
.promo-v3 .pv-text h1{font:700 clamp(34px,8.7vw,47px)/1.2 'Kanit',var(--head);letter-spacing:-.8px;white-space:normal;-webkit-text-stroke:3px white;paint-order:stroke fill;text-shadow:0 5px 12px #de649b20;margin-bottom:8px}
.promo-v3 .pv-text h1 span{display:inline-block;white-space:nowrap}
.promo-v3 .pv-text>p{font-size:14px;color:#62677d;margin-bottom:14px}
.promo-v3 .pv-pill{max-width:100%;min-height:44px;font-size:14px;line-height:1.4;padding:10px 14px 10px 44px;background:linear-gradient(110deg,#ff2e78,#ff649b);box-shadow:0 9px 23px #f83d7c24}
.promo-v3 .pv-pill img{width:48px;left:-4px}
.promo-v3 .pv-art{height:226px;max-width:460px;margin:2px auto 0}
.promo-v3 .pv-girl{height:216px;width:auto;max-width:none;left:27%;bottom:-3px;transform:translateX(-25%);filter:drop-shadow(0 9px 14px #bc668322)}
.promo-v3 .pv-bubble{font-size:19px;right:6%;top:12px;-webkit-text-stroke:4px white;line-height:1.18;transform:rotate(-7deg)}
.promo-v3 .pv-d.truck{display:block;width:150px;right:-8px;bottom:0;z-index:3}
.promo-v3 .pv-d.gift{width:72px;right:18%;bottom:48px;z-index:1}
.promo-v3 .pv-d.ticket{width:48px;right:3%;left:auto;top:86px}
.promo-v3 .pv-d.coins{width:44px;left:3%;right:auto;bottom:18px}
.promo-v3 .pv-d.bags,.promo-v3 .pv-d.h2,.promo-v3 .pv-d.s2{display:none}
.promo-v3 .pv-d.s1{width:28px;left:6%;top:28px}.promo-v3 .pv-d.h1{left:auto;right:3%;bottom:auto;top:162px;width:20px}
.promo-v3 .pv-content{position:relative;z-index:2}
.promo-v3 .pv-benefits{margin:-6px 0 0;padding:18px 14px;border-radius:22px;box-shadow:0 16px 35px #9b55751a;border:1px solid #fff}
.promo-v3 .pv-benefits h2{font-size:22px;gap:7px;margin-bottom:14px;line-height:1.3;flex-wrap:wrap}
.promo-v3 .pv-benefits h2 .star{font-size:30px;line-height:1}
.promo-v3 .pv-bgrid{gap:9px;grid-template-columns:repeat(2,minmax(0,1fr))}
.promo-v3 .pv-b{min-width:0;min-height:98px;display:flex;flex-direction:row;align-items:center;gap:9px;padding:12px 10px;border:1px solid #fff;border-radius:17px;background:linear-gradient(135deg,#fff,var(--bt))}
.promo-v3 .pv-bi{width:39px;height:44px;border-radius:14px;box-shadow:inset 0 2px 2px #fff7,0 6px 12px color-mix(in srgb,var(--bc) 25%,transparent)}
.promo-v3 .pv-bi svg{width:23px;height:23px}
.promo-v3 .pv-bt{min-width:0}.promo-v3 .pv-bt b{font-size:16px;line-height:1.25;margin-bottom:4px}.promo-v3 .pv-bt small{font-size:11px;line-height:1.55;display:block}
.promo-v3 .pv-go{display:none}
.promo-v3 .pv-tabs{margin:0 -2px;padding:24px 2px 8px;gap:10px;scrollbar-width:thin;scrollbar-color:#ffd0e0 transparent;scroll-padding-inline:4px;overscroll-behavior-x:contain}
.promo-v3 .pv-tabs button{min-height:51px;border-radius:16px;padding:11px 15px;gap:8px;box-shadow:0 5px 16px #6d44650d,inset 0 0 0 1px #f7ebf0;font-size:14px;transition:background .15s,box-shadow .15s}
.promo-v3 .pv-tabs button:hover{transform:none;background:#fff0f6}
.promo-v3 .pv-tabs button.on{background:linear-gradient(120deg,#ff2e78,#ff6298);color:white;box-shadow:0 8px 19px #ef4c8a26}
.promo-v3 .pv-tabs .ico{width:28px;height:28px}.promo-v3 .pv-tabs .ci{width:26px;height:26px;filter:drop-shadow(0 2px 2px #a8809922)}
.promo-v3 .pv-sec{margin-top:24px;scroll-margin-top:145px}
.promo-v3 .pv-head{align-items:center;gap:12px;margin-bottom:18px}
.promo-v3 .pv-head>div{min-width:0}.promo-v3 .pv-head h2{font-size:clamp(20px,2.1vw,30px);line-height:1.25;gap:9px;align-items:flex-start}
.promo-v3 .pv-head .pct{flex:none;width:30px;height:30px;line-height:30px;border-radius:11px;transform:rotate(-9deg)}
.promo-v3 .pv-count{font-size:12px;color:#73778c;margin:7px 0 0;padding-left:39px}
.promo-v3 .pv-head>a{font-size:12px;padding:7px 0}
.promo-v3 .pc-grid{gap:18px;align-items:stretch}
/* Ticket cards are shared with the existing member wallet. */
.pc-v3{container-type:inline-size;border-radius:22px;background:linear-gradient(150deg,#fff,var(--bgB));box-shadow:0 8px 23px color-mix(in srgb,var(--acc) 10%,transparent),0 0 0 1px var(--edge);min-width:0;overflow:hidden;transition:box-shadow .15s,transform .15s}
.pc-v3:hover{transform:translateY(-3px);box-shadow:0 14px 29px color-mix(in srgb,var(--acc) 17%,transparent),0 0 0 1px var(--edge)}
.pc-v3 .pc-top{grid-template-columns:minmax(0,39%) minmax(0,1fr);gap:6px;min-height:154px;padding:19px 12px 16px;background:radial-gradient(ellipse at 8% 0,var(--bgA),transparent 80%),linear-gradient(120deg,var(--bgA),var(--bgB))}
.pc-v3 .pc-art{position:relative;min-width:0;align-self:center;isolation:isolate}
.pc-v3 .pc-art::before{content:'';position:absolute;inset:3px -3px;border-radius:50%;background:#fff6;z-index:-1}
.pc-v3 .pc-art img{width:100%;max-width:146px;height:auto;transform:rotate(-4deg);filter:drop-shadow(0 5px 4px #75585b12)}
.pc-v3 .pc-art.photo img{-webkit-mask-image:radial-gradient(ellipse 68% 68% at center,#000 57%,transparent 100%);mask-image:radial-gradient(ellipse 68% 68% at center,#000 57%,transparent 100%)}
.pc-v3 .pc-info h3{font:600 18px/1.28 'Kanit',var(--head);margin-bottom:5px;color:#172238;-webkit-line-clamp:2}
.pc-v3 .pc-amt{display:flex;align-items:baseline;gap:4px;flex-wrap:wrap;line-height:1.05;margin:0}
.pc-v3 .pc-amt .pc-lead{font:700 26px/1.2 'Kanit',var(--head);color:#172238}
.pc-v3 .pc-amt b{font:700 43px/1.08 'Kanit',var(--head);color:var(--num);-webkit-text-stroke:3px white;paint-order:stroke fill;letter-spacing:-1.5px;text-shadow:0 3px 5px #d1728614}
.pc-v3 .pc-min{font-size:12px;color:#5f6477;margin-top:6px;line-height:1.4}
.pc-v3 .pc-extra{font-size:10.5px;color:#62677d;margin-top:5px;line-height:1.5;overflow-wrap:anywhere}
.pc-v3 .pc-heart{top:8px;right:12px;font-size:17px;opacity:.5}
.pc-v3 .pc-hot{left:10px;top:5px;z-index:1;animation:none;font-size:10px;padding:2px 7px}
.pc-v3 .pc-bot{gap:8px;padding:12px;border-top:1.5px dashed var(--edge);min-height:76px;margin-top:auto}
.pc-v3 .pc-bot::before,.pc-v3 .pc-bot::after{width:18px;height:18px;top:-10px;background:#fff}
.pc-v3 .pc-bot::before{left:-10px}.pc-v3 .pc-bot::after{right:-10px}
.pc-v3 .pc-code{min-width:0;flex:1 1 0;min-height:45px;padding:7px 8px;gap:6px;border-radius:12px;color:var(--acc)}
.pc-v3 .pc-code>span{font-size:11px;padding-right:6px}
.pc-v3 .pc-code b{font-size:15px;letter-spacing:-.1px;line-height:1.2}
.pc-v3 .pc-code svg{width:15px;height:15px}
.pc-v3 .pc-get{min-height:45px;padding:10px 15px;font-size:15px;white-space:nowrap;justify-content:center;box-shadow:inset 0 2px 2px #fff3,0 6px 12px color-mix(in srgb,var(--acc) 16%,transparent)}
.pc-v3 .pc-get.done{border:1px solid var(--edge);background:#fff8;color:var(--acc);box-shadow:none}
.pc-v3 .pc-note{position:static;font-size:10px;line-height:1.3;flex:1 0 100%;color:#686e82}
.pc-v3:has(.pc-note) .pc-bot{flex-wrap:wrap}
.pc-v3 .pc-get:focus-visible,.pc-v3 .pc-code:focus-visible{outline:3px solid #303b53;outline-offset:3px}
.promo-v3 .pv-empty{min-height:280px;padding:24px 18px 28px;background:radial-gradient(ellipse at center top,#fff0f6,transparent 70%),#fff;border:1px solid #ffdeea;box-shadow:0 10px 30px #b8789510}
.promo-v3 .pv-empty img{width:114px;margin:0 auto 10px}.promo-v3 .pv-empty h3{font-size:23px;margin-bottom:8px}.promo-v3 .pv-empty p{font-size:13px;max-width:440px;margin:0 auto 16px}
.promo-v3 .pv-cta{margin:34px 0 4px;padding:18px 20px;border:1px solid white;background:linear-gradient(115deg,#fff4d6,#ffedf5 60%,#f1ecff);box-shadow:0 8px 24px #b8799912}
.promo-v3 .pv-cta img{width:82px;margin:-22px 0 -12px}.promo-v3 .pv-cta b{font-size:22px}.promo-v3 .pv-cta span{font-size:12px;line-height:1.6;display:block;margin-top:4px}
@media(min-width:700px){
  .promo-v3 .pv-banner{display:block}
  .promo-v3 .pv-art,.promo-v3 .pv-clouds{display:none}
  .promo-v3 .pv-text{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;margin:-1px;padding:0}
  .promo-v3 .pv-text>p,.promo-v3 .pv-text>.pv-pill{display:none}
  .promo-v3 .pv-benefits{margin-top:-8px;padding:20px;border-radius:25px}
  .promo-v3 .pv-head>a{font-size:14px}
}
@media(min-width:960px){
  .promo-v3 .pv-benefits{margin-top:-17px;padding:22px 20px 20px}
  .promo-v3 .pv-benefits h2{font-size:28px;margin-bottom:16px}
  .promo-v3 .pv-bgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
  .promo-v3 .pv-b{padding:17px 30px 17px 16px;min-height:100px;gap:12px;border-radius:20px}
  .promo-v3 .pv-bi{width:48px;height:53px;border-radius:16px}.promo-v3 .pv-bi svg{width:26px;height:26px}
  .promo-v3 .pv-bt b{font-size:19px}.promo-v3 .pv-bt small{font-size:12px}
  .promo-v3 .pv-go{display:grid;width:20px;height:20px;right:9px;top:50%;transform:translateY(-50%);font-size:15px}
  .promo-v3 .pv-tabs{padding-top:24px}.promo-v3 .pv-sec{margin-top:28px}
}
@media(min-width:1120px){.promo-v3 .pc-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:1200px){.promo-v3 .pv-tabs button{flex:1 1 auto;padding-inline:10px;justify-content:center}}
@media(max-width:420px){.promo-v3 .pv-head{align-items:flex-start;flex-wrap:wrap}.promo-v3 .pv-head>a{margin-left:39px;padding:0}.promo-v3 .pv-bt b{font-size:15px}.promo-v3 .pv-benefits{padding-inline:11px}.promo-v3 .pv-cta .grow{flex-basis:calc(100% - 110px)}.promo-v3 .pv-cta .btn{width:100%}}
@media(max-width:350px){.promo-v3 .pv-bgrid{grid-template-columns:1fr}.promo-v3 .pv-b{min-height:76px;padding:12px 14px}.promo-v3 .pv-bi{width:44px}.promo-v3 .pv-bt b{font-size:16px}.promo-v3 .pv-bt small{font-size:12px}.promo-v3 .pv-benefits h2{font-size:20px}}
@container(max-width:310px){.pc-v3 .pc-code>span{display:none}.pc-v3 .pc-get{padding-inline:12px;font-size:14px}.pc-v3 .pc-amt b{font-size:39px}.pc-v3 .pc-amt .pc-lead{font-size:23px}}
@media(prefers-reduced-motion:reduce){.promo-v3 *,.pc-v3{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* The shop's original reference tickets, with functioning HTML controls.
   Clip only the reference's baked-in controls; offer artwork stays untouched. */
.pc-v3.pc-ref{border-radius:21px;background:var(--bgB);box-shadow:0 5px 18px color-mix(in srgb,var(--acc) 9%,transparent),0 0 0 1px var(--edge)}
.pc-ref.th-pk{--bgB:#fff0f5;--acc:#ff287b;--btn:#ff287b;--edge:#ffc8dc}
.pc-ref.th-yl{--bgB:#fff8de;--acc:#f5a600;--btn:#ffb000;--edge:#ffe29b}
.pc-ref.th-bl{--bgB:#effaff;--acc:#238de4;--btn:#238de4;--edge:#b8e7ff}
.pc-ref .pc-ref-art{position:relative;aspect-ratio:366/110;overflow:hidden;flex:none}
.pc-ref .pc-ref-art img{display:block;width:100%;height:auto;max-width:none;margin:0}
.pc-ref .pc-bot{border:0;min-height:0;padding:8px 14px 10px;gap:10px;flex-wrap:nowrap}
.pc-ref .pc-bot::before,.pc-ref .pc-bot::after{display:none}
.pc-ref .pc-code{padding:7px 8px;min-height:44px;border-radius:12px;gap:5px;color:var(--acc);background:#fff;border:1px dashed var(--acc)}
.pc-ref .pc-code>span{font-size:10px;padding-right:5px}
.pc-ref .pc-code b{font-size:14px;color:var(--acc);letter-spacing:0}
.pc-ref .pc-code svg{width:14px;height:14px}
.pc-ref .pc-get{min-height:44px;padding:9px 13px;font-size:14px;background:linear-gradient(110deg,var(--btn),var(--acc));box-shadow:none}
.pc-ref .pc-get.done{background:#fff9;border:1px solid var(--edge);color:var(--acc)}
.pc-ref .pc-ref-terms{padding:0 14px 12px;display:flex;flex-wrap:wrap;gap:3px 8px;color:#725e72;font-size:10px;line-height:1.6}
.pc-ref-terms b{font-weight:500;color:#6d3955}
.pc-ref-terms small{flex-basis:100%;font-size:10px}
@container(max-width:310px){.pc-ref .pc-code>span{display:none}.pc-ref .pc-bot{padding-inline:10px;gap:7px}.pc-ref .pc-code b{font-size:13px}.pc-ref .pc-get{font-size:12px;padding-inline:10px}}
@media(min-width:960px){.pc-grid:has(>.pc-ref):not(:has(>:nth-child(4))){grid-template-columns:repeat(3,minmax(0,1fr))}}
