/* =========================================================
   ALBARKA Lucky Wheel - pop-up + "Spin & win" tab
   Uses the site tokens (green / gold / cream). Loaded only when a visitor can still spin or holds a prize.
   ========================================================= */
html.wof-lock{overflow:hidden}

/* ---------- the floating tab that reopens the wheel ---------- */
.wof-tab{
  position:fixed;inset-inline-start:16px;bottom:20px;z-index:47;
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  padding:11px 18px 11px 14px;border-radius:999px;
  background:linear-gradient(180deg,var(--green-600),var(--green-900));
  color:#f6e7cb;font-weight:700;font-size:.9rem;line-height:1;
  border:1px solid rgba(246,231,203,.4);
  box-shadow:0 12px 28px -12px rgba(10,46,35,.75),0 0 0 0 rgba(180,114,12,.5);
  animation:wof-pulse 2.8s ease-out infinite;
}
.wof-tab:hover{transform:translateY(-2px)}
.wof-tab:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.wof-tab .wof-tab-ic{font-size:1.15rem;line-height:1}
@keyframes wof-pulse{
  0%{box-shadow:0 12px 28px -12px rgba(10,46,35,.75),0 0 0 0 rgba(180,114,12,.55)}
  70%,100%{box-shadow:0 12px 28px -12px rgba(10,46,35,.75),0 0 0 14px rgba(180,114,12,0)}
}
@media (max-width:860px){ .wof-tab{bottom:78px} }

/* ---------- the pop-up ---------- */
.wof{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:12px}
.wof[hidden]{display:none !important}
.wof-backdrop{position:absolute;inset:0;background:rgba(6,26,20,.72);backdrop-filter:blur(3px);animation:wof-fade .3s ease both}

.wof-card{
  position:relative;width:min(100%,440px);max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);
  overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;
  padding:26px 22px 18px;text-align:center;color:#f6e7cb;border-radius:28px;
  background:
    radial-gradient(130% 70% at 50% -10%,rgba(246,231,203,.16),transparent 60%),
    radial-gradient(rgba(246,231,203,.07) 1.2px,transparent 1.4px) 0 0/20px 20px,
    linear-gradient(180deg,#15553F 0%,#0E4234 48%,#0A2E23 100%);
  border:1px solid rgba(231,190,105,.55);
  box-shadow:0 40px 90px -30px rgba(0,0,0,.8),inset 0 0 0 1px rgba(255,255,255,.05);
  animation:wof-in .5s cubic-bezier(.2,.9,.3,1.15) both;
  outline:0;
}
@keyframes wof-in{from{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:none}}
@keyframes wof-fade{from{opacity:0}to{opacity:1}}

.wof-x{
  position:absolute;top:12px;inset-inline-end:12px;z-index:5;width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;font-size:1.5rem;line-height:1;cursor:pointer;
  background:rgba(255,255,255,.1);color:#f6e7cb;border:1px solid rgba(246,231,203,.3);
}
.wof-x:hover{background:rgba(255,255,255,.2)}
.wof-x:focus-visible,.wof-btn:focus-visible,.wof-skip:focus-visible,.wof-copy:focus-visible{outline:3px solid #f0c66a;outline-offset:2px}

.wof-kicker{
  display:inline-block;margin:0 0 8px;padding:5px 14px;border-radius:999px;
  font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:#f0c66a;background:rgba(240,198,106,.12);border:1px solid rgba(240,198,106,.35);
}
.wof-card h2{
  font-size:clamp(1.55rem,6.2vw,2rem);color:#fff;margin:0 0 6px;text-wrap:balance;
}
.wof-sub{color:rgba(246,231,203,.82);font-size:.92rem;margin:0 auto;max-width:32ch}

/* ---------- the wheel ---------- */
.wof-stage{position:relative;width:min(78vw,340px);aspect-ratio:1;margin:18px auto 14px}
@supports (height:1dvh){ .wof-stage{width:min(78vw,340px,max(200px,calc(100dvh - 350px)))} }
.wof-rim{
  position:absolute;inset:0;border-radius:50%;
  background:conic-gradient(from 20deg,#f8e3a3,#c58a1e,#f8e3a3,#a86a08,#f8e3a3,#c58a1e,#f8e3a3,#a86a08,#f8e3a3);
  box-shadow:0 18px 40px -14px rgba(0,0,0,.75),inset 0 0 0 2px rgba(255,255,255,.35),inset 0 0 0 5px rgba(120,70,4,.45);
}
.wof-rim b{position:absolute;inset:0;transform:rotate(var(--a))}
.wof-rim i{
  position:absolute;top:2.1%;left:50%;width:3.3%;aspect-ratio:1;transform:translateX(-50%);border-radius:50%;
  background:#fff6d2;box-shadow:0 0 5px 1px rgba(255,238,170,.95),inset 0 0 0 1px rgba(160,100,10,.5);
}
.wof-rim b:nth-child(odd) i{animation:wof-blink 1.2s steps(1) infinite}
.wof-rim b:nth-child(even) i{animation:wof-blink 1.2s steps(1) infinite .6s}
@keyframes wof-blink{0%{opacity:1}50%{opacity:.35}100%{opacity:1}}

.wof-disc{
  position:absolute;inset:7.5%;border-radius:50%;overflow:hidden;background:#0A2E23;
  box-shadow:0 0 0 3px #7a4d07,inset 0 0 22px rgba(0,0,0,.45);
}
.wof-disc canvas{display:block;width:100%;height:100%;transform-origin:50% 50%;will-change:transform}
.wof-hub{
  position:absolute;left:50%;top:50%;width:21%;aspect-ratio:1;transform:translate(-50%,-50%);z-index:2;border-radius:50%;
  background:radial-gradient(circle at 35% 28%,#fff7dc,#e6b85e 55%,#a86a08);
  box-shadow:0 3px 10px rgba(0,0,0,.5),inset 0 0 0 3px #fff2c4,inset 0 0 0 5px #b4720c;
  display:grid;place-items:center;
}
.wof-hub img{width:66%;height:66%;object-fit:cover;border-radius:50%}
.wof-pointer{position:absolute;top:-4.5%;left:50%;width:12%;margin-left:-6%;z-index:4;transform-origin:50% 22%;filter:drop-shadow(0 4px 4px rgba(0,0,0,.55))}
.wof-pointer svg{display:block;width:100%;height:auto}

.wof-btn{
  display:block;width:100%;min-height:52px;padding:14px 20px;border:0;border-radius:999px;cursor:pointer;
  font-family:inherit;font-weight:800;font-size:1.02rem;letter-spacing:.02em;text-decoration:none;text-align:center;
  color:#2b1a02;background:linear-gradient(180deg,#f3cd7b,#d9993a 55%,#b4720c);
  box-shadow:0 14px 26px -12px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.55);
  transition:transform .15s ease,filter .15s ease;
}
.wof-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.wof-btn:disabled{filter:grayscale(.3) brightness(.85);cursor:progress;transform:none}
.wof-skip{
  display:inline-block;margin:10px 0 0;padding:8px 12px;background:none;border:0;cursor:pointer;
  color:rgba(246,231,203,.75);font-size:.86rem;text-decoration:underline;text-underline-offset:3px;
}
.wof-skip:hover{color:#fff}
.wof-fine{margin:6px auto 0;max-width:34ch;font-size:.72rem;line-height:1.5;color:rgba(246,231,203,.6)}
.wof-err{margin:0 0 10px;padding:9px 12px;border-radius:12px;font-size:.86rem;background:rgba(200,50,40,.2);border:1px solid rgba(255,140,120,.5);color:#ffd9d2}
.wof-err.is-good{background:rgba(240,198,106,.16);border-color:rgba(240,198,106,.5);color:#f8e3a3}

/* ---------- result screen ---------- */
.wof-screen[hidden]{display:none !important}
.wof-result{padding-top:6px;animation:wof-fade .45s ease both}
.wof-badge{
  --c:#f0c66a;position:relative;width:96px;height:96px;margin:6px auto 12px;border-radius:50%;display:grid;place-items:center;font-size:2.7rem;
  background:radial-gradient(circle at 35% 30%,#fff7dc,var(--c));
  box-shadow:0 0 0 5px rgba(255,255,255,.14),0 0 0 6px rgba(240,198,106,.6),0 18px 40px -12px rgba(0,0,0,.7);
  animation:wof-pop .6s cubic-bezier(.2,1.4,.4,1) both;
}
.wof-badge.is-plain{background:rgba(255,255,255,.1);box-shadow:0 0 0 1px rgba(246,231,203,.3)}
@keyframes wof-pop{from{transform:scale(.3) rotate(-25deg);opacity:0}to{transform:none;opacity:1}}
.wof-prize-name{font-family:"Bodoni Moda","Alexandria",serif;font-style:italic;font-weight:600;font-size:clamp(1.5rem,6vw,1.9rem);color:#f8e3a3;line-height:1.15;margin:2px 0 8px;text-wrap:balance}
.wof-prize-desc{color:rgba(246,231,203,.88);font-size:.94rem;margin:0 auto 14px;max-width:34ch}
.wof-code{
  margin:4px 0 6px;padding:12px 12px 12px 16px;border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:rgba(0,0,0,.22);border:2px dashed rgba(240,198,106,.7);text-align:start;
}
.wof-code small{display:block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(246,231,203,.65)}
.wof-code strong{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.45rem;letter-spacing:.14em;color:#fff;direction:ltr;text-align:start}
.wof-copy{
  flex:none;min-height:42px;padding:8px 16px;border-radius:999px;cursor:pointer;font-family:inherit;font-weight:700;font-size:.85rem;
  color:#2b1a02;background:#f3cd7b;border:0;
}
.wof-copy.is-done{background:#9be2b6}
.wof-valid{font-size:.8rem;color:#f0c66a;margin:0 0 6px}
.wof-how{font-size:.82rem;color:rgba(246,231,203,.75);margin:0 auto 16px;max-width:36ch}
.wof-actions{display:grid;gap:4px}

.wof-confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:6}

/* ---------- cart / checkout: prize code ---------- */
.wof-coupon{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}
.wof-coupon-row{display:flex;gap:8px;margin-top:4px}
.wof-coupon-row input{flex:1;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:12px;font:inherit;text-transform:uppercase;letter-spacing:.08em;background:#fff}
.wof-coupon-on{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;font-weight:600;color:var(--green-700)}
.wof-coupon-on + .fine{margin-top:4px}
.wof-code-chip{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.1em;font-size:.82rem;padding:3px 10px;border-radius:999px;background:var(--gold-soft);color:var(--gold-dark);direction:ltr}
.wof-coupon-hint{margin-bottom:8px;padding:9px 12px;border-radius:12px;background:var(--gold-soft);color:var(--gold-dark);font-size:.88rem}
.wof-coupon form{margin:6px 0 0}
.wof-discount-row b,.wof-discount-row span{color:var(--gold-dark)}
.wof-used{margin-top:8px}

@media (max-width:420px){
  .wof-card{padding:22px 16px 14px;border-radius:24px}
  .wof-code strong{font-size:1.2rem}
}
@media (max-height:640px){
  .wof-sub{display:none}
  .wof-stage{margin:12px auto 10px}
}
.wof-tab[hidden]{display:none !important}
.wof-sub{text-wrap:balance}
@supports (height:1dvh){ .wof-stage{width:min(78vw,340px,max(200px,calc(100dvh - 395px)))} }
/* the site stylesheet pads every <section>; the wheel's screens must not inherit that */
.wof-card .wof-screen{padding:0;margin:0}
.wof-coupon{margin-bottom:14px}
