/* ============================================================
   Cuti Syok-Syok Setahun — pixel-art theme (from OP2 design)
   ============================================================ */
@font-face{font-family:"Poppins";font-weight:400;font-display:swap;src:url(/assets/fonts/poppins-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:500;font-display:swap;src:url(/assets/fonts/poppins-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:600;font-display:swap;src:url(/assets/fonts/poppins-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:700;font-display:swap;src:url(/assets/fonts/poppins-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:800;font-display:swap;src:url(/assets/fonts/poppins-latin-800-normal.woff2) format("woff2")}

:root{
  --pink:#E9336B; --pink-2:#C9306F; --plum:#9A2F80; --purple:#6E2A86; --night:#2B0E3A;
  --lime:#E3FF1F; --lime-2:#A9E800; --cyan:#41F3F3; --cyan-2:#00CFDA;
  --orange:#FFC21A; --orange-2:#FF9500; --red:#F21B1B;
  --ink:#121212; --paper:#fff; --shade:#B8C7D7; --field:#EDF0F4; --muted:#555;
  --shadow-txt:#7E1544;
  --px:4px;               /* pixel border thickness */
  --font:"Poppins",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --head:var(--font);
  /* aliases used by admin.html */
  --forest:var(--night); --forest-2:var(--purple); --serif:var(--head); --sans:var(--font); --line:var(--ink); --radius:0px;
  --sage:var(--field); --gold:var(--lime-2); --gold-2:var(--ink); --cream:#fff; --danger:#B00020; --ok:#2E7D4F; --moss:var(--plum);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font:400 16px/1.6 var(--font);font-variant-ligatures:none;font-synthesis:none;
  background:
    repeating-conic-gradient(rgba(255,255,255,.045) 0 25%, transparent 0 50%) 0 0/36px 36px,
    linear-gradient(180deg,var(--pink) 0,var(--pink-2) 30%,var(--plum) 55%,var(--purple) 75%,var(--purple) 100%);
  background-attachment:scroll}
img{max-width:100%;display:block;image-rendering:auto}
.pix{image-rendering:pixelated}
a{color:inherit}
b,strong{font-family:var(--head);font-weight:700;font-size:.88em}
h1,h2,h3{font-family:var(--head);font-weight:700;line-height:1.1;margin:0 0 .4em}
.wrap{max-width:1180px;margin:0 auto;padding:0 16px}
.center{text-align:center}.small{font-size:.86rem}.muted{color:var(--muted)}
.eyebrow{font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.85rem}
section{padding:64px 0}

/* display type */
.sec-title,.tag,.btn,.win-box,.cyan-bar,.hero-kicker,.price,.stepper,.row .info b,.row .entry,.chances .lbl,.chances .num,.prize b,.prize .r,
.resort .lab b,.step .date,.step .eq,.countdown b,.cd-label,.card h3,.logo b,.total,.status-pill,.chipx,.mbar .c,.eyebrow,.draw-line b{font-family:var(--head)}

/* ---------- pixel primitives ---------- */
/* notched black border + light-blue bevel (bottom/right) */
.px{background:var(--paper);position:relative;
  box-shadow:0 calc(-1*var(--px)) 0 0 var(--ink),0 var(--px) 0 0 var(--ink),calc(-1*var(--px)) 0 0 0 var(--ink),var(--px) 0 0 0 var(--ink),
    inset 0 -10px 0 0 var(--shade),inset -7px 0 0 0 var(--shade);
  filter:drop-shadow(6px 6px 0 rgba(20,0,30,.45))}
.px-flat{box-shadow:0 -3px 0 0 var(--ink),0 3px 0 0 var(--ink),-3px 0 0 0 var(--ink),3px 0 0 0 var(--ink)}

.sec-title{display:flex;align-items:center;justify-content:center;gap:28px;margin:0 0 14px;color:#fff;
  font-size:clamp(1.35rem,3vw,2.15rem);text-transform:uppercase;letter-spacing:0;font-weight:700;text-shadow:3px 3px 0 var(--shadow-txt)}
.sec-title::before,.sec-title::after{content:">>>>>>>>>>";font-size:.7em;letter-spacing:.02em;opacity:.95}
.sec-title::after{content:"<<<<<<<<<<"}
@media(max-width:760px){.sec-title::before,.sec-title::after{display:none}}
.sec-sub{color:#fff;text-align:center;max-width:760px;margin:0 auto 34px;text-shadow:2px 2px 0 rgba(90,10,50,.5)}

.tag{display:inline-block;font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:.82rem;padding:6px 22px;
  background:linear-gradient(180deg,var(--lime) 0 55%,var(--lime-2) 55%);color:var(--ink);
  box-shadow:0 -3px 0 0 var(--ink),0 3px 0 0 var(--ink),-3px 0 0 0 var(--ink),3px 0 0 0 var(--ink),5px 5px 0 0 rgba(20,0,30,.4)}
.tag.cyan{background:linear-gradient(180deg,#8FFBFB 0 50%,var(--cyan) 50%)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;text-decoration:none;
  font:700 .92rem var(--head);letter-spacing:.02em;text-transform:uppercase;padding:13px 28px;color:var(--ink);
  background:linear-gradient(180deg,var(--lime) 0 55%,var(--lime-2) 55%);
  box-shadow:0 -4px 0 0 var(--ink),0 4px 0 0 var(--ink),-4px 0 0 0 var(--ink),4px 0 0 0 var(--ink),7px 7px 0 0 rgba(20,0,30,.45);
  transition:transform .08s}
.btn:hover{transform:translate(-2px,-2px)}
.btn:active{transform:translate(3px,3px)}
.btn:disabled{filter:grayscale(1);opacity:.6;cursor:not-allowed;transform:none}
.btn.cyan,.btn.dark{background:linear-gradient(180deg,#8FFBFB 0 50%,var(--cyan) 50%)}
.btn.ghost{background:#fff}
.btn.sm{padding:8px 16px;font-size:.85rem}
.btn.block{width:100%}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(43,14,58,.92);backdrop-filter:blur(6px);border-bottom:4px solid var(--ink)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:60px;gap:12px}
.logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:#fff;font-weight:700}
.logo b{background:var(--cyan);color:var(--ink);padding:1px 8px;font-weight:700;box-shadow:0 0 0 3px var(--ink);font-size:.95rem}
.logo span{font-size:.9rem;opacity:.9}
.nav-links{display:flex;gap:20px;align-items:center}
.nav-links a{color:#fff;text-decoration:none;font-size:.95rem}
.nav-links a:hover{color:var(--lime)}
.nav-links .btn{color:var(--ink)}
@media(max-width:760px){.nav-links a:not(.btn){display:none}.logo span{display:none}}

/* ---------- hero ---------- */
.hero{padding:40px 0 70px;position:relative;overflow:hidden}
.hero .grid{display:grid;grid-template-columns:1.05fr 1fr;gap:36px;align-items:center}
.hero-logo{width:100%;max-width:600px;margin:0 auto}
.hero-right{text-align:center;color:#fff}
.hero-kicker{font-weight:700;text-transform:uppercase;font-size:clamp(.85rem,1.5vw,1.1rem);letter-spacing:0;text-shadow:3px 3px 0 var(--shadow-txt);margin:0 0 20px}
.win-box{padding:18px 18px 24px;margin:0 6px 26px;color:var(--ink)}
.win-box .l1{display:flex;align-items:baseline;justify-content:center;gap:10px;font-weight:700;text-transform:uppercase;font-size:.85rem;flex-wrap:wrap}
.win-box .big{font-size:clamp(2rem,4.6vw,3.5rem);line-height:1;letter-spacing:0}
.win-box .l2{font-weight:700;text-transform:uppercase;font-size:.78rem;margin-top:10px}
.cyan-bar{background:linear-gradient(180deg,#8FFBFB 0 45%,var(--cyan) 45%);color:var(--ink);font-weight:700;text-transform:uppercase;
  font-size:clamp(.82rem,1.4vw,1.05rem);padding:14px 12px;margin:0 6px 22px;
  box-shadow:0 -4px 0 0 var(--ink),0 4px 0 0 var(--ink),-4px 0 0 0 var(--ink),4px 0 0 0 var(--ink),7px 7px 0 0 rgba(20,0,30,.45)}
.hero-copy{max-width:460px;margin:0 auto 26px;text-shadow:2px 2px 0 rgba(90,10,50,.45)}
.countdown{display:flex;gap:10px;justify-content:center;margin-top:26px}
.countdown div{background:rgba(43,14,58,.75);padding:8px 10px;min-width:64px;box-shadow:0 0 0 3px var(--ink)}
.countdown b{display:block;font-size:1.7rem;line-height:1;color:var(--lime)}
.countdown small{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}
.cd-label{font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;margin-top:22px}
.spark{position:absolute;color:#fff;font-size:22px;line-height:1;pointer-events:none;opacity:.9;text-shadow:0 0 0 #fff}
@media(max-width:900px){.hero .grid{grid-template-columns:1fr}.hero-logo{max-width:440px}}

/* ---------- how to win ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:10px}
.step{padding:46px 20px 34px;text-align:center;font-size:1.08rem;min-height:250px;display:flex;flex-direction:column;justify-content:center}
.step .tag{position:absolute;top:-18px;left:50%;transform:translateX(-50%);white-space:nowrap}
.step .eq{font-size:3rem;font-weight:700;line-height:.9;margin:8px 0}
.step .date{color:var(--red);font-weight:700;font-size:clamp(1.6rem,2.6vw,2.1rem);line-height:1.05;margin-top:10px}
.step .date small{display:block;font-size:.42em;margin-top:8px}
@media(max-width:860px){.steps{grid-template-columns:1fr;gap:44px;max-width:460px;margin-left:auto;margin-right:auto}.step{min-height:0}}

/* ---------- resorts ---------- */
.resorts{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.resort{display:block;text-decoration:none;color:var(--ink);filter:drop-shadow(5px 5px 0 rgba(20,0,30,.45))}
.resort .ph{border:5px solid var(--ink);outline:3px solid #fff;outline-offset:-1px;aspect-ratio:4/5;overflow:hidden;background:#222}
.resort .ph img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.resort:hover .ph img{transform:scale(1.06)}
.resort .lab{margin-top:8px;border:5px solid var(--ink);outline:3px solid #fff;outline-offset:-1px;text-align:center;padding:8px 4px 10px;
  background:linear-gradient(180deg,var(--orange) 0 55%,var(--orange-2) 100%)}
.resort .lab b{display:block;font-weight:700;letter-spacing:0;line-height:1.2;font-size:.78rem;text-transform:uppercase}
.resort .lab span{font-size:.8rem;font-weight:600}
@media(max-width:980px){.resorts{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 4px 16px;gap:14px}
  .resort{flex:0 0 46%;scroll-snap-align:start}}
@media(max-width:520px){.resort{flex-basis:68%}}

/* ---------- shop ---------- */
.rows{max-width:1120px;margin:0 auto}
.row{display:grid;grid-template-columns:118px 1fr;gap:16px;margin-bottom:26px}
.row .ico{width:118px;height:118px;display:grid;place-items:center;padding:10px}
.row .ico img{width:100%;height:100%;object-fit:contain}
.row .bar{display:flex;align-items:center;gap:18px;padding:16px 26px 20px}
.row .info{flex:1;min-width:0}
.row .info b{display:block;font-weight:700;font-size:1.12rem;letter-spacing:.02em;text-transform:uppercase;margin-bottom:2px}
.row .info small{font-size:.95rem}
.row .entry{display:inline-block;background:var(--cyan);font-weight:700;font-size:.62rem;padding:1px 7px;margin-left:8px;box-shadow:0 0 0 2px var(--ink);vertical-align:2px;letter-spacing:.04em}
.price{font-weight:700;font-size:1.6rem;white-space:nowrap}
.stepper{display:flex;align-items:center;gap:12px;flex:none}
.stepper button{width:44px;height:44px;border:0;cursor:pointer;font:700 1.4rem/1 var(--head);color:var(--ink);
  background:linear-gradient(180deg,var(--lime) 0 55%,var(--lime-2) 55%);box-shadow:0 0 0 4px var(--ink),3px 3px 0 4px rgba(0,0,0,.25)}
.stepper button:disabled{filter:grayscale(1);opacity:.45;cursor:not-allowed}
.stepper span{min-width:30px;text-align:center;font-weight:700;font-size:1.5rem}
.boost{text-align:center;margin:8px 0 34px}
@media(max-width:700px){
  .row{grid-template-columns:72px 1fr;gap:12px;margin-bottom:22px}.row .ico{width:72px;height:72px;padding:6px}
  .row .bar{flex-wrap:wrap;gap:8px 14px;padding:12px 14px 16px}.row .info{flex-basis:100%}.row .info b{font-size:1.02rem}
  .price{font-size:1.5rem;margin-right:auto}.stepper button{width:38px;height:38px;font-size:1.3rem}.stepper span{font-size:1.4rem}}

/* ---------- checkout ---------- */
.co-grid{display:grid;grid-template-columns:1fr 440px;gap:40px;align-items:start;max-width:1120px;margin:0 auto}
@media(max-width:980px){.co-grid{grid-template-columns:1fr}}
.card{padding:30px 34px 38px}
.card h3{font-size:1.35rem;letter-spacing:0;text-transform:uppercase;margin:0}
label{display:block;margin:16px 0 6px;font-size:1rem}
label .muted{font-weight:400;font-size:.75rem}
input,textarea,select{width:100%;padding:12px 14px;border:0;background:var(--field);font:400 1rem var(--font);color:var(--ink);border-radius:0}
input::placeholder,textarea::placeholder{color:#8a8f99}
input:focus,textarea:focus{outline:3px solid var(--cyan-2);outline-offset:0}
textarea{resize:vertical;min-height:120px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.row2{grid-template-columns:1fr}.card{padding:24px 20px 32px}}
.check{display:flex;gap:12px;align-items:center;font-weight:400;margin:12px 0}
.check input{appearance:none;-webkit-appearance:none;width:24px;height:24px;flex:none;padding:0;background:var(--field);cursor:pointer;margin:0}
.check input:checked{background:var(--lime) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' shape-rendering='crispEdges'%3E%3Cpath d='M1 4h1v1h1v1h1V5h1V4h1V3h1V2H6v1H5v1H4v1H3V4H2V3H1z' fill='%23121212'/%3E%3C/svg%3E") center/18px no-repeat;box-shadow:0 0 0 2px var(--ink)}
.check a{text-decoration:underline}
.hp{position:absolute;left:-9999px}
.counter-note{font-size:.75rem;margin-top:4px}

.summary{position:sticky;top:84px}
.chances{background:linear-gradient(180deg,#9AFCFC 0 40%,var(--cyan) 40%);padding:20px 26px 22px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:46px;
  box-shadow:0 -4px 0 0 var(--ink),0 4px 0 0 var(--ink),-4px 0 0 0 var(--ink),4px 0 0 0 var(--ink),inset 0 -8px 0 rgba(0,120,140,.35);filter:drop-shadow(6px 6px 0 rgba(20,0,30,.45))}
.chances .lbl{font-weight:700;text-transform:uppercase;letter-spacing:0;font-size:1rem;line-height:1.2;text-align:left}
.chances .num{font-weight:700;font-size:3.2rem;line-height:1;letter-spacing:.04em;transition:transform .2s}
.chances .num.bump{transform:scale(1.2)}
.chances p{margin:6px 0 0;font-size:.85rem;font-weight:600}
.chances.stack{display:block;text-align:center}
.chances.stack .lbl{text-align:center}
.os{padding:44px 30px 32px}
.os .tag{position:absolute;top:-20px;left:50%;transform:translateX(-50%);font-size:1rem;padding:6px 34px;white-space:nowrap}
.line{display:flex;justify-content:space-between;gap:10px;padding:5px 0}
.total{border-top:3px solid var(--ink);margin-top:14px;padding-top:12px;font-weight:700;font-size:1rem}
.pay-note{text-align:center;font-size:.8rem;margin:14px 0 0}
.err{background:#FFE3E3;color:#B00020;padding:10px 12px;margin-top:16px;font-size:.92rem;display:none;box-shadow:0 0 0 3px #B00020}
.err.show{display:block}
.notice{background:var(--lime);color:var(--ink);padding:12px 16px;box-shadow:0 0 0 4px var(--ink)}
.notice a{text-decoration:underline}

/* ---------- prizes ---------- */
.prizes{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:70px;position:relative}
.prize{padding:84px 20px 34px;text-align:center}
.prize .medal{position:absolute;top:-62px;left:50%;transform:translateX(-50%);width:84px}
.prize b{display:block;font-size:1.3rem;font-weight:700;text-transform:uppercase;letter-spacing:0}
.prize .r{font-weight:700;font-size:.85rem;margin:4px 0 12px}
.prize p{margin:0;font-weight:600}
.deco{position:absolute;z-index:3;pointer-events:none}
.deco.money{width:130px;top:-48px;right:-58px;transform:rotate(-8deg)}
.deco.plane{width:120px;bottom:-56px;right:-52px}
.deco.tng{width:104px;top:-86px;right:-34px;transform:rotate(-6deg)}
@media(max-width:900px){.prizes{grid-template-columns:1fr;gap:86px;max-width:440px;margin:80px auto 0}
  .deco.money{right:-10px;width:100px}.deco.plane{right:-6px;width:96px}.deco.tng{right:-6px;width:84px;top:-70px}}
.draw-line{color:#fff;text-align:center;font-weight:700;font-size:1.15rem;text-shadow:2px 2px 0 rgba(60,0,60,.5)}
.draw-line b{font-size:1.35rem}
.prize-win{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:2px dashed #bbb;padding:7px 0;text-align:left}

/* ---------- terms ---------- */
.terms .card{padding:44px 34px 34px;margin-top:40px}
.terms .tag{position:absolute;top:-20px;left:22px;font-size:1rem;padding:6px 24px}
.terms ol{margin:0;padding-left:24px} .terms li{margin:6px 0}

/* ---------- entries chips ---------- */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chipx{font-weight:700;background:var(--cyan);color:var(--ink);padding:6px 10px;box-shadow:0 0 0 3px var(--ink);font-size:.82rem}
.chipx.void{background:#ddd;color:#888;text-decoration:line-through}
.chipx.win{background:var(--lime)}

/* ---------- simple pages ---------- */
.page{min-height:70vh;padding:56px 0}
.page .card{max-width:680px;margin:0 auto}
.page h2{font-size:1.6rem;text-transform:uppercase}
.spinner{width:36px;height:36px;margin:20px auto;background:var(--ink);animation:pxspin 1s steps(4) infinite}
@keyframes pxspin{to{transform:rotate(360deg)}}
.status-pill{display:inline-block;padding:2px 10px;font-weight:700;font-size:.7rem;text-transform:uppercase;box-shadow:0 0 0 2px var(--ink)}
.s-paid{background:var(--lime)}.s-pending{background:var(--orange)}.s-failed,.s-cancelled{background:#FF9C9C}.s-refunded{background:#ddd}
.fade-in{animation:fadein .5s steps(5) both}@keyframes fadein{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- footer ---------- */
footer{background:var(--night);color:#E9DDF2;padding:46px 0 28px;font-size:.95rem;border-top:4px solid var(--ink)}
footer a{color:var(--lime)}
footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}
footer b{color:#fff}
@media(max-width:760px){footer .cols{grid-template-columns:1fr}}

/* ---------- mobile sticky entries bar ---------- */
.mbar{display:none}
@media(max-width:980px){
  .summary{position:static}
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;align-items:center;gap:12px;padding:10px 14px;
    background:var(--cyan);border-top:4px solid var(--ink);transform:translateY(110%);transition:transform .25s steps(4)}
  .mbar.show{transform:none}
  .mbar .c{font-weight:700;font-size:2rem;line-height:1}
  .mbar .t{flex:1;font-size:.82rem;line-height:1.25;font-weight:600}
  body.has-mbar{padding-bottom:76px}}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ============ type scale (Poppins) ============ */
.sec-title{font-size:clamp(26px,3.4vw,40px);font-weight:800;letter-spacing:.01em;text-shadow:3px 3px 0 var(--shadow-txt)}
.sec-title::before,.sec-title::after{font-size:22px;font-weight:700}
.hero-kicker{font-size:clamp(15px,1.6vw,20px);font-weight:800;letter-spacing:.02em}
.win-box .l1{font-size:18px;font-weight:700}.win-box .big{font-size:clamp(40px,5vw,60px);font-weight:800;letter-spacing:-.01em}.win-box .l2{font-size:15px;font-weight:700}
.cyan-bar{font-size:clamp(15px,1.6vw,19px);font-weight:800}
.hero-copy{font-size:17px;font-weight:500}
.tag{font-size:14px;font-weight:800;letter-spacing:.06em}
.btn{font-size:16px;font-weight:800;letter-spacing:.04em}.btn.sm{font-size:13px}
.sec-sub{font-size:17px;font-weight:500}
.step{font-size:17px;font-weight:500}.step .eq{font-size:40px;font-weight:800}.step .date{font-size:clamp(28px,3vw,36px);font-weight:800}.step .date small{font-size:15px;font-weight:700}
.resort .lab b{font-size:14px;font-weight:800;letter-spacing:.03em;line-height:1.25}.resort .lab span{font-size:13px;font-weight:500}
.row .info b{font-size:20px;font-weight:800;letter-spacing:.04em}.row .info small{font-size:15px}.row .entry{font-size:11px;font-weight:800}
.price{font-size:28px;font-weight:800}.stepper span{font-size:22px;font-weight:700}.stepper button{font-size:24px;font-weight:800}
.card h3{font-size:22px;font-weight:800;letter-spacing:.04em}
label{font-size:15px;font-weight:600}
.chances .lbl{font-size:17px;font-weight:800;line-height:1.3}.chances .num{font-size:56px;font-weight:800}
.os .tag,.terms .tag{font-size:15px}
.total{font-size:18px;font-weight:800}
.prize b{font-size:22px;font-weight:800;letter-spacing:.02em}.prize .r{font-size:15px;font-weight:700}.prize p{font-weight:500}
.draw-line{font-size:17px;font-weight:600}.draw-line b{font-size:19px;font-weight:800}
.countdown b{font-size:26px;font-weight:800}.cd-label{font-size:13px;font-weight:700}
.chipx{font-size:15px;font-weight:700}.status-pill{font-size:12px;font-weight:700}
.logo b{font-size:16px;font-weight:800}.mbar .c{font-size:32px;font-weight:800}.eyebrow{font-size:13px;font-weight:700}
b,strong{font-weight:700;font-size:inherit}
.small,.pay-note,.counter-note{font-size:14px}label .muted{font-size:13px;font-weight:400}
.terms li{font-size:16px}
@media(max-width:760px){.row .info b{font-size:16px}.price{font-size:22px}.card h3{font-size:18px}.chances .num{font-size:46px}}

/* ============ KV hero banner ============ */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hero.kv{padding:0 0 46px}
.kv-link{display:block;line-height:0}
.kv-img{width:100%;height:auto}
.kv-mobile{display:none}
@media(max-width:760px){
  .kv-mobile{display:block;text-align:center;padding-top:22px}
  .kv-boxes{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 4px 26px}
  .kv-boxes .px{padding:14px 10px 18px;text-align:center;font-size:14px;line-height:1.35}
  .kv-boxes b{display:block;font-weight:800;text-transform:uppercase;font-size:14px}
  .kv-boxes span{display:block;color:var(--muted);font-size:13px;margin:2px 0 6px}
  .kv-boxes em{font-style:normal;font-weight:700;color:var(--ink)}}

/* ============ add-ons by resort ============ */
.boost-sub{color:#fff;max-width:640px;margin:14px auto 0;font-size:15px;text-shadow:1px 1px 0 rgba(90,10,50,.5)}
.rtabs{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:0 0 22px}
.rtab{position:relative;border:0;cursor:pointer;padding:10px 8px 12px;font-family:var(--font);color:var(--ink);text-align:center;
  background:#fff;box-shadow:0 -3px 0 0 var(--ink),0 3px 0 0 var(--ink),-3px 0 0 0 var(--ink),3px 0 0 0 var(--ink),5px 5px 0 0 rgba(20,0,30,.4)}
.rtab b{display:block;font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.02em}
.rtab span{display:block;font-size:12px;color:var(--muted)}
.rtab.on{background:linear-gradient(180deg,var(--orange) 0 55%,var(--orange-2) 100%)}
.rtab.on span{color:var(--ink)}
.rtab i{position:absolute;top:-12px;right:-10px;font-style:normal;font-weight:800;font-size:12px;min-width:24px;height:24px;line-height:24px;padding:0 6px;
  background:var(--cyan);box-shadow:0 0 0 3px var(--ink)}
.alist{padding:10px 26px 18px}
.aitem{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:2px dashed #d5dbe3}
.aitem:last-child{border-bottom:0}
.aitem img,.aitem .noico{width:44px;height:44px;flex:none;object-fit:contain}
.aitem .noico{background:var(--field) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' shape-rendering='crispEdges'%3E%3Cpath d='M3 1h2v1h1v1h1v2H6v1H5v1H3V6H2V5H1V3h1V2h1z' fill='%23E9336B'/%3E%3Cpath d='M3 3h1v1H3z' fill='%23fff'/%3E%3C/svg%3E") center/20px no-repeat}
.ainfo{flex:1;min-width:0}
.ainfo b{display:block;font-weight:700;font-size:16px;line-height:1.3}
.ainfo small{display:block;font-size:13px;color:var(--muted)}
.aprice{font-weight:800;font-size:20px;white-space:nowrap}
.stepper.sm{gap:8px}.stepper.sm button{width:34px;height:34px;font-size:20px;box-shadow:0 0 0 3px var(--ink)}.stepper.sm span{font-size:18px;min-width:22px}
@media(max-width:860px){.rtabs{display:flex;overflow-x:auto;padding:6px 6px 12px;gap:12px}.rtab{flex:0 0 150px}}
@media(max-width:560px){.alist{padding:6px 14px 12px}.aitem{flex-wrap:wrap;gap:8px 12px}.ainfo{flex-basis:calc(100% - 60px)}
  .aprice{margin-left:56px;margin-right:auto;font-size:18px}}

/* add-to-cart */
.stepper .addcart{width:auto;height:44px;padding:0 18px;font:800 14px var(--font);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.stepper.sm .addcart{height:36px;padding:0 14px;font-size:13px}
.stepper .na{font-size:13px;color:var(--muted)}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,150%);z-index:80;max-width:min(92vw,520px);padding:12px 18px;text-align:center;
  background:var(--lime);color:var(--ink);font-weight:700;font-size:14px;box-shadow:0 0 0 4px var(--ink),6px 6px 0 4px rgba(20,0,30,.4);transition:transform .2s}
.toast.show{transform:translate(-50%,0)}
@media(max-width:980px){.toast{bottom:92px}}
.stepper .addcart,.stepper.sm .addcart{width:auto;min-width:0}
.toast{visibility:hidden}.toast.show{visibility:visible}
.toast{left:16px;right:16px;margin:0 auto;width:fit-content;max-width:520px;transform:translateY(150%)}
.toast.show{transform:none}
