/* ============================================================
   YNV Spin the Wheel — frontend styles
   ============================================================ */
.ynv-sw-wrap *{box-sizing:border-box}
.ynv-sw-wrap{
  font-family:'Montserrat',-apple-system,BlinkMacSystemFont,sans-serif;
  max-width:640px;margin:0 auto;text-align:center;
  background:#fff;border-radius:14px;padding:32px 28px;
  box-shadow:0 6px 30px rgba(0,0,0,.12);
}
.ynv-sw-heading{
  font-family:'Crimson Text',Georgia,serif;
  font-size:28px;font-weight:700;color:var(--ynv-primary,#AD4840);
  margin:0 0 8px;
}
.ynv-sw-sub{font-size:14px;color:#666;line-height:1.6;margin:0 0 14px}

.ynv-sw-validity{
  display:inline-flex;align-items:center;gap:8px;
  background:linear-gradient(180deg, #FFF394 0%, #FFE873 100%);
  color:#1a1a1a;
  font-size:13px;font-weight:800;
  padding:9px 18px;border-radius:6px;
  border:1px solid #E6CC4E;
  letter-spacing:.5px;text-transform:uppercase;
  margin:0 auto 22px;
  box-shadow:0 1px 3px rgba(180,150,30,.18);
}
.ynv-sw-validity-icon{font-size:14px;line-height:1}

.ynv-sw-canvas-wrap{position:relative;width:500px;height:500px;margin:0 auto 24px;max-width:100%}
.ynv-sw-canvas{width:500px;height:500px;display:block;max-width:100%;height:auto}
.ynv-sw-pointer{
  position:absolute;top:-6px;left:50%;transform:translateX(-50%);
  width:0;height:0;border-left:18px solid transparent;border-right:18px solid transparent;
  border-top:32px solid var(--ynv-primary,#AD4840);z-index:3;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));
}
.ynv-sw-hub{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:68px;height:68px;border-radius:50%;
  background:#fff;border:5px solid var(--ynv-primary,#AD4840);z-index:2;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:800;color:var(--ynv-primary,#AD4840);
  letter-spacing:.5px;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
}

.ynv-sw-field{margin-bottom:14px;text-align:left}
.ynv-sw-field input[type=email]{
  width:100%;padding:13px 15px;border:1px solid #d8d8d8;border-radius:8px;
  font-size:15px;font-family:inherit;color:#1a1a1a;
}
.ynv-sw-field input[type=email]:focus{outline:none;border-color:var(--ynv-primary,#AD4840)}
.ynv-sw-field input.ynv-err{border-color:#c0392b}
.ynv-sw-consent{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#777;margin:10px 0 18px;text-align:left;line-height:1.5}
.ynv-sw-consent input{margin-top:2px}

.ynv-sw-btn{
  width:100%;padding:15px;border:none;border-radius:8px;cursor:pointer;
  font-family:inherit;font-size:16px;font-weight:700;letter-spacing:.5px;
  background:var(--ynv-primary,#AD4840);color:#fff;transition:background .2s;
}
.ynv-sw-btn:hover{background:var(--ynv-accent,#C39650)}
.ynv-sw-btn:disabled{opacity:.6;cursor:not-allowed}

.ynv-sw-msg{margin-top:14px;font-size:13px;color:#c0392b;min-height:18px}

.ynv-sw-result{padding:10px 0;text-align:center}
.ynv-sw-result-emoji{font-size:42px;line-height:1;margin-bottom:8px}
.ynv-sw-result-heading{
  font-family:'Crimson Text',Georgia,serif;font-size:26px;font-weight:700;
  color:var(--ynv-primary,#AD4840);margin:0 0 14px;
}
.ynv-sw-result-won{font-size:13px;color:#888;margin:0 0 4px;text-transform:uppercase;letter-spacing:.6px;font-weight:600}
.ynv-sw-result-prize{
  font-family:'Crimson Text',Georgia,serif;
  font-size:22px;font-weight:700;color:#1a1a1a;margin:0 0 12px;line-height:1.3
}
.ynv-sw-result-intro{font-size:14px;color:#555;line-height:1.6;margin:0 0 14px;font-style:italic}
.ynv-sw-result-code{
  display:inline-block;margin:8px 0 14px;padding:10px 22px;
  background:#fdf3ee;border:2px dashed var(--ynv-primary,#AD4840);
  border-radius:8px;font-size:18px;font-weight:700;letter-spacing:1px;
  color:var(--ynv-primary,#AD4840);
}
.ynv-sw-result-claim{font-size:13px;color:#555;margin:14px 0 8px;line-height:1.6}
.ynv-sw-result-validity{font-size:12px;color:#888;margin:0 0 18px;font-weight:600}
.ynv-sw-result-cta{
  display:inline-block;padding:14px 28px;
  background:var(--ynv-primary,#AD4840);color:#fff;
  font-family:'Montserrat',sans-serif;font-size:15px;font-weight:700;letter-spacing:.4px;
  text-decoration:none;border-radius:8px;transition:background .2s;
}
.ynv-sw-result-cta:hover{background:var(--ynv-accent,#C39650);color:#fff}

/* Popup modal */
.ynv-sw-overlay{
  display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);
  z-index:99999;align-items:center;justify-content:center;padding:16px;
}
.ynv-sw-overlay.ynv-open{display:flex}
.ynv-sw-overlay .ynv-sw-wrap{position:relative;animation:ynv-pop .3s ease}
@keyframes ynv-pop{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
.ynv-sw-close{
  position:absolute;top:10px;right:12px;width:30px;height:30px;border:none;
  background:rgba(0,0,0,.08);border-radius:50%;cursor:pointer;font-size:15px;color:#555;
  display:flex;align-items:center;justify-content:center;
}
.ynv-sw-close:hover{background:rgba(0,0,0,.16)}

/* Persistent re-entry tab on the right edge */
.ynv-sw-reopen-tab{
  position:fixed;right:-180px;top:50%;transform:translateY(-50%);
  display:flex;align-items:center;gap:8px;
  background:var(--ynv-primary,#AD4840);color:#fff;
  font-family:'Montserrat',-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:14px;font-weight:700;letter-spacing:.4px;
  padding:14px 18px;border:none;border-radius:10px 0 0 10px;
  cursor:pointer;box-shadow:-3px 4px 14px rgba(0,0,0,.18);
  z-index:99998;transition:right .4s cubic-bezier(.2,.8,.2,1),background .2s;
}
.ynv-sw-reopen-tab.ynv-show{right:0}
.ynv-sw-reopen-tab:hover{background:var(--ynv-accent,#C39650)}
.ynv-sw-reopen-gift{font-size:18px;line-height:1}
.ynv-sw-reopen-text{white-space:nowrap}
@media(max-width:600px){
  .ynv-sw-reopen-tab{font-size:13px;padding:12px 14px}
  .ynv-sw-reopen-text{display:none}
  .ynv-sw-reopen-gift{font-size:20px}
}

@media(max-width:700px){
  .ynv-sw-wrap{padding:26px 18px;max-width:96vw}
  .ynv-sw-canvas-wrap{width:340px;height:340px}
  .ynv-sw-canvas{width:340px;height:340px}
  .ynv-sw-hub{width:54px;height:54px;font-size:12px;border-width:4px}
  .ynv-sw-heading{font-size:24px}
  .ynv-sw-validity{font-size:12px;padding:8px 14px}
}
@media(max-width:380px){
  .ynv-sw-canvas-wrap{width:280px;height:280px}
  .ynv-sw-canvas{width:280px;height:280px}
  .ynv-sw-hub{width:48px;height:48px;font-size:11px}
}
