/* =============================================================================
   SmartSchool — নীতিমালার পাতা · checkout-এর পেমেন্ট-নোট ও "শর্তাবলিতে রাজি" · ব্যাংক ট্রান্সফার · footer-এর নীতিমালা
   যোগ: 2026-10-14 (P15). frontend layout-এ frontend-vibrant.css-এর পরে লোড হয়। রং frontend-pro.css-এর --sf-*।
   ফোনে (<768px) নীতিমালার পাশের তালিকা উপরে, এক কলামে; লম্বা শব্দ/লিংক ভেঙে যায় (পাতা পাশে সরে না)।
   ========================================================================== */

/* ---------- নীতিমালার পাতা (/pages/{slug}) ---------- */
.sf-policy-page { padding: clamp(18px, 3vw, 34px) 0 clamp(30px, 5vw, 60px); }
.sf-policy { display: grid; gap: clamp(18px, 3vw, 30px); min-width: 0; }
.sf-policy__draft { display: flex; align-items: center; gap: 8px; margin: 0; padding: 10px 14px; border-radius: 14px; border: 1px solid #fde68a; background: #fffbeb; color: #92400e; font-weight: 700; font-size: 14px; }
.sf-policy__hero { display: grid; gap: 8px; justify-items: start; padding: clamp(20px, 4vw, 36px); border-radius: 26px; background: radial-gradient(520px 260px at 100% 0%, rgba(18, 149, 91, .14), transparent 60%), linear-gradient(135deg, #f5f9f5, #ffffff); border: 1px solid rgba(46, 128, 54, .08); box-shadow: var(--sf-shadow-sm, 0 6px 18px rgba(46, 128, 54, .06)); min-width: 0; }
.sf-policy__hero h1 { margin: 0; font-size: clamp(26px, 4.2vw, 40px); line-height: 1.18; color: var(--sf-ink, #14231a); overflow-wrap: anywhere; }
.sf-policy__lead { margin: 0; max-width: 760px; font-size: clamp(15px, 1.8vw, 17px); line-height: 1.65; color: var(--sf-muted, #696d74); }
.sf-policy__meta { margin: 2px 0 0; font-size: 13px; color: var(--sf-muted, #696d74); }
.sf-policy__meta a { font-weight: 700; }
.sf-policy__layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(18px, 3vw, 32px); align-items: start; }
.sf-policy__layout.has-aside { grid-template-columns: minmax(0, 260px) minmax(0, 1fr); }
.sf-policy__aside { position: sticky; top: 96px; display: grid; gap: 14px; min-width: 0; }
.sf-policy__toc, .sf-policy__others { padding: 16px 16px 14px; border-radius: 18px; background: #fff; border: 1px solid var(--sf-line, #e2e5e9); }
.sf-policy__toc h2, .sf-policy__others h2 { margin: 0 0 8px; font-size: 12px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--sf-muted, #696d74); }
.sf-policy__toc ol { margin: 0; padding-left: 20px; display: grid; gap: 6px; font-size: 14px; }
.sf-policy__others ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.sf-policy__toc a, .sf-policy__others a { color: var(--sf-ink, #14231a); text-decoration: none; overflow-wrap: anywhere; }
.sf-policy__others a { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 10px; font-size: 14px; font-weight: 600; }
.sf-policy__toc a:hover, .sf-policy__others a:hover, .sf-policy__toc a:focus-visible, .sf-policy__others a:focus-visible { color: var(--sf-navy, #2e8036); background: #f1f8f2; outline: none; }
.sf-policy__body { min-width: 0; padding: clamp(18px, 3.4vw, 34px); border-radius: 22px; background: #fff; border: 1px solid var(--sf-line, #e2e5e9); box-shadow: var(--sf-shadow-sm, 0 6px 18px rgba(46, 128, 54, .06)); font-size: 16px; line-height: 1.75; color: #2b3640; overflow-wrap: anywhere; }
.sf-policy__body > :first-child { margin-top: 0; }
.sf-policy__body > :last-child { margin-bottom: 0; }
.sf-policy__body h2 { margin: 1.6em 0 .5em; font-size: clamp(19px, 2.4vw, 23px); line-height: 1.3; color: var(--sf-ink, #14231a); scroll-margin-top: 96px; }
.sf-policy__body h3, .sf-policy__body h4 { margin: 1.3em 0 .4em; font-size: 17px; color: var(--sf-ink, #14231a); scroll-margin-top: 96px; }
.sf-policy__body p { margin: 0 0 .9em; }
.sf-policy__body ul, .sf-policy__body ol { margin: 0 0 1em; padding-left: 1.4em; }
.sf-policy__body li { margin: .25em 0; }
.sf-policy__body li::marker { color: var(--sf-navy, #2e8036); font-weight: 700; }
.sf-policy__body a { color: var(--sf-navy, #2e8036); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.sf-policy__body strong { color: var(--sf-ink, #14231a); }
.sf-policy__body blockquote { margin: 0 0 1em; padding: 10px 16px; border-left: 4px solid var(--sf-navy, #2e8036); background: #f5f9f5; border-radius: 0 12px 12px 0; }
.sf-policy__body code { padding: 1px 6px; border-radius: 6px; background: #f1f5f1; font-size: .92em; }
.sf-policy__body hr { margin: 1.6em 0; border: 0; border-top: 1px solid var(--sf-line, #e2e5e9); }
.sf-policy__body table { width: 100%; margin: 0 0 1em; border-collapse: collapse; font-size: 14.5px; display: block; overflow-x: auto; }
.sf-policy__body th, .sf-policy__body td { padding: 8px 10px; border: 1px solid var(--sf-line, #e2e5e9); text-align: left; vertical-align: top; }
.sf-policy__body th { background: #f5f9f5; }

/* ---------- checkout: পেমেন্টের নোট, বন্ধ method, "শর্তাবলিতে রাজি" ---------- */
.payment-card .payment-card__body { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 0; }
.payment-card .payment-card__body > small { margin-top: 0; }
.payment-card:has(.payment-card__note) { align-items: flex-start; }
.payment-card:has(.payment-card__note) > input { margin-top: 7px; }
.payment-card .bank { color: #1d4ed8; font-size: 20px; font-weight: 900; }
.payment-card .payment-card__note { margin: 2px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--sf-muted, #696d74); }
.payment-card .payment-card__note.is-warn { color: #b45309; font-weight: 700; }
.payment-card.is-disabled { opacity: .55; cursor: not-allowed; background: #fafafa; }
.payment-card.is-disabled:hover { border-color: #e3e6e9; }
.checkout-grid > .sf-terms { grid-column: 1 / -1; }
.sf-terms { min-width: 0; }
.sf-terms__accept { display: flex !important; align-items: flex-start; gap: 10px; margin: 0; padding: 12px 14px; border-radius: 14px; border: 1px solid var(--sf-line, #e2e5e9); background: #fff; font-size: 14.5px; font-weight: 600; line-height: 1.55; color: var(--sf-ink, #14231a); cursor: pointer; }
.sf-terms__accept input { flex: none; width: 20px !important; height: 20px !important; margin: 2px 0 0 !important; accent-color: var(--sf-navy, #2e8036); }
.sf-terms__accept span { color: inherit; }
.sf-terms__accept:has(input:checked) { border-color: var(--sf-navy, #2e8036); background: #f5faf5; }
.sf-terms__accept input[aria-invalid="true"] { outline: 2px solid #dc2626; outline-offset: 2px; }
.sf-terms__note { margin: 0; text-align: center; font-size: 13.5px; line-height: 1.6; color: var(--sf-muted, #696d74); }
.sf-terms a { color: var(--sf-navy, #2e8036); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- ব্যাংক ট্রান্সফার (confirmation / track) ---------- */
.sf-bank { margin: 18px 0; padding: clamp(16px, 3vw, 24px); border-radius: 20px; border: 1px solid #bfdbfe; background: linear-gradient(180deg, #f5f9ff, #ffffff); text-align: left; scroll-margin-top: 90px; min-width: 0; }
.sf-bank h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; font-size: clamp(18px, 2.4vw, 22px); color: #1e3a8a; }
.sf-bank__lead { margin: 0 0 12px; font-size: 15px; line-height: 1.6; color: #334155; }
.sf-bank__details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; margin: 0 0 12px; }
.sf-bank__details > div { min-width: 0; padding: 9px 12px; border-radius: 12px; background: #fff; border: 1px solid #dbeafe; }
.sf-bank__details dt { margin: 0; font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #64748b; }
.sf-bank__details dd { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 2px 0 0; font-size: 15px; font-weight: 700; color: #0f172a; overflow-wrap: anywhere; }
.sf-bank__number { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .02em; }
.sf-bank__copy { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: 999px; border: 1px solid #bfdbfe; background: #eff6ff; color: #1d4ed8; font-size: 12px; font-weight: 800; cursor: pointer; }
.sf-bank__copy:hover, .sf-bank__copy:focus-visible { background: #1d4ed8; color: #fff; outline: none; }
.sf-bank__note { margin: 0 0 12px; padding: 10px 12px; border-radius: 12px; background: #fff; border: 1px dashed #93c5fd; font-size: 14px; line-height: 1.6; color: #1e3a8a; white-space: pre-line; }
.sf-bank__reported { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 12px; padding: 10px 12px; border-radius: 12px; background: #ecfdf3; border: 1px solid #bbf7d0; color: #166534; font-size: 14px; font-weight: 700; line-height: 1.5; }
.sf-bank__form { margin: 0; padding-top: 12px; border-top: 1px solid #dbeafe; }
.sf-bank__form h3 { margin: 0 0 10px; font-size: 15.5px; color: #0f172a; }
.sf-bank__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; margin: 0 0 12px; }
.sf-bank__fields > div { min-width: 0; }
.sf-bank__fields label { display: block; margin: 0 0 5px; font-size: 13px; font-weight: 700; color: #334155; }
.sf-bank__fields input { width: 100%; min-width: 0; }

/* ---------- footer: নীতিমালার লিংক + ব্যাংকের চিহ্ন ---------- */
.sf-pay .bank { color: #a5c8ff; }
.sf-footer__policies { position: relative; display: flex; flex-wrap: wrap; gap: 6px 18px; padding: 14px 0; border-top: 1px solid rgba(255, 255, 255, .10); font-size: 13.5px; }
.sf-footer__policies a { color: #d8ecda; text-decoration: none; font-weight: 600; }
.sf-footer__policies a:hover, .sf-footer__policies a:focus-visible, .sf-footer__policies a[aria-current="page"] { color: #fff; text-decoration: underline; text-underline-offset: 3px; outline: none; }

/* ---------- NEW (2026-10-26, P31-D1/D2/P1): checkout-এর ছাড় (ভাইবোন ছাড়, কুপন) আর "কত এখন দেবেন" (পুরো / অগ্রিম) ---------- */
/* ফর্মের প্রথম (লুকানো) submit — Enter চাপলে আগের মতো "Confirm order"; দেখা যায় না, Tab-এও আসে না */
.sf-default-submit { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important; opacity: 0; pointer-events: none; }
.checkout-grid > .sf-discount { grid-column: 1 / -1; min-width: 0; }
.sf-discount h3 { display: flex; align-items: center; gap: 8px; }
.sf-discount__line { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 12px; padding: 10px 12px; border-radius: 12px; background: #f6f8f7; border: 1px solid var(--sf-line, #e2e5e9); font-size: 14px; line-height: 1.55; color: #3c4650; }
.sf-discount__line.is-good { background: #ecfdf3; border-color: #bbf7d0; color: #166534; font-weight: 700; }
.sf-discount__line .su-icon { flex: none; margin-top: 2px; }
.sf-coupon { display: grid; gap: 6px; min-width: 0; }
.sf-coupon > label { margin: 0; font-weight: 700; }
.sf-coupon__row { display: flex; gap: 10px; min-width: 0; }
.sf-coupon__row input { flex: 1 1 auto; min-width: 0; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; }
.sf-coupon__row input::placeholder { text-transform: none; letter-spacing: normal; font-weight: 500; }
.sf-coupon__row .su-btn { flex: none; min-height: 46px; }
.sf-coupon.is-applied { grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px 14px; padding: 12px 14px; border-radius: 14px; border: 1px dashed #86c98d; background: #f2faf3; }
.sf-coupon__code { padding: 5px 11px; border-radius: 10px; background: #fff; border: 1px solid #b7deba; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-weight: 800; letter-spacing: .05em; color: var(--sf-navy, #2e8036); overflow-wrap: anywhere; }
.sf-coupon__text { display: grid; gap: 2px; min-width: 0; }
.sf-coupon__text strong { color: #166534; font-size: 14.5px; }
.sf-coupon__text small { color: var(--sf-muted, #696d74); font-size: 12.5px; line-height: 1.5; }
.sf-main .checkout-total .sf-total-discount { color: #15803d; font-weight: 700; }
.sf-main .checkout-total .sf-total-advance { flex-basis: 100%; text-align: right; color: #1f2a37; font-size: 14.5px; font-weight: 600; }
.sf-main .checkout-total .sf-total-advance b { color: var(--sf-navy, #2e8036); }
.sf-main .checkout-total [hidden] { display: none !important; }
.sf-pay-plan { display: grid; gap: 8px; min-width: 0; margin: 0 0 14px; padding: 0 0 14px; border: 0; border-bottom: 1px dashed var(--sf-line, #e2e5e9); }
.sf-pay-plan__legend { margin: 0 0 4px; padding: 0; font-size: 14px; font-weight: 800; color: var(--sf-ink, #14231a); }
.sf-main .sf-pay-plan__option { display: flex; align-items: flex-start; gap: 10px; min-width: 0; margin: 0; padding: 11px 13px; border-radius: 14px; border: 1px solid var(--sf-line, #e2e5e9); background: #fff; cursor: pointer; transition: border-color .2s, box-shadow .2s, background .2s; }
.sf-main .sf-pay-plan__option:hover { border-color: var(--sf-navy, #2e8036); }
.sf-main .sf-pay-plan__option:has(input:checked) { border-color: var(--sf-navy, #2e8036); background: #f5faf5; box-shadow: 0 0 0 3px rgba(46, 128, 54, .10); }
.sf-main .sf-pay-plan__option.is-disabled { opacity: .6; cursor: not-allowed; background: #fafafa; }
.sf-pay-plan__option input { flex: none; width: auto; margin-top: 4px; accent-color: var(--sf-navy, #2e8036); }
.sf-pay-plan__body { display: grid; gap: 2px; min-width: 0; }
.sf-pay-plan__title { font-size: 14.5px; font-weight: 800; color: var(--sf-ink, #14231a); }
.sf-pay-plan__title b { color: var(--sf-navy, #2e8036); white-space: nowrap; }
.sf-pay-plan__body small { color: var(--sf-muted, #696d74); font-size: 12.5px; line-height: 1.5; }
.sf-pay-plan__body small b { color: #1f2a37; white-space: nowrap; }
.sf-pay-plan__note.is-warn { color: #b45309; font-weight: 700; }
.sf-pay-plan__hint { margin: 0; padding: 8px 11px; border-radius: 10px; background: #eff6ff; color: #1e3a8a; font-size: 13px; line-height: 1.5; }
.sf-pay-plan [hidden] { display: none !important; }

/* কার্টের পাতা: ভাইবোন ছাড়ের খবর (সবুজ) আর কুপনের ছোট লাইন */
.sf-quick-note.is-good { background: #ecfdf3; border-color: #bbf7d0; color: #166534; }
.sf-quick-note .su-icon { vertical-align: -2px; }
.sf-cart-coupon-note { margin: 8px 0 0; font-size: 13px; text-align: right; }

/* ---------- NEW (2026-10-26, P31-D1/P1): অর্ডারের পাতায় ছাড় ও অগ্রিম/বাকি (confirmation / track / পেমেন্ট পাতা) ---------- */
.sf-money-note { margin: 0 0 14px; padding: 10px 14px; border-radius: 14px; background: #fffbeb; border: 1px solid #fde68a; color: #92400e; font-size: 14.5px; font-weight: 700; line-height: 1.55; text-align: left; }
.sf-money-note.is-info { background: #eff6ff; border-color: #bfdbfe; color: #1e3a8a; }
.confirm-details .is-discount strong, .track-card .is-discount strong { color: #15803d; }
.confirm-details .is-due strong, .track-card .is-due strong { color: #b45309; }

/* ---------- ফোন ---------- */
@media (max-width: 991.98px) {
    .sf-policy__layout.has-aside { grid-template-columns: minmax(0, 1fr); }
    .sf-policy__aside { position: static; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
}
@media (max-width: 767.98px) {
    .sf-policy__aside { grid-template-columns: minmax(0, 1fr); }
    .sf-policy__body { font-size: 15.5px; }
    .sf-bank__details, .sf-bank__fields { grid-template-columns: minmax(0, 1fr); }
    .sf-bank .su-btn { width: 100%; justify-content: center; }
    /* P31: কুপনের ঘর ও বোতাম ফোনে একটার নিচে আরেকটা; বসানো কুপনের কার্ডে "Remove" নিচে */
    .sf-coupon__row { flex-direction: column; }
    .sf-coupon__row .su-btn { width: 100%; justify-content: center; }
    .sf-coupon.is-applied { grid-template-columns: minmax(0, 1fr); }
    .sf-coupon.is-applied .su-btn { justify-self: start; }
    .sf-main .checkout-total .sf-total-advance { text-align: left; }
}
