/* Popup custom: fundo diferente e layout compacto próximo às bordas */
.swal2-container{z-index:99999 !important;}
.swal2-popup.promo-popup-container{
  /* Fundo sólido preto; usando layout compacto (antes só mobile) em todas as larguras */
  background:#000 !important;
  border:1px solid #1a1f22;
  box-shadow:0 0 0 1px rgba(255,255,255,.05),0 14px 36px -12px rgba(0,0,0,.8),0 6px 18px -6px rgba(0,0,0,.6);
  padding:6px 6px 12px !important;
  border-radius:10px;
  position:relative;
  overflow:hidden;
}
/* Sutil overlay radial para reforçar separação visual do body */
.swal2-popup.promo-popup-container:before{
  content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 25%,var(--popup-overlay-color,#0a3a5c) 0%,transparent 65%);pointer-events:none;mix-blend-mode:screen;opacity:var(--popup-overlay-opacity,.35);
}
/* Ajustes de layout refinados */
.promo-modal-title{margin:4px 0 14px;font-weight:800;text-align:center;line-height:1.15;}
.promo-image{width:100%;height:auto;display:block;margin:0 0 14px;border-radius:12px;object-fit:cover;}
.promo-modal-desc{margin:0 0 18px;font-size:14.5px;line-height:1.5;}
.promo-coupon-box{background:#0f1419;border:1px solid rgba(255,255,255,.06);padding:14px 16px;border-radius:10px;}
.promo-coupon-row{gap:10px;}
@media (max-width:480px){
  .promo-coupon-row{flex-wrap:nowrap;gap:6px;}
  .promo-code{flex:0 0 auto;max-width:90px;overflow:hidden;text-overflow:ellipsis;}
  .promo-copy-btn,.btn-app-open{flex:1 1 70px;min-width:70px;justify-content:center;}
  .promo-coupon-box{padding:6px 6px;}
  .promo-modal-desc{font-size:14px;margin-bottom:12px;}
  /* Padding lateral zero para encostar nas bordas */
  .swal2-popup.promo-popup-container{padding:4px 0 8px !important;border-radius:8px;}
  .promo-image{margin:0 0 10px;border-radius:10px;}
  .promo-modal-title{margin:2px 0 10px;}
  .promo-modal-desc{margin:0 0 8px;}
  .promo-coupon-box{margin-bottom:6px;}
  .promo-bottom-close-btn{width:100%;}
  .promo-copy-btn,.btn-app-open,.promo-bottom-close-btn{min-height:42px;} /* mantém alvo de toque adequado */
}
.promo-modal-title{font-size:clamp(19px,5vw,26px);font-weight:800;line-height:1.15;margin:0 0 10px;letter-spacing:.6px;display:block;position:relative;background:linear-gradient(90deg,var(--accent,#00C853) 0%,var(--accent-soft,#66FFA6) 33%,var(--accent,#00C853) 66%,var(--accent-soft,#66FFA6) 100%);background-size:300% 100%;animation:promoTitleTicker 22s linear infinite;-webkit-background-clip:text;background-clip:text;color:transparent;will-change:background-position;}
@keyframes promoTitleTicker{0%{background-position:0% 0;}100%{background-position:100% 0;}}
@media (prefers-reduced-motion:reduce){.promo-modal-title{animation:none;}}
.promo-modal-desc{margin:0 0 12px;font-size:14.5px;line-height:1.45;color:#d7d7d7;font-weight:400;text-align:center;}
.promo-modal-desc strong{font-weight:600;font-family:'Segoe UI','Helvetica Neue',Arial,sans-serif;letter-spacing:.4px;}
/* Botões padronizados (tema por domínio via variáveis) */
.promo-coupon-box{margin-top:4px;display:flex;flex-direction:column;gap:6px}
.promo-coupon-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.promo-code{background:#1e242a;padding:4px 8px;border-radius:6px;font-size:13px;letter-spacing:.5px;color:var(--accent, #00C853);font-weight:600;user-select:text;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.promo-copy-btn{background:var(--accent,#00C853);color:var(--accent-contrast,#ffffff);border:0;border-radius:6px;padding:6px 12px;font-size:12px;cursor:pointer;transition:.2s ease;display:inline-flex;align-items:center;gap:4px;font-weight:600}
.promo-copy-btn:hover{filter:brightness(1.08)}
.promo-copy-btn:active{transform:translateY(1px)}
.btn-app-open{background:linear-gradient(90deg,var(--accent,#00C853),var(--accent-soft,#66FFA6));color:var(--accent-contrast,#ffffff);border:0;border-radius:6px;padding:6px 12px;font-size:12px;cursor:pointer;transition:.25s ease;display:inline-flex;align-items:center;gap:6px;font-weight:600}
.btn-app-open:hover{filter:brightness(1.1)}
.btn-app-open:active{transform:translateY(1px)}
.promo-bottom-close{display:flex;justify-content:flex-end}
.promo-bottom-close-btn{background:#222;color:#e5e5e5;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px 14px;font-size:12px;cursor:pointer;transition:.2s ease}
.promo-bottom-close-btn:hover{background:#2a2f34}
.promo-bottom-close-btn:active{transform:translateY(1px)}
.promo-howto{font-size:11px;opacity:.85;line-height:1.4}
.promo-coupon-box{background:#0d1215;padding:10px 12px;border:1px solid #232b30;border-radius:10px;display:flex;flex-direction:column;gap:8px;margin:0 0 8px;}
.promo-coupon-row{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;text-align:center;overflow:hidden;}
.promo-coupon-row code{font-size:16px;font-weight:700;color:#fff;letter-spacing:.8px;}
.promo-copy-btn{background:var(--accent,#00C853);color:#fff;border:none;padding:6px 12px;font-size:12.5px;font-weight:700;border-radius:6px;cursor:pointer;box-shadow:0 2px 6px -2px rgba(0,0,0,.6);}
.promo-copy-btn:focus{outline:none;}
.promo-copy-btn:focus-visible{outline:2px solid var(--accent,#00C853);outline-offset:2px;box-shadow:0 0 0 3px rgba(0,200,83,.35),0 2px 6px -2px rgba(0,0,0,.6);} 
.btn-app-open{background:#0d3b66;color:#fff;border:1px solid #1e4e80;padding:6px 12px;font-size:12.5px;font-weight:700;border-radius:6px;cursor:pointer;box-shadow:0 2px 6px -2px rgba(0,0,0,.6);display:inline-flex;align-items:center;gap:4px;}
.btn-app-open:hover{background:#1e4e80;}
.promo-howto{font-size:11.5px;line-height:1.35;color:#a8b3bb;background:#10171b;border:1px dashed #2a363d;padding:6px 8px;border-radius:6px;}
.promo-app-link{display:inline-flex;align-items:center;gap:6px;background:#00C853;color:#fff !important;text-decoration:none;font-size:12.5px;font-weight:600;padding:7px 12px;border-radius:40px;box-shadow:0 4px 14px -4px rgba(0,200,83,.5);transition:background .25s;margin-top:4px;}
.promo-app-link:hover{background:#00B248;}
.promo-image{max-width:100%;border-radius:10px;margin:0 0 12px;display:block;}
.promo-bottom-close{margin:14px 0 4px;display:flex;justify-content:center;}
.promo-bottom-close button{flex:0 1 320px;max-width:100%;background:linear-gradient(135deg,var(--accent,#00C853) 0%,var(--accent-hover,#00B248) 100%);color:#fff;font-weight:700;font-size:14px;padding:12px 18px;border:none;border-radius:10px;cursor:pointer;letter-spacing:.5px;box-shadow:0 4px 14px -4px rgba(0,200,83,.45);} 
.promo-bottom-close button:active{transform:scale(.97);} 
.swal2-close{color:var(--accent,#00C853) !important;background:#0d1215 !important;opacity:1 !important;border:1px solid #253036 !important;width:34px !important;height:34px !important;border-radius:10px !important;box-shadow:0 2px 8px -2px rgba(0,0,0,.7);transition:background .25s,color .25s;position:absolute !important;top:14px !important;right:14px !important;}
@media (max-width:520px){
  .swal2-close{top:10px !important;right:10px !important;width:30px !important;height:30px !important;}
}
@media (max-width:400px){
  .swal2-close{top:8px !important;right:8px !important;}
}
.swal2-close:hover{background:#00C853 !important;color:#fff !important;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
@media (max-width:520px){
  .swal2-popup.promo-popup-container{width:90vw !important;padding:10px 12px 14px;}
  .promo-coupon-row{gap:6px;}
  .promo-code{max-width:110px;}
  .promo-modal-desc{font-size:13.5px;}
  .promo-modal-title{font-size:22px;}

  .promo-bottom-close button{font-size:13px;padding:11px 16px;}
}
/* Evita quebra das letras de 'Cupom' em larguras estreitas e melhora responsividade total da seção */
.promo-coupon-row span:first-child{white-space:nowrap;}
@media (max-width:400px){
  .promo-coupon-row{flex-wrap:wrap;justify-content:center;}
  .promo-coupon-row span:first-child{flex:1 1 100%;text-align:center;margin-bottom:4px;}
  .promo-code{flex:1 1 100%;max-width:100%;display:inline-block;text-align:center;}
  .promo-copy-btn,.btn-app-open{flex:1 1 calc(50% - 6px);min-width:0;}
  .promo-copy-btn,.btn-app-open{margin-top:6px;}
  .promo-howto{font-size:11px;padding:5px 6px;}
  .promo-coupon-box{padding:8px 10px;}
}
/* ================== SEÇÃO CUPOM REFINADA (layout admin-like) ================== */
.promo-coupon-box{background:#050505;border:1px solid #1b2428;border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;box-shadow:0 4px 18px -8px rgba(0,0,0,.8);}
.promo-coupon-header{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:2px;justify-content:center;}
.coupon-label{font-size:13px;font-weight:700;letter-spacing:.9px;color:var(--accent,#00C853);text-transform:uppercase;background:#0c1512;padding:4px 10px;border:1px solid #1d2a26;border-radius:6px;}
.coupon-badge{font-size:11px;font-weight:600;letter-spacing:.6px;color:#fff;background:linear-gradient(90deg,var(--accent,#00C853),var(--accent-hover,#00B248));padding:4px 10px;border-radius:20px;box-shadow:0 2px 8px -3px rgba(0,200,83,.5);}
.promo-coupon-row{display:flex;align-items:center;gap:10px;justify-content:center;flex-wrap:wrap;}
.promo-code{background:#111b17;border:1px solid #22332d;padding:6px 16px;font-size:14px;letter-spacing:.9px;border-radius:46px;color:var(--accent,#00C853);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;flex:1 1 100%;text-align:center;transition:background .35s,color .35s,box-shadow .35s;}
.promo-code.copied{background:linear-gradient(145deg,var(--accent,#00C853),var(--accent-soft,#66FFA6));color:#041208;box-shadow:0 0 0 3px rgba(0,200,83,.35);}
.promo-copy-btn{background:var(--accent,#00C853);color:var(--accent-contrast,#fff);border:none;padding:8px 15px;font-size:13px;font-weight:700;border-radius:10px;letter-spacing:.4px;box-shadow:0 4px 14px -6px rgba(0,200,83,.55);transition:background .25s,transform .15s,box-shadow .25s;flex:1 1 48%;justify-content:center;}
.promo-copy-btn:hover{background:var(--accent-hover,#00B248);box-shadow:0 6px 18px -6px rgba(0,200,83,.6);} 
.promo-copy-btn:active{transform:translateY(2px);} 
.promo-copy-btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(0,200,83,.45),0 4px 14px -6px rgba(0,200,83,.6);} 
.btn-app-open{background:linear-gradient(135deg,#0e426f 0%, #156099 70%);border:none !important;color:#fff;padding:8px 16px;font-size:13px;font-weight:700;border-radius:10px;letter-spacing:.4px;display:inline-flex;align-items:center;gap:6px;box-shadow:0 4px 14px -6px rgba(20,96,153,.55);transition:background .25s,transform .15s,box-shadow .25s;flex:1 1 48%;justify-content:center;}
.btn-app-open:hover{background:linear-gradient(135deg,#156099 0%, #1d74b4 70%);box-shadow:0 6px 20px -8px rgba(20,96,153,.6);} 
.btn-app-open:active{transform:translateY(2px);} 
.btn-app-open:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(29,116,180,.55),0 4px 14px -6px rgba(20,96,153,.6);} 
.promo-howto{background:#0b1210;border:1px dashed #253732;color:#c9d3d6;font-size:11.5px;padding:7px 10px;border-radius:10px;line-height:1.4;}
@media (max-width:520px){
  .promo-code{padding:6px 14px;font-size:13px;max-width:130px;}
  .promo-copy-btn,.btn-app-open{padding:7px 12px;font-size:12.5px;}
  .promo-coupon-row{gap:8px;}
}
@media (max-width:400px){
  .promo-coupon-row{flex-wrap:wrap;}
  .promo-code{flex:1 1 100%;border-radius:38px;max-width:100%;text-align:center;}
  .promo-copy-btn,.btn-app-open{flex:1 1 48%;}
  .promo-coupon-header{justify-content:center;}
}

/* Feedback para ações de copiar e abrir app */
.promo-action-feedback{background:#101b17;border:1px solid #1f2e28;color:#cfeede;font-size:12px;line-height:1.3;padding:6px 10px;border-radius:8px;margin-top:4px;font-weight:600;letter-spacing:.4px;opacity:0;transform:translateY(6px);transition:opacity .35s ease,transform .35s ease;}
.promo-action-feedback.visible{opacity:1;transform:translateY(0);}
.promo-action-feedback.success{border-color:var(--accent,#00C853);box-shadow:0 0 0 2px rgba(0,200,83,.25);}
.promo-action-feedback.error{border-color:#b00020;color:#ffd7d7;box-shadow:0 0 0 2px rgba(176,0,32,.25);}
