/* Sharif SMS Suite cart runtime. Only unique shfss-/sbs- state classes. */
body.shfss-cart-runtime {
    --shfss-cart-accent: var(--sharif-accent, #64a39a);
    --shfss-cart-accent-dark: var(--sharif-accent-dark, #4f8b84);
    --shfss-cart-soft: rgba(100, 163, 154, .12);
}

body.shfss-cart-runtime .sbs-cart-badge-host { position: relative !important; overflow: visible !important; }
body.shfss-cart-runtime .sbs-cart-badge-host > .sbs-cart-badge,
body.shfss-cart-runtime .sbs-cart-badge {
    position: absolute !important; inset-block-start: -4px !important; inset-inline-end: -5px !important; z-index: 50 !important;
    display: inline-flex !important; align-items: center !important; justify-content: center !important;
    min-width: 19px !important; height: 19px !important; padding: 0 4px !important;
    border: 2px solid #fff !important; border-radius: 999px !important;
    background: var(--sbs-cart-badge-color, #64a39a) !important; color: #fff !important;
    font-family: var(--sharif-font, 'Vazir', Tahoma, sans-serif) !important; font-size: 10px !important; font-weight: 700 !important; line-height: 15px !important;
    box-shadow: 0 3px 9px rgba(35,83,77,.22) !important; pointer-events: none !important;
}
body.shfss-cart-runtime .sbs-cart-badge[hidden] { display: none !important; }

/* Add button runtime state: spinner is the first RTL flex item => visual right. */
body.shfss-cart-runtime .shfss-cart-action {
    position: relative !important; display: inline-flex !important; align-items: center !important; justify-content: center !important;
    direction: rtl !important; gap: 8px !important; font-family: var(--sharif-font, 'Vazir', Tahoma, sans-serif) !important;
}
body.shfss-cart-runtime .shfss-cart-action::before { flex: 0 0 auto !important; box-sizing: border-box !important; }
body.shfss-cart-runtime .shfss-cart-action--busy { opacity: .78 !important; cursor: wait !important; pointer-events: none !important; }
body.shfss-cart-runtime .shfss-cart-action--busy::before {
    content: '' !important; width: 15px !important; height: 15px !important;
    border: 2px solid rgba(255,255,255,.48) !important; border-top-color: currentColor !important; border-right-color: currentColor !important;
    border-radius: 50% !important; animation: shfssCartSpin .68s linear infinite !important;
}
body.shfss-cart-runtime .shfss-cart-action--done::before { content: '✓' !important; font-size: 16px !important; font-weight: 800 !important; line-height: 1 !important; }
body.shfss-cart-runtime .shfss-cart-action.loading::after,
body.shfss-cart-runtime .shfss-cart-action.added::after { display: none !important; content: none !important; }
body.shfss-cart-runtime a.added_to_cart.wc-forward { display: none !important; }

/* A reserved feedback row keeps every product card the same height. */
body.shfss-cart-runtime .shfss-inline-cart-link {
    display: inline-flex !important; align-items: center !important; justify-content: center !important;
    width: 100% !important; min-width: 0 !important; min-height: 22px !important; max-height: 24px !important;
    margin: 0 !important; padding: 1px 4px !important; border: 0 !important; background: transparent !important;
    color: var(--shfss-cart-accent-dark) !important; font-family: var(--sharif-font, 'Vazir', Tahoma, sans-serif) !important;
    font-size: 11.2px !important; font-weight: 700 !important; line-height: 1.6 !important; text-align: center !important;
    text-decoration: underline !important; text-underline-offset: 3px !important; box-shadow: none !important;
    opacity: 0 !important; visibility: hidden !important; pointer-events: none !important;
    transition: opacity .16s ease, color .16s ease !important;
}
body.shfss-cart-runtime .shfss-inline-cart-link.is-visible {
    opacity: 1 !important; visibility: visible !important; pointer-events: auto !important;
}
body.shfss-cart-runtime .shfss-inline-cart-link.is-visible:hover,
body.shfss-cart-runtime .shfss-inline-cart-link.is-visible:focus-visible {
    color: #315f59 !important; outline: none !important;
}
body.shfss-cart-runtime .shfss-single-cart-feedback {
    flex: 1 0 100% !important; order: -1 !important; width: 100% !important; min-height: 24px !important;
    margin: 0 0 5px !important;
}

/* Remove button is geometrically centered regardless of theme line-height. */
body.shfss-cart-runtime .shfss-cart-remove-action {
    position: relative !important; display: grid !important; place-items: center !important;
    width: 29px !important; min-width: 29px !important; height: 29px !important; min-height: 29px !important;
    padding: 0 !important; margin: 0 !important; border: 1px solid rgba(23,32,51,.16) !important; border-radius: 50% !important;
    background: #fff !important; color: #7e8998 !important; font-size: 0 !important; line-height: 0 !important; text-indent: 0 !important;
    box-shadow: none !important; text-decoration: none !important; overflow: hidden !important;
}
body.shfss-cart-runtime .shfss-cart-remove-action::after {
    content: '×' !important; position: static !important; display: block !important; transform: translateY(-.5px) !important;
    color: currentColor !important; font-family: Arial, sans-serif !important; font-size: 20px !important; font-weight: 400 !important; line-height: 1 !important;
}
body.shfss-cart-runtime .shfss-cart-remove-action:hover { border-color: rgba(180,35,45,.28) !important; background: #fff3f4 !important; color: #b4232d !important; }
body.shfss-cart-runtime .shfss-cart-remove-action--busy { pointer-events: none !important; background: #f0f8f6 !important; color: var(--shfss-cart-accent-dark) !important; }
body.shfss-cart-runtime .shfss-cart-remove-action--busy::after {
    content: '' !important; width: 13px !important; height: 13px !important; transform: none !important;
    border: 2px solid rgba(100,163,154,.24) !important; border-top-color: var(--shfss-cart-accent-dark) !important;
    border-radius: 50% !important; animation: shfssCartSpin .68s linear infinite !important;
}

/* Classic cart-page remove links only; no generic .remove rules. */
body.shfss-cart-runtime.woocommerce-cart .woocommerce-cart-form .shfss-cart-remove-action {
    margin-inline: auto !important;
}

body.shfss-cart-runtime .sbs-cart-live-notice {
    position: fixed; inset-inline-start: 18px; inset-block-end: 18px; z-index: 2147483000;
    display: flex; align-items: center; gap: 11px; max-width: min(430px, calc(100vw - 36px)); padding: 10px 13px; border: 1.5px solid rgba(79,139,132,.56); border-radius: 11px;
    background: rgba(238,247,245,.93); color: #315e58; font-family: var(--sharif-font, 'Vazir', Tahoma, sans-serif); font-size: 12.2px; font-weight: 600; line-height: 1.75;
    box-shadow: 0 9px 26px rgba(23,32,51,.13); opacity: 0; visibility: hidden; transform: translateY(10px);
    transition: opacity .18s ease, transform .18s ease, visibility 0s linear .2s;
}
body.shfss-cart-runtime .sbs-cart-live-notice__message { min-width: 0; }
body.shfss-cart-runtime .sbs-cart-live-notice__link {
    flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-height: 32px; padding: 5px 10px;
    border: 1px solid rgba(79,139,132,.46); border-radius: 8px; background: rgba(255,255,255,.72); color: #315e58;
    font-size: 11px; font-weight: 700; line-height: 1.4; text-decoration: none; white-space: nowrap;
}
body.shfss-cart-runtime .sbs-cart-live-notice__link:hover { border-color: var(--shfss-cart-accent-dark); background: #fff; color: #244f4a; }
body.shfss-cart-runtime .sbs-cart-live-notice__link[hidden] { display: none !important; }
body.shfss-cart-runtime .sbs-cart-live-notice.is-error { border-color: rgba(180,35,45,.44); background: rgba(255,240,241,.94); color: #8f2731; }
body.shfss-cart-runtime .sbs-cart-live-notice.is-visible { opacity: 1; visibility: visible; transform: translateY(0); transition-delay: 0s; }

@keyframes shfssCartSpin { to { transform: rotate(360deg); } }
@media (max-width: 767px) {
    body.shfss-cart-runtime .sbs-cart-badge { min-width: 18px !important; height: 18px !important; font-size: 9.5px !important; }
    body.shfss-cart-runtime .sbs-cart-live-notice { inset-inline: 12px; inset-block-end: 12px; justify-content: space-between; max-width: none; text-align: right; }
    body.shfss-cart-runtime .sbs-cart-live-notice__link { min-height: 30px; padding-inline: 8px; font-size: 10.5px; }
}
@media (prefers-reduced-motion: reduce) {
    body.shfss-cart-runtime .shfss-cart-action--busy::before,
    body.shfss-cart-runtime .shfss-cart-remove-action--busy::after { animation-duration: 1.5s !important; }
    body.shfss-cart-runtime .sbs-cart-live-notice { transition: none; }
}
