/* Smelloff checkout + cart — extracted from PDP. Do not restyle checkout math. */
  .cart-overlay{
    position:fixed;inset:0;background:rgba(8,8,8,.7);
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
    z-index:190;display:none;
  }
  .cart-overlay.active{display:block}
  .cart-drawer{
    position:absolute;top:0;right:0;bottom:0;
    width:100%;max-width:400px;
    background:#111;border-left:1px solid rgba(255,255,255,.08);
    display:flex;flex-direction:column;
    transform:translateX(100%);transition:transform .3s ease;
  }
  .cart-overlay.active .cart-drawer{transform:translateX(0)}
  .cart-head{
    display:flex;justify-content:space-between;align-items:center;
    padding:22px 24px;border-bottom:1px solid var(--rule);
  }
  .cart-head h3{
    font-family:var(--display);font-weight:900;font-size:22px;
    letter-spacing:-.01em;color:var(--text);margin:0;
  }
  .cart-close{
    width:32px;height:32px;background:transparent;border:1px solid var(--rule);
    color:var(--text);cursor:pointer;font-size:18px;
    display:flex;align-items:center;justify-content:center;
  }
  .cart-body{flex:1;overflow-y:auto;padding:24px}
  .cart-empty{
    text-align:center;padding:48px 0;
  }
  .cart-empty-msg{
    font-family:var(--mono);font-size:13px;letter-spacing:.1em;
    color:var(--muted);text-transform:uppercase;margin:0 0 20px;
  }
  .cart-empty-cta{
    display:inline-block;background:var(--acid);color:var(--ink);
    border:none;border-radius:var(--sq-pill,999px);cursor:pointer;
    padding:13px 26px;min-height:44px;
    font-family:var(--mono);font-size:13px;font-weight:700;
    letter-spacing:.1em;text-transform:uppercase;
    transition:transform .18s cubic-bezier(.22,1,.36,1),background .18s ease;
  }
  .cart-empty-cta:hover{background:var(--acid-hi);transform:translateY(-2px)}
  .cart-empty-cta:active{transform:translateY(0)}
  .cart-line{display:flex;gap:16px;align-items:flex-start}
  .cart-line-img{
    width:64px;height:64px;flex-shrink:0;border-radius:3px;
    background:#080808;border:1px solid var(--rule);object-fit:contain;padding:4px;
  }
  .cart-line-info{flex:1;min-width:0}
  .cart-line-name{
    font-family:var(--display);font-weight:900;font-size:16px;
    color:var(--text);margin-bottom:4px;line-height:1.15;
  }
  .cart-line-unit{
    font-family:var(--mono);font-size:12px;letter-spacing:.1em;
    color:var(--muted);margin-bottom:12px;
  }
  .cart-stepper{display:flex;align-items:center;border:1px solid var(--rule);width:max-content;border-radius:3px;overflow:hidden}
  .cart-stepper button{
    width:32px;height:32px;background:transparent;border:none;color:var(--text);
    font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;
  }
  .cart-stepper button:hover{background:rgba(255,255,255,.06)}
  .cart-stepper .qty-val{
    min-width:40px;text-align:center;
    font-family:var(--mono);font-size:13px;color:var(--text);
    border-left:1px solid var(--rule);border-right:1px solid var(--rule);
    line-height:32px;
  }
  .cart-remove{
    background:none;border:none;color:var(--muted);cursor:pointer;
    font-family:var(--mono);font-size:11px;letter-spacing:.1em;
    text-transform:uppercase;text-decoration:underline;padding:0;margin-top:12px;
  }
  .cart-remove:hover{color:var(--text)}
  .cart-foot{border-top:1px solid var(--rule);padding:20px 24px}
  .cart-upsell{
    font-family:var(--body);font-size:14px;line-height:1.5;
    color:var(--acid);border:1px dashed rgba(184,255,87,.35);
    padding:10px 12px;margin-bottom:14px;
  }
  .cart-subtotal{
    display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;
    font-family:var(--mono);font-size:13px;letter-spacing:.1em;
    text-transform:uppercase;color:var(--muted);
  }
  .cart-subtotal .cart-sub-amt{font-size:22px;color:var(--acid);font-weight:500;font-family:var(--display)}
  .cart-ship-note{
    font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;
    color:var(--muted);margin-bottom:16px;
  }
  .cart-checkout{
    width:100%;background:var(--acid);color:var(--ink);border:none;
    padding:15px;font-family:var(--mono);font-size:13px;
    font-weight:700;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;border-radius:2px;
  }
  .cart-checkout:disabled{opacity:.4;cursor:not-allowed}

  .overlay{
    position:fixed;inset:0;
    background:rgba(8,8,8,.85);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    z-index:10000;
    display:none;
    align-items:flex-start;
    justify-content:center;
    overflow-y:auto;
    padding:40px 20px;
  }
  .overlay.active{display:flex}
  .overlay-panel{
    background:#111;
    color:var(--text);
    width:100%;
    max-width:520px;
    padding:40px 32px 32px;
    position:relative;
    border-radius:4px;
    border:1px solid rgba(255,255,255,.08);
    animation:slideUp .3s ease;
  }
  @keyframes slideUp{
    from{transform:translateY(20px);opacity:0}
    to{transform:translateY(0);opacity:1}
  }
  .overlay-close{
    position:absolute;top:16px;right:16px;
    width:32px;height:32px;
    background:transparent;
    border:1px solid var(--rule);
    color:var(--text);
    cursor:pointer;
    font-size:18px;
    display:flex;align-items:center;justify-content:center;
  }
  .overlay-tag{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--muted);
    margin-bottom:8px;
  }
  .overlay h3{
    font-family:var(--display);
    font-weight:900;
    font-size:36px;
    letter-spacing:-.02em;
    line-height:1;
    margin-bottom:8px;
    color:var(--text);
  }
  .checkout-trust{
    font-family:var(--mono);
    font-size:11.5px;
    letter-spacing:.1em;
    color:var(--muted);
    margin-bottom:16px;
  }
  .summary-card{
    border-top:1px solid var(--rule);
    border-bottom:1px solid var(--rule);
    margin-bottom:24px;
  }
  .overlay .summary{
    font-family:var(--mono);
    font-size:13px;
    letter-spacing:.1em;
    color:var(--muted);
    padding:10px 0;
    display:flex;justify-content:space-between;
  }
  .overlay .summary + .summary{border-top:1px dashed rgba(255,255,255,.08)}
  .overlay .summary.total{color:var(--text)}
  .overlay .summary .amt{color:var(--acid);font-weight:500}
  /* The COD surcharge is the one figure in this card that costs the buyer more,
     so it does not get the acid treatment the free/discount rows get. */
  .overlay .summary .amt.fee{color:var(--text-2)}
  .overlay label{
    display:block;
    font-family:var(--mono);
    font-size:11.5px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--muted);
    margin-bottom:6px;
    margin-top:14px;
  }
  .overlay label .lbl-optional{
    text-transform:none;
    letter-spacing:.05em;
    opacity:.7;
  }
  .overlay input,.overlay select,.overlay textarea{
    width:100%;
    padding:12px 14px;
    font-family:var(--body);
    font-size:16px; /* 16px minimum — anything smaller triggers iOS auto-zoom on focus */
    background:rgba(244,241,234,.05);
    border:1px solid var(--rule);
    color:var(--text);
    outline:none;
    transition:border-color .15s;
    resize:vertical;
  }
  .overlay input:focus,.overlay select:focus,.overlay textarea:focus{
    border-color:var(--acid);
  }
  .overlay input::placeholder,.overlay textarea::placeholder{color:var(--muted)}
  .overlay input.flash-acid,.overlay textarea.flash-acid{border-color:var(--acid);box-shadow:0 0 0 1px var(--acid)}
  .overlay .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .overlay .row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
  .delivery-estimate{
    display:none;
    align-items:center;gap:8px;
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:.08em;
    color:var(--acid);
    margin-top:10px;
  }
  .delivery-estimate.show{display:flex}
  .delivery-estimate svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}
  .overlay .pay-toggle{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-top:16px;
    margin-bottom:8px;
  }
  .overlay .pay-opt{
    padding:16px 12px;
    border:1px solid var(--rule);
    cursor:pointer;
    text-align:center;
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:.14em;
    text-transform:uppercase;
    transition:all .2s;
    color:var(--muted);
  }
  .overlay .pay-opt.active{
    border-color:var(--acid);
    background:var(--acid);
    color:var(--ink);
  }
  .pay-panel{
    border:1px dashed var(--rule);
    padding:16px;
    margin-top:10px;
  }
  .upi-panel-title{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--muted);
    display:block;
    margin-bottom:12px;
  }
  .upi-inline-row{
    display:flex;align-items:baseline;gap:10px;
    padding:6px 0;
    font-size:14px;
  }
  .upi-inline-lbl{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--muted);
    width:64px;flex-shrink:0;
  }
  .upi-inline-val{
    font-family:var(--mono);
    font-size:13px;
    letter-spacing:.05em;
  }
  .upi-inline-val.acid{color:var(--acid);font-weight:500}
  .upi-copy{
    margin-left:auto;
    background:transparent;
    color:var(--acid);
    border:1px solid rgba(184,255,87,.35);
    padding:4px 10px;
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.1em;
    text-transform:uppercase;
    cursor:pointer;
    transition:all .2s;
  }
  .upi-copy:hover,.upi-copy.copied{background:var(--acid);color:var(--ink)}
  /* 1-Click UPI Deep Linking */
  .upi-apps-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-bottom: 12px;
  }
  @media (max-width: 480px) {
    .upi-apps-grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  .upi-app-btn {
    background: rgba(255,255,255,.04);
    border: 1px solid var(--rule);
    color: var(--text);
    padding: 10px 6px;
    border-radius: 6px;
    font-family: var(--mono);
    font-size: 11px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    cursor: pointer;
    transition: all .15s ease;
  }
  .upi-app-btn:hover, .upi-app-btn.active {
    border-color: var(--acid);
    background: rgba(184,255,87,.12);
    color: var(--acid);
  }
  .upi-app-launch-head {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--acid);
    margin-bottom: 10px;
    font-weight: 600;
  }
  .upi-pay-lead{
    color:var(--muted);
    font-size:13px;
    line-height:1.5;
    margin-bottom:12px;
  }
  .upi-steps{
    margin:0 0 14px;
    padding:0 0 0 18px;
    color:var(--text);
    font-size:13px;
    line-height:1.55;
  }
  .upi-steps li{margin:0 0 6px}
  .upi-qr-caption{
    margin:8px 0 0;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.04em;
    color:var(--muted);
  }
  .upi-payee-note{
    margin:10px 0 0;
    font-size:12px;
    color:var(--muted);
    line-height:1.45;
  }
  .upi-copy-primary{margin-top:14px}
  .upi-apps-optional{
    margin-top:14px;
    border:1px solid rgba(255,255,255,.1);
    border-radius:6px;
    padding:8px 12px;
    background:rgba(255,255,255,.02);
  }
  .upi-apps-optional summary{
    cursor:pointer;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted);
    padding:4px 0;
  }
  .upi-apps-optional[open] summary{color:var(--acid);margin-bottom:8px}
  .upi-app-hint{
    font-size:12px;
    color:var(--muted);
    line-height:1.45;
    margin:0 0 10px;
  }
  #upiIdShow, #upiInlineId{
    user-select:all;
    -webkit-user-select:all;
  }
  .upi-launch-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-bottom: 16px;
  }
  @media (max-width: 420px) {
    .upi-launch-grid {
      grid-template-columns: 1fr;
    }
  }
  .upi-launch-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 14px;
    border-radius: 6px;
    font-family: var(--mono);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    transition: all .15s ease;
    border: 1px solid var(--rule);
    background: #0f172a;
    color: #fff;
  }
  .upi-launch-btn.gpay { border-color: #4285f4; color: #60a5fa; }
  .upi-launch-btn.phonepe { border-color: #5f259f; color: #c084fc; }
  .upi-launch-btn.paytm { border-color: #00b9f1; color: #38bdf8; }
  .upi-launch-btn.generic { border-color: var(--acid); color: var(--acid); background: rgba(184,255,87,.08); }
  .upi-launch-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,.3);
  }
  .pay-help{
    font-size:13px;
    color:var(--muted);
    line-height:1.5;
    margin-top:12px;
  }
  .wa-btn{
    display:inline-block;
    margin-top:10px;
    padding:10px 14px;
    background:rgba(37,211,102,.1);
    border:1px solid rgba(37,211,102,.3);
    color:#25d366;
    font-family:var(--mono);
    font-size:11px;letter-spacing:.1em;
    text-transform:uppercase;text-decoration:none;
  }
  .pay-cod{
    font-family:var(--display);
    font-weight:900;
    font-size:18px;
    color:var(--text);
  }
  .pay-note-cod{
    font-size:12px;
    color:var(--muted);
    margin-top:4px;
  }
  .checkout-reassure{
    font-size:12px;
    color:var(--muted);
    margin-top:14px;
  }
  .overlay .submit-btn{
    width:100%;
    padding:18px;
    background:var(--acid);
    color:var(--ink);
    border:none;
    font-family:var(--mono);
    font-size:13px;
    letter-spacing:.2em;
    text-transform:uppercase;
    cursor:pointer;
    margin-top:16px;
    transition:background .2s;
    font-weight:500;
  }
  .overlay .submit-btn:hover{background:#a3e84d}
  .overlay .submit-btn:disabled{opacity:.5;cursor:not-allowed}
  .overlay .error-msg{
    background:rgba(200,0,0,.15);
    color:#ff6b6b;
    padding:10px 12px;
    font-size:13px;
    margin-top:12px;
    font-family:var(--body);
    border-left:3px solid #ff6b6b;
  }
  .wa-fallback{
    display:none;margin-top:10px;text-align:center;
    padding:12px;background:rgba(37,211,102,.1);
    border:1px solid rgba(37,211,102,.3);
    color:#25d366;
    font-family:var(--mono);
    font-size:12px;letter-spacing:.1em;
    text-transform:uppercase;text-decoration:none;
  }
  .overlay .success-screen{
    text-align:center;
    padding:20px 0;
  }
  .overlay .success-screen h3{font-size:40px;margin-bottom:12px;color:var(--text)}
  .overlay .success-screen p{color:var(--muted);margin-bottom:20px;font-size:15px}
  .overlay .success-screen .order-id{
    font-family:var(--mono);
    background:rgba(184,255,87,.1);
    color:var(--acid);
    padding:12px 16px;
    font-size:13px;
    letter-spacing:.1em;
    display:inline-block;
    margin-bottom:20px;
    border:1px solid rgba(184,255,87,.2);
  }
  .success-track-link{
    display:none;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--acid);
    text-decoration:none;
    border-bottom:1px solid rgba(184,255,87,.3);
    margin-bottom:16px;
  }
  .success-reassure{font-size:12px !important;color:var(--acid) !important}
  .upi-payment-screen{
    text-align:center;
    padding:10px 0;
  }
  .upi-payment-screen h3{font-size:26px;margin-bottom:6px;color:var(--text)}
  .upi-block{
    border:1px dashed rgba(184,255,87,.25);
    padding:16px 14px;
    margin-top:12px;
    background:rgba(255,255,255,.02);
    border-radius:6px;
  }
  .qr-wrap{text-align:center;margin:4px 0 12px}
  .upi-qr{width:220px;height:220px;background:#fff;padding:8px;border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.4);display:block;margin:0 auto;box-sizing:border-box}
  #upiQR{display:none}
  #upiQRCanvas{display:block}
  .upi-row{
    display:flex;justify-content:space-between;align-items:baseline;
    padding:8px 0;
    border-bottom:1px dashed rgba(255,255,255,.08);
    font-size:13px;
  }
  .upi-row .lbl{
    font-family:var(--mono);
    font-size:10px;letter-spacing:.15em;text-transform:uppercase;
    color:var(--muted);
  }
  .upi-row .val{font-family:var(--mono);font-size:13px}
  .upi-row .val.acid{color:var(--acid);font-weight:500}
  .upi-verify-status-box{
    margin-top:14px;
    padding:14px 12px;
    background:rgba(184,255,87,.05);
    border:1px solid rgba(184,255,87,.2);
    border-radius:6px;
    text-align:center;
  }
  .upi-pulse-indicator{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin-bottom:4px;
  }
  .upi-pulse-dot{
    width:9px;
    height:9px;
    background:var(--acid);
    border-radius:50%;
    animation:upiPulse 1.4s infinite;
  }
  @keyframes upiPulse{
    0%{transform:scale(0.85);opacity:0.6}
    50%{transform:scale(1.25);opacity:1}
    100%{transform:scale(0.85);opacity:0.6}
  }
  .upi-pulse-text{
    font-family:var(--mono);
    font-size:11px;
    font-weight:600;
    color:var(--text);
    letter-spacing:.05em;
  }
  .upi-auto-note{
    font-size:11px;
    color:var(--muted);
    margin:4px 0 10px;
    line-height:1.4;
  }
  .upi-check-now-btn{
    width:100%;
    padding:10px 14px;
    background:var(--acid);
    color:var(--ink);
    border:none;
    border-radius:4px;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.1em;
    text-transform:uppercase;
    font-weight:700;
    cursor:pointer;
    transition:background .15s ease;
  }
  .upi-check-now-btn:hover{background:#a3e84d}
  .upi-check-now-btn:disabled{opacity:.5;cursor:not-allowed}
  .upi-status-feedback{
    margin-top:8px;
    font-family:var(--mono);
    font-size:11px;
    line-height:1.4;
  }
  .upi-policy-link{
    font-size:11px;color:var(--muted);
    margin-top:10px;text-align:center;
  }
  .upi-policy-link a{color:var(--acid);text-decoration:none}

  .loader{
    display:inline-block;
    width:14px;height:14px;
    border:2px solid rgba(8,8,8,.3);
    border-top-color:var(--ink);
    border-radius:50%;
    animation:spin .7s linear infinite;
    vertical-align:middle;
    margin-right:8px;
  }
  @keyframes spin{to{transform:rotate(360deg)}}

  /* Order processing loader */
  .loading-screen{
    display:none;
    text-align:center;
    padding:60px 0;
  }
  .loading-screen.active{display:block}
  .glow-dot-wrap{height:56px;display:flex;align-items:flex-end;justify-content:center;margin-bottom:20px}
  .glow-dot{
    width:16px;height:16px;border-radius:50%;
    background:var(--acid);
    animation:bounceDot .9s ease-in-out infinite;
  }
  @keyframes bounceDot{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(-32px)}
  }
  .ls-label{
    font-family:var(--display);
    font-weight:900;
    font-size:24px;
    margin-bottom:6px;
  }
  .ls-sub{
    font-family:var(--mono);
    font-size:11px;letter-spacing:.15em;text-transform:uppercase;
    color:var(--muted);
  }

  /* ============================= */
  /* PAYMENT FAILED POLICY OVERLAY */
  /* ============================= */
  .policy-overlay{
    position:fixed;inset:0;
    background:var(--bg);
    z-index:300;
    display:none;
    overflow-y:auto;
  }
  .policy-overlay.active{display:block}
  .po-nav{
    position:sticky;top:0;
    display:flex;justify-content:space-between;align-items:center;
    padding:16px 24px;
    background:var(--bg);
    border-bottom:1px solid var(--rule);
    z-index:2;
  }
  .po-back,.po-close{
    background:transparent;border:1px solid var(--rule);color:var(--text);
    font-family:var(--mono);font-size:11px;letter-spacing:.1em;
    text-transform:uppercase;cursor:pointer;padding:8px 14px;
  }
  .po-close{font-size:16px;padding:6px 12px}
  .po-logo{
    font-family:'Barlow Condensed',sans-serif;font-weight:900;
    font-size:18px;letter-spacing:3px;text-transform:uppercase;
    position:relative;padding-right:12px;
  }
  .po-dot{position:absolute;top:-2px;right:0;width:6px;height:6px;background:var(--acid);border-radius:50%}
  .po-main{
    max-width:720px;margin:0 auto;
    padding:48px 24px 80px;
  }
  .po-eyebrow{
    font-family:var(--mono);font-size:10px;
    letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
    margin-bottom:16px;
  }
  .po-main h2{
    font-family:var(--display);font-weight:900;
    font-size:clamp(24px,4vw,36px);letter-spacing:-.02em;line-height:1.15;
    margin:32px 0 12px;
  }
  .po-main h2:first-of-type{margin-top:0}
  .po-main p,.po-main li{font-size:15px;line-height:1.6;color:var(--muted);margin-bottom:12px}
  .po-main ul{padding-left:20px;margin-bottom:16px}
  .po-main a{color:var(--acid)}
  .po-callout{
    border:1px dashed rgba(184,255,87,.3);
    padding:16px;margin:16px 0;
  }
  .po-meta{
    margin-top:40px;padding-top:20px;border-top:1px solid var(--rule);
    font-family:var(--mono);font-size:11px;letter-spacing:.1em;
    color:var(--muted);line-height:1.8;
  }
