.sngx-addons{margin:18px 0 16px;padding:18px;border:1px solid #e2d8ff;border-radius:24px;background:linear-gradient(180deg,#fff 0%,#fbf8ff 100%);box-shadow:0 14px 34px rgba(83,48,170,.07)}
.sngx-addons-head>span{display:inline-block;margin-bottom:5px;color:#7147ff;font-size:12px;font-weight:900;letter-spacing:.5px;text-transform:uppercase}
.sngx-addons-head h2{margin:0;color:#171329;font-size:23px;line-height:1.2;font-weight:950;letter-spacing:-.4px}
.sngx-addons-head p{margin:7px 0 0;color:#716b80;font-size:14px;line-height:1.5;font-weight:650}
.sngx-addon-group{margin-top:16px;padding-top:15px;border-top:1px solid #eee8fa}
.sngx-addon-group:first-of-type{border-top:0;padding-top:5px}
.sngx-addon-group-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.sngx-addon-group-title strong{color:#211a34;font-size:15px;font-weight:900}
.sngx-addon-group-title small{max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#81798f;font-size:12px;font-weight:700}
.sngx-addon-list{display:grid;gap:9px}
.sngx-addon-card{border:1px solid #e6def5;border-radius:17px;background:#fff;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}
.sngx-addon-card.is-open{border-color:#a789ff;box-shadow:0 8px 20px rgba(117,87,255,.09)}
.sngx-addon-toggle{display:flex;align-items:center;gap:12px;padding:13px 14px;cursor:pointer;margin:0!important}
.sngx-addon-toggle-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}
.sngx-addon-toggle-copy b{color:#1d1830;font-size:14px;line-height:1.25;font-weight:900}
.sngx-addon-toggle-copy small{color:#81798f;font-size:11px;line-height:1.3;font-weight:650}
.sngx-addon-toggle input{position:absolute;opacity:0;pointer-events:none}
.sngx-addon-toggle i{position:relative;width:43px;height:25px;flex:0 0 43px;border-radius:999px;background:#ddd6eb;transition:background .2s ease}
.sngx-addon-toggle i:after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 2px 7px rgba(26,19,44,.18);transition:transform .2s ease}
.sngx-addon-toggle input:checked+i{background:#7557ff}
.sngx-addon-toggle input:checked+i:after{transform:translateX(18px)}
.sngx-addon-quantities{padding:0 13px 13px;border-top:1px solid #f0ebf8}
.sngx-addon-quantities>span{display:block;padding:11px 0 8px;color:#5f586e;font-size:12px;font-weight:850}
.sngx-addon-quantities>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.sngx-addon-quantity{min-height:54px;padding:7px 5px;border:1px solid #ded5f0;border-radius:12px;background:#fff;color:#221b35;cursor:pointer;text-align:center;transition:.15s ease}
.sngx-addon-quantity:hover,.sngx-addon-quantity:focus{border-color:#7557ff;background:#f8f4ff;outline:none}
.sngx-addon-quantity b,.sngx-addon-quantity small{display:block}
.sngx-addon-quantity b{font-size:12px;line-height:1.2;font-weight:900}
.sngx-addon-quantity small{margin-top:3px;color:#6f47ea;font-size:11px;font-weight:850}
.sngx-addon-quantity:disabled{opacity:.55;cursor:wait}
.sngx-addon-message{min-height:0;padding:0 13px;color:#6d657b;font-size:12px;font-weight:750}
.sngx-addon-message.is-loading,.sngx-addon-message.is-success,.sngx-addon-message.is-error{padding-bottom:12px}
.sngx-addon-message.is-success{color:#168247}.sngx-addon-message.is-error{color:#c32d32}
.sngx-coupon-box{margin:13px 0;padding:12px;border:1px solid #e2d8f7;border-radius:15px;background:#fbf9ff}
.sngx-coupon-copy{display:flex;flex-direction:column;gap:2px;margin-bottom:9px}.sngx-coupon-copy strong{color:#211a34;font-size:13px;font-weight:900}.sngx-coupon-copy small{color:#7a7289;font-size:11px;line-height:1.35;font-weight:650}
.sngx-coupon-row{display:flex;gap:7px}.sngx-coupon-row input{min-width:0;flex:1;height:42px;padding:0 11px;border:1px solid #dbd2ed;border-radius:10px;background:#fff;color:#211a34;font-size:13px;font-weight:700;text-transform:uppercase;outline:none}.sngx-coupon-row input:focus{border-color:#7557ff}.sngx-coupon-row button{height:42px;padding:0 15px;border:0;border-radius:10px;background:#5f35da;color:#fff;font-size:12px;font-weight:900;cursor:pointer}.sngx-coupon-row button:disabled{opacity:.6;cursor:wait}
.sngx-coupon-state{margin-top:7px;color:#746c82;font-size:11px;line-height:1.4;font-weight:750}.sngx-coupon-state.is-success{color:#168247}.sngx-coupon-state.is-error{color:#c32d32}.sngx-coupon-state button{padding:0;border:0;background:transparent;color:inherit;text-decoration:underline;font:inherit;cursor:pointer}
@media(max-width:600px){.sngx-addons{margin:15px 0 13px;padding:14px 12px;border-radius:21px}.sngx-addons-head h2{font-size:20px}.sngx-addons-head p{font-size:12px}.sngx-addon-group-title{align-items:flex-start;flex-direction:column;gap:2px}.sngx-addon-group-title small{max-width:100%}.sngx-addon-toggle{padding:12px}.sngx-addon-quantities{padding:0 10px 10px}.sngx-addon-quantities>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.sngx-addon-quantity{min-height:50px;padding:6px 3px}.sngx-addon-quantity b{font-size:11px}.sngx-addon-quantity small{font-size:10px}}

/* v1.0.1: Growth Club minimum benefit and lightweight rendering safeguards */
.sng-club-benefits .sngx-club-minimum-benefit{
  color:#087a45;
  font-weight:900;
}
.sng-club-benefits .sngx-club-minimum-benefit svg{
  background:#eaf8f1;
  stroke:#138a55;
}
.sngx-addon-card,
.sngx-coupon-box{
  contain:layout paint;
}
@media(max-width:600px){
  .sngx-addons{box-shadow:0 8px 22px rgba(83,48,170,.05)}
  .sngx-addon-card{box-shadow:none}
}

/* v1.0.4: single white compact promo field with adjustable desktop/mobile spacing */
.sngx-coupon-box[data-sngx-coupon-box],
.sngx-coupon-box{
  display:none!important;
}

[data-sngx-unified-promo]{
  width:auto!important;
  min-height:0!important;
  margin:var(--sngx-promo-mt,5px) var(--sngx-promo-mr,0px) var(--sngx-promo-mb,5px) var(--sngx-promo-ml,0px)!important;
  padding:var(--sngx-promo-pt,7px) var(--sngx-promo-pr,9px) var(--sngx-promo-pb,6px) var(--sngx-promo-pl,9px)!important;
  border:1px solid var(--sngx-promo-border,#e7e0f2)!important;
  border-radius:var(--sngx-promo-radius,12px)!important;
  background:var(--sngx-promo-bg,#fff)!important;
  background-image:none!important;
  box-shadow:none!important;
  overflow:visible!important;
}

/* Remove every duplicated/nested card layer while keeping the actual input white. */
[data-sngx-unified-promo] .sngx-promo-transparent-layer,
[data-sngx-unified-promo] [data-sngx-unified-promo],
[data-sngx-unified-promo] .snx-coupon-row,
[data-sngx-unified-promo] .snx-promo-row,
[data-sngx-unified-promo] .snx-coupon-inner,
[data-sngx-unified-promo] .snx-promo-inner{
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
}

[data-sngx-unified-promo] label{
  display:block!important;
  min-height:0!important;
  margin:0 0 5px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:#211a34!important;
  font-size:var(--sngx-promo-label,12px)!important;
  line-height:1.15!important;
  font-weight:900!important;
}

.sngx-unified-promo-row{
  display:block!important;
  width:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

.sngx-unified-promo-row input[data-sngx-unified-input]{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  height:var(--sngx-promo-input-h,39px)!important;
  min-height:var(--sngx-promo-input-h,39px)!important;
  margin:0!important;
  padding:0 11px!important;
  border:1px solid #dcd5e8!important;
  border-radius:var(--sngx-promo-input-radius,9px)!important;
  background:#fff!important;
  background-image:none!important;
  color:#211a34!important;
  -webkit-text-fill-color:#211a34!important;
  font-size:var(--sngx-promo-input,13px)!important;
  line-height:normal!important;
  font-weight:750!important;
  text-transform:uppercase!important;
  outline:none!important;
  box-shadow:none!important;
}

.sngx-unified-promo-row input[data-sngx-unified-input]::placeholder{
  color:#8a8494!important;
  -webkit-text-fill-color:#8a8494!important;
  text-transform:none!important;
  opacity:1!important;
}

.sngx-unified-promo-row input[data-sngx-unified-input]:focus{
  border-color:#7557ff!important;
  box-shadow:0 0 0 2px rgba(117,87,255,.07)!important;
}

.sngx-unified-promo-row button,
.sngx-unified-promo-row input[type="button"],
.sngx-unified-promo-row input[type="submit"],
#snx_apply_coupon_btn{
  display:none!important;
}

.sngx-unified-promo-description{
  display:block!important;
  min-height:0!important;
  margin:5px 0 0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:#756f82!important;
  font-size:var(--sngx-promo-desc,10px)!important;
  line-height:1.24!important;
  font-weight:700!important;
}

.sngx-unified-promo-description span{
  display:block!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  white-space:normal!important;
}

.sngx-unified-promo-description span+span{
  margin-top:1px!important;
  color:#756f82!important;
  font-weight:700!important;
}

.sngx-unified-promo-state{
  display:block!important;
  min-height:0!important;
  margin:4px 0 0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:#6f687d!important;
  font-size:var(--sngx-promo-status,10px)!important;
  line-height:1.2!important;
  font-weight:800!important;
}

.sngx-unified-promo-state:empty{
  display:none!important;
  margin:0!important;
}

.sngx-unified-promo-state.is-success{color:#12804a!important}
.sngx-unified-promo-state.is-error{color:#c2383d!important}
.sngx-unified-promo-state.is-loading{color:#716a80!important}

#snx_coupon_message,
.snx-coupon-message,
[data-snx-coupon-message]{
  display:none!important;
}

@media(max-width:600px){
  [data-sngx-unified-promo]{
    margin:var(--sngx-promo-mobile-mt,4px) var(--sngx-promo-mobile-mr,0px) var(--sngx-promo-mobile-mb,4px) var(--sngx-promo-mobile-ml,0px)!important;
    padding:var(--sngx-promo-mobile-pt,6px) var(--sngx-promo-mobile-pr,8px) var(--sngx-promo-mobile-pb,5px) var(--sngx-promo-mobile-pl,8px)!important;
  }
  [data-sngx-unified-promo] label{
    margin-bottom:4px!important;
    font-size:var(--sngx-promo-mobile-label,11px)!important;
  }
  .sngx-unified-promo-row input[data-sngx-unified-input]{
    height:var(--sngx-promo-mobile-input-h,37px)!important;
    min-height:var(--sngx-promo-mobile-input-h,37px)!important;
    padding:0 10px!important;
    font-size:var(--sngx-promo-mobile-input,12px)!important;
  }
  .sngx-unified-promo-description{
    margin-top:4px!important;
    font-size:var(--sngx-promo-mobile-desc,9px)!important;
    line-height:1.2!important;
  }
  .sngx-unified-promo-state{
    margin-top:3px!important;
    font-size:var(--sngx-promo-mobile-status,9px)!important;
    line-height:1.18!important;
  }
}


/* v1.0.5: reserve real space for async validation and remove every legacy tick */
[data-sngx-unified-promo]{
  height:auto!important;
  max-height:none!important;
  box-sizing:border-box!important;
}

/* A negative custom bottom margin is kept while idle. As soon as a validation
   line exists, reset the bottom margin so the line opens its own space instead
   of overlapping Total or the next cart block. */
[data-sngx-unified-promo].sngx-promo-has-state,
[data-sngx-unified-promo][data-sngx-state-visible="1"]{
  margin-bottom:max(4px,var(--sngx-promo-mb,5px))!important;
}

.sngx-unified-promo-state:not(:empty){
  position:relative!important;
  float:none!important;
  clear:both!important;
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  box-sizing:border-box!important;
}

/* The promo row is input-only. Cached theme buttons, SVG ticks and pseudo
   elements are suppressed even before JavaScript removes them. */
.sngx-unified-promo-row{
  position:relative!important;
}
.sngx-unified-promo-row::before,
.sngx-unified-promo-row::after,
.sngx-unified-promo-row > :not(input[data-sngx-unified-input]){
  content:none!important;
  display:none!important;
  visibility:hidden!important;
}
.sngx-unified-promo-row input[data-sngx-unified-input],
.sngx-unified-promo-row input[data-sngx-unified-input]:valid,
.sngx-unified-promo-row input[data-sngx-unified-input].valid,
.sngx-unified-promo-row input[data-sngx-unified-input].is-valid,
.sngx-unified-promo-row input[data-sngx-unified-input].success{
  -webkit-appearance:none!important;
  appearance:none!important;
  background-color:#fff!important;
  background-image:none!important;
  background-repeat:no-repeat!important;
  box-shadow:none!important;
}

@media(max-width:600px){
  [data-sngx-unified-promo].sngx-promo-has-state,
  [data-sngx-unified-promo][data-sngx-state-visible="1"]{
    margin-bottom:max(4px,var(--sngx-promo-mobile-mb,4px))!important;
  }
}

/* v1.0.6: permanently keep the two helper rows and the full async message visible */
[data-sngx-unified-promo]{
  display:block!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}

[data-sngx-unified-description],
.sngx-unified-promo-description{
  display:block!important;
  visibility:visible!important;
  position:relative!important;
  float:none!important;
  clear:both!important;
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  opacity:1!important;
  box-sizing:border-box!important;
}

[data-sngx-unified-description] > span,
.sngx-unified-promo-description > span{
  display:block!important;
  visibility:visible!important;
  position:relative!important;
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  opacity:1!important;
}

/* v1.0.5 hid every non-input child of a row. Allow our two helper rows and
   one status row in case a cached cart fragment temporarily puts them there. */
[data-sngx-unified-promo] .sngx-unified-promo-row > .sngx-unified-promo-description,
[data-sngx-unified-promo] .sngx-unified-promo-row > [data-sngx-unified-description],
[data-sngx-unified-promo] .sngx-unified-promo-row > .sngx-unified-promo-state,
[data-sngx-unified-promo] .sngx-unified-promo-row > [data-sngx-unified-state]{
  display:block!important;
  visibility:visible!important;
  position:relative!important;
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  opacity:1!important;
  content:normal!important;
}

/* Only legacy controls/icons are hidden; text rows are never hidden. */
.sngx-unified-promo-row > button,
.sngx-unified-promo-row > input[type="button"],
.sngx-unified-promo-row > input[type="submit"],
.sngx-unified-promo-row > [class*="tick"],
.sngx-unified-promo-row > [class*="success-icon"]{
  display:none!important;
  visibility:hidden!important;
}

[data-sngx-unified-promo].sngx-promo-has-state,
[data-sngx-unified-promo][data-sngx-state-visible="1"]{
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  padding-bottom:max(6px,var(--sngx-promo-pb,6px))!important;
}

.sngx-unified-promo-state:not(:empty){
  display:block!important;
  visibility:visible!important;
  margin-top:4px!important;
  padding:0!important;
  line-height:1.28!important;
  white-space:normal!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
  opacity:1!important;
}

/* Suppress the old theme/plugin message so fragments cannot leave only the
   final word such as “automatically.” underneath our clean status line. */
.sng-cart-panel #snx_coupon_message,
.sng-cart-summary #snx_coupon_message,
.woocommerce-checkout #snx_coupon_message,
.sng-cart-panel .snx-coupon-message,
.sng-cart-summary .snx-coupon-message,
.woocommerce-checkout .snx-coupon-message,
.sng-cart-panel [data-snx-coupon-message],
.sng-cart-summary [data-snx-coupon-message],
.woocommerce-checkout [data-snx-coupon-message],
.snx-promo-auto-message,
[data-snx-promo-auto-message]{
  display:none!important;
  visibility:hidden!important;
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}

@media(max-width:600px){
  [data-sngx-unified-promo].sngx-promo-has-state,
  [data-sngx-unified-promo][data-sngx-state-visible="1"]{
    padding-bottom:max(5px,var(--sngx-promo-mobile-pb,5px))!important;
  }
  .sngx-unified-promo-state:not(:empty){
    margin-top:3px!important;
    line-height:1.25!important;
  }
}


/* v1.0.8: checkout is payment-only; promo helper copy belongs to the cart only. */
body.woocommerce-checkout [data-sngx-unified-description],
body.woocommerce-checkout .sngx-unified-promo-description,
body.woocommerce-checkout [data-sngx-unified-state],
body.woocommerce-checkout .sngx-unified-promo-state,
body.woocommerce-order-pay [data-sngx-unified-description],
body.woocommerce-order-pay .sngx-unified-promo-description,
body.woocommerce-order-pay [data-sngx-unified-state],
body.woocommerce-order-pay .sngx-unified-promo-state,
body.sngx-checkout-clean [data-sngx-unified-description],
body.sngx-checkout-clean .sngx-unified-promo-description,
body.sngx-checkout-clean [data-sngx-unified-state],
body.sngx-checkout-clean .sngx-unified-promo-state{
  display:none!important;
  visibility:hidden!important;
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}
