/* ==========================================================
   Green Jofiyat — Floating buttons + Toasts
   ========================================================== */

.gj-floating {
    position: fixed; bottom: 20px; inset-inline-end: 20px;
    z-index: var(--z-floating);
    display: flex; flex-direction: column; gap: 0.6rem;
}
.gj-floating__btn {
    width: 52px; height: 52px; border-radius: var(--radius-circle);
    display: grid; place-items: center; color: #fff;
    box-shadow: var(--shadow-lg);
    transition: transform var(--transition-fast), opacity var(--transition-base);
}
.gj-floating__btn:hover { transform: translateY(-3px) scale(1.05); color: #fff; }
.gj-floating__btn .gj-icon { width: 26px; height: 26px; }
.gj-floating__btn--wa { background: var(--gj-whatsapp); }
.gj-floating__btn--top {
    background: var(--gj-primary);
    opacity: 0; visibility: hidden; transform: translateY(10px);
}
.gj-floating__btn--top .gj-icon { transform: rotate(180deg); }
.gj-floating__btn--top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }

/* Toasts */
.gj-toasts {
    position: fixed; bottom: 20px; inset-inline-start: 50%; transform: translateX(-50%);
    z-index: 2000; display: flex; flex-direction: column; gap: 0.5rem; align-items: center;
}
.gj-toast {
    padding: 0.75rem 1.25rem; border-radius: var(--radius-pill);
    background: var(--gj-text); color: #fff; font-size: var(--text-sm); font-weight: 600;
    box-shadow: var(--shadow-lg);
    opacity: 0; transform: translateY(12px); transition: opacity var(--transition-base), transform var(--transition-base);
}
.gj-toast.is-visible { opacity: 1; transform: translateY(0); }
.gj-toast--success { background: var(--gj-primary); }
.gj-toast--error { background: var(--gj-danger); }

/* ── Mini-cart drawer (markup renders site-wide via wp_footer → CSS must be global) ── */
.gj-minicart-backdrop { position: fixed; inset: 0; background: rgba(26,74,48,.45); opacity: 0; visibility: hidden; transition: opacity var(--transition-base); z-index: var(--z-overlay); }
.gj-minicart-backdrop.is-open { opacity: 1; visibility: visible; }
.gj-minicart {
    position: fixed; top: 0; right: 0; left: auto; height: 100dvh; width: min(400px, 92vw);
    background: #fff; z-index: var(--z-mobile-menu); display: flex; flex-direction: column;
    transform: translateX(100%); transition: transform var(--transition-base); box-shadow: var(--shadow-xl);
    will-change: transform;
}
/* RTL: anchor to the left and hide off the left edge */
html[dir="rtl"] .gj-minicart { right: auto; left: 0; transform: translateX(-100%); }
/* Open state wins for both directions (higher specificity, declared last) */
.gj-minicart.is-open { transform: translateX(0); }
.gj-minicart__head { display: flex; align-items: center; justify-content: space-between; padding: var(--space-lg); border-bottom: 1px solid var(--gj-border); }
.gj-minicart__head h3 { font-size: var(--text-lg); margin: 0; }
.gj-minicart__body { padding: var(--space-lg); overflow-y: auto; flex: 1; }
.gj-minicart .woocommerce-mini-cart__total { display: flex; justify-content: space-between; font-size: var(--text-lg); margin: var(--space-md) 0; }
.gj-minicart .woocommerce-mini-cart__buttons { display: flex; flex-direction: column; gap: 8px; }
.gj-minicart .woocommerce-mini-cart__buttons .button { width: 100%; text-align: center; }
.gj-minicart .woocommerce-mini-cart__empty-message { color: var(--gj-text-muted); text-align: center; padding: var(--space-xl) 0; }

/* Donation bar (Customizer-enabled) */
.gj-donation-bar {
    position: fixed; bottom: 20px; inset-inline-start: 20px; z-index: var(--z-floating);
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--gradient-gold); color: #fff; font-weight: 700; font-size: var(--text-sm);
    padding: 0.7rem 1.2rem; border-radius: var(--radius-pill); box-shadow: var(--shadow-lg);
    transition: transform var(--transition-fast);
}
.gj-donation-bar:hover { transform: translateY(-3px); color: #fff; }
@media (max-width: 575px) { .gj-donation-bar { inset-inline-start: 12px; bottom: 84px; } }
