/*
 * ঢাকা সোর্স থিম — theme.css
 * কোনো লাইব্রেরি লাগে না। সব ক্লাসের শুরুতে ds- আছে, তাই আপনার অন্য CSS-এর সঙ্গে ধাক্কা লাগবে না।
 * রং বদলাতে শুধু নিচের :root-এর মানগুলো বদলান।
 */

:root {
    --ds-ground: #EDF2EE;
    --ds-card: #FFFFFF;
    --ds-line: #D5E0D8;
    --ds-line-strong: #B9C9BE;
    --ds-ink: #14302A;
    --ds-text: #2E4A40;
    --ds-muted: #4B6359;
    --ds-brand: #1F5D43;
    --ds-brand-dark: #174832;
    --ds-brand-tint: #F1F7F3;
    --ds-amber: #E9A81C;
    --ds-amber-soft: #F6D77B;
    --ds-butter: #F0DA8E;
    --ds-sage: #DCE7D6;
    --ds-sage-2: #CFE0C4;
    --ds-red: #B5222F;
    --ds-tag: #FBF4D9;
    --ds-tag-line: #E3CE8A;
    --ds-radius: 10px;
    --ds-radius-lg: 14px;
    --ds-shadow: 0 1px 2px rgba(20, 48, 42, .06), 0 4px 14px rgba(20, 48, 42, .06);
    --ds-font: "Anek Bangla", "Hind Siliguri", "Noto Sans Bengali", system-ui, -apple-system, "Segoe UI", sans-serif;
    --ds-side: 248px;
}

/* ---------- রিসেট ও ভিত্তি ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body.ds {
    margin: 0;
    background: var(--ds-ground);
    color: var(--ds-text);
    font-family: var(--ds-font);
    font-size: 16px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}
:where(.ds) :where(img, svg) { max-width: 100%; }
:where(.ds) img { height: auto; display: block; }
:where(.ds) :where(h1, h2, h3, h4) { color: var(--ds-ink); line-height: 1.3; margin: 0; font-weight: 700; }
:where(.ds) h1 { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2rem); }
:where(.ds) h2 { font-size: 1.25rem; }
:where(.ds) h3 { font-size: 1.05rem; }
:where(.ds) p { margin: 0; }
:where(.ds) :where(ul, ol) { margin: 0; padding: 0; list-style: none; }
:where(.ds) a { color: inherit; text-decoration: none; }
:where(.ds) :where(button, input, select, textarea) { font: inherit; color: inherit; }
:where(.ds) button { cursor: pointer; }
.ds [hidden] { display: none !important; }
.ds :focus-visible { outline: 3px solid var(--ds-amber); outline-offset: 2px; }
.ds ::selection { background: var(--ds-amber-soft); color: var(--ds-ink); }

.ds-vh {
    position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
    overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.ds-skip {
    position: absolute; left: 8px; top: -60px; z-index: 200; background: var(--ds-ink); color: #fff !important;
    padding: 10px 16px; border-radius: 8px; font-weight: 700; transition: top .15s;
}
.ds-skip:focus { top: 8px; }
.ds-muted { color: var(--ds-muted); }
.ds-lead { font-size: 1.15rem; color: var(--ds-text); max-width: 60ch; }
.ds-num { text-align: right; font-variant-numeric: tabular-nums; }
.ds-link { color: var(--ds-brand); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.ds-link:hover { color: var(--ds-brand-dark); }
.ds-note { font-size: .9rem; color: var(--ds-muted); margin-top: 10px; }
.ds-eyebrow { font-size: .9rem; font-weight: 700; color: var(--ds-brand); }
.ds-eyebrow a:hover { text-decoration: underline; }

/* ---------- আইকন ---------- */
.ds-i {
    width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor;
    stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
.ds-i.is-filled { fill: currentColor; color: var(--ds-red); }
.ds-i--brand { color: var(--ds-brand); }
.ds-i--lg { width: 30px; height: 30px; }
.ds-i--xl { width: 52px; height: 52px; stroke-width: 1.4; }
.ds-art { display: block; width: 100%; height: 100%; }

/* ---------- লেআউট ---------- */
.ds-container { width: 100%; max-width: 1280px; margin-inline: auto; padding-inline: 16px; }
.ds-shell {
    display: grid; grid-template-columns: var(--ds-side) minmax(0, 1fr); gap: 16px; align-items: start;
    padding-block: 16px 32px;
}
.ds-solo { padding-block: 16px 40px; }
.ds-main { min-width: 0; display: flex; flex-direction: column; gap: 16px; outline: none; }
.ds-sidebar { min-width: 0; }
.ds-demo {
    background: var(--ds-amber-soft); color: var(--ds-ink); text-align: center;
    font-size: .875rem; font-weight: 600; padding: 6px 16px;
}

/* ---------- টপবার ---------- */
.ds-topbar { background: var(--ds-brand); color: #fff; font-size: .875rem; }
.ds-topbar__in { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 36px; }
.ds-topbar__facts { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.ds-topbar__facts li + li::before { content: "·"; margin-right: 20px; opacity: .6; }
.ds-topbar__tools { display: flex; align-items: center; gap: 16px; }
.ds-lang { display: flex; gap: 2px; }
.ds-lang a { display: inline-block; padding: 2px 10px; border-radius: 999px; font-weight: 600; }
.ds-lang a:hover { background: rgba(255, 255, 255, .15); }
.ds-lang a[aria-current="true"] { background: #fff; color: var(--ds-brand); }

/* ---------- হেডার ---------- */
.ds-header { background: var(--ds-card); position: relative; z-index: 20; }
.ds-header__in {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "logo search tools";
    align-items: center; gap: 16px 28px; padding-block: 14px;
}
.ds-header .ds-header__menu { grid-area: menu; display: none; }
.ds-logo { grid-area: logo; display: flex; flex-direction: column; line-height: 1.1; }
.ds-logo__name { font-size: 1.7rem; font-weight: 800; color: var(--ds-brand); }
.ds-logo__en { font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ds-muted); font-weight: 600; }
.ds-logo img { max-height: 44px; width: auto; }
.ds-search {
    grid-area: search; display: flex; max-width: 680px; width: 100%; justify-self: center;
    border: 2px solid var(--ds-brand); border-radius: 10px; overflow: hidden; background: #fff;
}
.ds-search:focus-within { box-shadow: 0 0 0 3px rgba(233, 168, 28, .55); }
.ds-search input {
    flex: 1; min-width: 0; height: 46px; border: 0; background: transparent; padding: 0 14px; outline: none;
}
.ds-search input::placeholder { color: var(--ds-muted); opacity: .85; }
.ds-search__btn {
    width: 56px; border: 0; background: var(--ds-brand); color: #fff; display: grid; place-items: center;
}
.ds-search__btn:hover { background: var(--ds-brand-dark); }
.ds-header__tools { grid-area: tools; display: flex; align-items: center; gap: 10px; }

.ds-iconbtn {
    position: relative; display: inline-grid; place-items: center; width: 44px; height: 44px; padding: 0;
    border: 0; border-radius: 10px; background: transparent; color: var(--ds-ink);
}
.ds-iconbtn:hover { background: var(--ds-sage); }
.ds-iconbtn--round { border-radius: 50%; background: var(--ds-sage); }
.ds-iconbtn--round:hover { background: var(--ds-sage-2); }
.ds-iconbtn--soft { border-radius: 50%; background: rgba(255, 255, 255, .92); box-shadow: 0 1px 4px rgba(20, 48, 42, .18); width: 40px; height: 40px; }
.ds-iconbtn--soft:hover { background: #fff; }
.ds-count {
    position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px;
    background: var(--ds-amber); color: var(--ds-ink); font-size: .75rem; font-weight: 800; line-height: 20px; text-align: center;
}

/* সাবনেভ ও ক্যাটাগরি ড্রপডাউন */
.ds-subnav { background: var(--ds-card); border-block: 1px solid var(--ds-line); }
.ds-subnav__in { display: flex; align-items: center; gap: 2px; }
.ds-subnav__in > a {
    display: inline-flex; align-items: center; min-height: 48px; padding: 0 14px; font-weight: 600; color: var(--ds-ink);
    border-bottom: 3px solid transparent;
}
.ds-subnav__in > a:hover { color: var(--ds-brand); border-bottom-color: var(--ds-amber); }
.ds-subnav__in > a[aria-current="page"] { border-bottom-color: var(--ds-amber); }
.ds-subnav__sell { margin-left: auto; color: var(--ds-brand) !important; font-weight: 800 !important; }
.ds-menu { position: relative; margin-right: 8px; }
.ds-menu > summary {
    list-style: none; display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 18px;
    background: var(--ds-brand); color: #fff; font-weight: 700; cursor: pointer; user-select: none;
}
.ds-menu > summary::-webkit-details-marker { display: none; }
.ds-menu > summary:hover { background: var(--ds-brand-dark); }
.ds-menu__chev { transition: transform .18s; }
.ds-menu[open] .ds-menu__chev { transform: rotate(180deg); }
.ds-menu__list {
    position: absolute; top: 100%; left: 0; z-index: 40; min-width: 270px; background: #fff;
    border: 1px solid var(--ds-line); border-top: 0; border-radius: 0 0 var(--ds-radius) var(--ds-radius); box-shadow: var(--ds-shadow);
    padding: 6px;
}
.ds-menu__list a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 8px; font-weight: 600; color: var(--ds-ink); }
.ds-menu__list a:hover { background: var(--ds-brand-tint); color: var(--ds-brand); }

/* সাইডবারের ক্যাটাগরি তালিকা */
.ds-catnav { background: var(--ds-card); border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); padding: 6px; }
.ds-catnav ul { display: flex; flex-direction: column; }
.ds-catnav a {
    display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 8px; font-weight: 600; color: var(--ds-ink);
}
.ds-catnav a span { flex: 1; }
.ds-catnav a:hover { background: var(--ds-brand-tint); color: var(--ds-brand); }
.ds-catnav a[aria-current="page"] { background: var(--ds-sage); color: var(--ds-brand-dark); }
.ds-catnav__chev { width: 16px; height: 16px; color: var(--ds-muted); }

/* মোবাইল ড্রয়ার */
.ds-drawer { position: fixed; inset: 0; z-index: 100; }
.ds-drawer__scrim { position: absolute; inset: 0; background: rgba(20, 48, 42, .55); }
.ds-drawer__panel {
    position: absolute; z-index: 1; inset: 0 auto 0 0; width: min(330px, 88vw); background: var(--ds-ground);
    overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 12px;
}
.ds-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 4px 4px 4px 8px; }
.ds-drawer__head strong { font-size: 1.1rem; color: var(--ds-ink); }
.ds-drawer__links { background: var(--ds-card); border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); padding: 6px; }
.ds-drawer__links a { display: block; padding: 11px 12px; border-radius: 8px; font-weight: 600; color: var(--ds-ink); }
.ds-drawer__links a:hover { background: var(--ds-brand-tint); }

/* ---------- ফ্ল্যাশ বার্তা ---------- */
.ds-alert {
    display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 12px 16px;
    border-radius: var(--ds-radius); border: 1px solid var(--ds-line); background: #fff; font-weight: 600;
}
.ds-alert ul { margin-top: 6px; padding-left: 20px; list-style: disc; font-weight: 500; }
.ds-alert--success { background: #E7F4EA; border-color: #A9D3B4; color: #134A2D; }
.ds-alert--info { background: #FFF6D8; border-color: var(--ds-tag-line); color: var(--ds-ink); }
.ds-alert--error { background: #FBE9EA; border-color: #E5A9AE; color: #7E1822; }
.ds-alert__x { flex: none; width: 32px; height: 32px; display: grid; place-items: center; border: 0; background: transparent; border-radius: 50%; color: inherit; }
.ds-alert__x:hover { background: rgba(20, 48, 42, .1); }

/* ---------- ক্রাম্ব ও পেজের শিরোনাম ---------- */
.ds-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 0; font-size: .9rem; color: var(--ds-muted); }
.ds-crumbs li + li::before { content: "›"; margin: 0 8px; opacity: .7; }
.ds-crumbs a { color: var(--ds-brand); font-weight: 600; }
.ds-crumbs a:hover { text-decoration: underline; }
.ds-pagehead { display: flex; flex-direction: column; gap: 4px; }

/* ---------- বোতাম ---------- */
.ds-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px;
    border: 2px solid transparent; border-radius: 10px; background: var(--ds-sage); color: var(--ds-ink);
    font-weight: 700; line-height: 1.2; text-align: center; cursor: pointer; transition: background .15s, border-color .15s, color .15s, transform .05s;
}
.ds-btn:active { transform: translateY(1px); }
.ds-btn--primary { background: var(--ds-brand); color: #fff; }
.ds-btn--primary:hover { background: var(--ds-brand-dark); }
.ds-btn--outline { background: transparent; border-color: var(--ds-brand); color: var(--ds-brand); }
.ds-btn--outline:hover { background: var(--ds-brand-tint); }
.ds-btn--ink { background: var(--ds-amber); color: var(--ds-ink); }
.ds-btn--ink:hover { background: var(--ds-amber-soft); }
.ds-btn--lg { min-height: 52px; padding: 0 28px; font-size: 1.05rem; }
.ds-btn--sm { min-height: 40px; padding: 0 14px; font-size: .9rem; }
.ds-btn--block { width: 100%; }
.ds-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.ds-actions--center { justify-content: center; }

/* ---------- প্যানেল ও সেকশনের মাথা ---------- */
.ds-panel { background: var(--ds-card); border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); padding: 20px; }
.ds-panel--sage { background: var(--ds-sage); border-color: var(--ds-sage-2); }
.ds-panel > * + * { margin-top: 14px; }
.ds-panel > .ds-sechead { margin-top: 0; margin-bottom: 4px; }
.ds-sechead { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.ds-sechead__t { font-size: 1.25rem; }
.ds-sechead + .ds-grid, .ds-sechead + .ds-vgrid { margin-top: 14px; }

/* ---------- ফর্ম ---------- */
.ds-field { border: 0; margin: 0; padding: 0; min-width: 0; }
.ds-field + .ds-field, .ds-formgrid + .ds-field { margin-top: 14px; }
.ds-field > label, .ds-field > legend { display: block; margin-bottom: 6px; font-weight: 700; color: var(--ds-ink); padding: 0; }
.ds-req { color: var(--ds-red); }
.ds-input, .ds-select {
    width: 100%; min-height: 46px; padding: 9px 12px; border: 1.5px solid var(--ds-line-strong); border-radius: 8px;
    background: #fff; color: var(--ds-ink);
}
textarea.ds-input { min-height: 96px; resize: vertical; line-height: 1.6; }
.ds-select { appearance: none; padding-right: 38px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314302A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 9l7 7 7-7'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; background-size: 18px; }
.ds-input:hover, .ds-select:hover { border-color: var(--ds-muted); }
.ds-input:focus, .ds-select:focus { outline: 3px solid rgba(233, 168, 28, .6); outline-offset: 0; border-color: var(--ds-brand); }
.ds-field.has-error .ds-input, .ds-field.has-error .ds-select { border-color: var(--ds-red); }
.ds-hint { font-size: .875rem; color: var(--ds-muted); margin-top: 4px; }
.ds-error { font-size: .9rem; color: var(--ds-red); font-weight: 600; margin-top: 4px; }
.ds-formgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; margin-bottom: 14px; }
.ds-formgrid > .ds-field + .ds-field { margin-top: 0; }
.ds-field--pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ds-field--pair > legend { grid-column: 1 / -1; float: none; }
.ds-check { display: inline-flex; align-items: center; gap: 10px; min-height: 36px; cursor: pointer; font-weight: 600; }
.ds-check input { width: 20px; height: 20px; accent-color: var(--ds-brand); flex: none; }
.ds-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 2px 16px; }
.ds-panel > form > * + *, .ds-panel > form > .ds-field + .ds-field { margin-top: 14px; }

/* পরিমাণ বাড়ানো-কমানো */
.ds-qty { display: inline-flex; align-items: stretch; border: 1.5px solid var(--ds-line-strong); border-radius: 10px; background: #fff; overflow: hidden; }
.ds-qty__btn { width: 44px; min-height: 46px; display: grid; place-items: center; border: 0; background: var(--ds-brand-tint); color: var(--ds-ink); }
.ds-qty__btn:hover { background: var(--ds-sage); }
.ds-qty__input { width: 58px; border: 0; text-align: center; font-weight: 700; background: #fff; appearance: textfield; -moz-appearance: textfield; padding: 0; }
.ds-qty__input::-webkit-outer-spin-button, .ds-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ds-qty__input:focus-visible { outline-offset: -3px; }

/* ---------- দাম, ব্যাজ, চিপ ---------- */
.ds-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 2px 10px; }
.ds-price__now { font-weight: 800; font-size: 1.15rem; color: var(--ds-red); }
.ds-price__old { color: var(--ds-muted); font-size: .9rem; }
.ds-price__unit { color: var(--ds-muted); font-size: .95rem; }
.ds-price--lg .ds-price__now { font-size: 1.9rem; }
.ds-price--lg .ds-price__old { font-size: 1.05rem; }
.ds-badge {
    position: absolute; top: 10px; left: 10px; background: var(--ds-red); color: #fff; font-size: .8rem; font-weight: 800;
    padding: 2px 10px; border-radius: 999px; line-height: 1.6;
}
.ds-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ds-chip {
    display: inline-flex; align-items: center; gap: 4px; padding: 1px 10px; border-radius: 999px; background: var(--ds-sage);
    color: var(--ds-ink); font-size: .8rem; font-weight: 600; line-height: 1.7;
}
.ds-chip .ds-i { width: 14px; height: 14px; }

/* ---------- পণ্যের কার্ড ও গ্রিড ---------- */
.ds-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.ds-grid--shop { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.ds-card {
    display: flex; flex-direction: column; background: #fff; border: 1px solid var(--ds-line); border-radius: var(--ds-radius);
    overflow: hidden; transition: box-shadow .18s, transform .18s, border-color .18s;
}
.ds-card:hover { box-shadow: var(--ds-shadow); border-color: var(--ds-line-strong); }
.ds-card__media { position: relative; aspect-ratio: 1 / 1; background: var(--ds-sage); overflow: hidden; }
.ds-card__media > a { display: block; height: 100%; }
.ds-card__media img { width: 100%; height: 100%; object-fit: cover; }
.ds-card__wish { position: absolute; top: 8px; right: 8px; margin: 0; }
.ds-card__body { display: flex; flex-direction: column; gap: 6px; padding: 12px; flex: 1; }
.ds-card__name { font-size: 1rem; font-weight: 600; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ds-card__name a:hover { color: var(--ds-brand); }
.ds-card__buy { margin-top: auto; padding-top: 6px; }
.ds-card__oos { margin-top: auto; padding-top: 6px; color: var(--ds-red); font-weight: 700; }

/* ---------- পেজিনেশন ---------- */
.ds-pager { margin-top: 20px; }
.ds-pager ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.ds-pager__btn, .ds-pager__gap {
    min-width: 44px; height: 44px; padding: 0 10px; display: inline-grid; place-items: center; border-radius: 10px;
    border: 1.5px solid var(--ds-line); background: #fff; font-weight: 700; color: var(--ds-ink);
}
a.ds-pager__btn:hover { border-color: var(--ds-brand); color: var(--ds-brand); }
.ds-pager__btn.is-current { background: var(--ds-brand); border-color: var(--ds-brand); color: #fff; }
.ds-pager__btn.is-disabled { opacity: .45; }
.ds-pager__gap { border-color: transparent; background: transparent; }

/* ---------- হোম: স্লাইডার ---------- */
.ds-slider { position: relative; border-radius: var(--ds-radius-lg); overflow: hidden; background: var(--ds-amber); }
.ds-slide {
    display: none; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: center; gap: 24px;
    min-height: 320px; padding: 36px 48px 64px;
}
.ds-slide.is-active { display: grid; animation: ds-fade .45s ease; }
.ds-slide__text { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.ds-slide__title { font-size: clamp(1.7rem, 1.1rem + 2.4vw, 2.75rem); font-weight: 800; line-height: 1.2; }
.ds-slide__body { font-size: 1.1rem; max-width: 46ch; }
.ds-slide__cta { margin-top: 8px; }
.ds-slide__art { justify-self: center; width: min(100%, 270px); aspect-ratio: 1 / 1; border-radius: 22px; overflow: hidden; box-shadow: 0 10px 30px rgba(20, 48, 42, .22); transform: rotate(2deg); }
.ds-slide__art img { width: 100%; height: 100%; object-fit: cover; }
.ds-slide--amber { background: linear-gradient(120deg, var(--ds-amber) 0%, var(--ds-amber-soft) 100%); color: var(--ds-ink); }
.ds-slide--amber .ds-slide__cta, .ds-slide--butter .ds-slide__cta { background: var(--ds-ink); color: #fff; }
.ds-slide--butter { background: linear-gradient(120deg, var(--ds-butter) 0%, #F8EDBF 100%); color: var(--ds-ink); }
.ds-slide--ink { background: linear-gradient(120deg, var(--ds-ink) 0%, var(--ds-brand) 100%); color: #fff; }
.ds-slide--ink .ds-slide__title { color: #fff; }
.ds-slide--ink .ds-slide__cta { background: var(--ds-amber); color: var(--ds-ink); }
.ds-slide--amber .ds-slide__title, .ds-slide--butter .ds-slide__title { color: var(--ds-ink); }
.ds-slider__ctl { position: absolute; inset: auto 0 14px 0; display: flex; align-items: center; justify-content: space-between; padding-inline: 20px; pointer-events: none; }
.ds-slider__ctl > * { pointer-events: auto; }
.ds-slider__dots { display: flex; gap: 2px; }
.ds-slider__dot { width: 28px; height: 28px; padding: 0; display: grid; place-items: center; border: 0; background: transparent; }
.ds-slider__dot span { width: 10px; height: 10px; border-radius: 50%; background: currentColor; opacity: .35; transition: opacity .2s, width .2s, border-radius .2s; }
.ds-slider__dot[aria-pressed="true"] span { width: 26px; border-radius: 6px; opacity: 1; }
.ds-slider__nav { display: flex; gap: 8px; }
.ds-slider__btn { width: 40px; height: 40px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .9); color: var(--ds-ink); box-shadow: 0 1px 4px rgba(20, 48, 42, .2); }
.ds-slider__btn:hover { background: #fff; }
.ds-slider:has(.ds-slide--ink.is-active) .ds-slider__dots { color: #fff; }
@keyframes ds-fade { from { opacity: 0; } to { opacity: 1; } }

/* সেবার কার্ড */
.ds-services { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.ds-service { display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: #fff; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); }
.ds-service:hover { border-color: var(--ds-brand); box-shadow: var(--ds-shadow); }
.ds-service strong { display: block; color: var(--ds-ink); line-height: 1.3; }
.ds-service em { display: block; font-style: normal; font-size: .875rem; color: var(--ds-muted); line-height: 1.4; }

/* ছবিসহ ক্যাটাগরি গ্রিড */
.ds-catgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.ds-catcard { background: #fff; border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); padding: 16px; }
.ds-catcard__h { font-size: 1.1rem; margin-bottom: 12px; }
.ds-catcard__h a:hover { color: var(--ds-brand); }
.ds-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ds-tile { display: block; }
.ds-tile__media { display: block; aspect-ratio: 1 / 1; border-radius: 8px; overflow: hidden; background: var(--ds-sage); }
.ds-tile__media img { width: 100%; height: 100%; object-fit: cover; }
.ds-tile__cap { display: block; margin-top: 6px; font-size: .9rem; font-weight: 600; color: var(--ds-ink); line-height: 1.35; }
.ds-tile:hover .ds-tile__cap { color: var(--ds-brand); }

/* বিক্রেতার কার্ড */
.ds-vgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.ds-vgrid--wide { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.ds-vcard { display: flex; align-items: center; gap: 12px; padding: 12px; background: #fff; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); height: 100%; }
.ds-vcard:hover { border-color: var(--ds-brand); box-shadow: var(--ds-shadow); }
.ds-vcard--lg { padding: 16px; }
.ds-vcard__mark {
    flex: none; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%;
    background: var(--ds-brand); color: #fff; font-size: 1.3rem; font-weight: 800;
}
.ds-vcard__logo { flex: none; width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.ds-vcard__info { display: flex; flex-direction: column; min-width: 0; }
.ds-vcard__info strong { color: var(--ds-ink); line-height: 1.3; }
.ds-vcard__info em { font-style: normal; font-size: .875rem; color: var(--ds-muted); }

/* ধাপ */
.ds-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 14px; counter-reset: none; }
.ds-steps li { background: rgba(255, 255, 255, .7); border-radius: var(--ds-radius); padding: 14px 16px; }
.ds-steps__n { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--ds-ink); color: var(--ds-amber-soft); font-weight: 800; margin-bottom: 8px; }
.ds-steps h3 { margin-bottom: 4px; }
.ds-steps p { font-size: .95rem; color: var(--ds-text); }
.ds-steps--stack { grid-template-columns: 1fr; }

/* ডাক বার */
.ds-cta { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 28px; background: var(--ds-ink); color: #DCE7D6; border-radius: var(--ds-radius-lg); }
.ds-cta h2 { color: #fff; margin-bottom: 4px; }
.ds-cta p { max-width: 56ch; }

/* ---------- শপ ---------- */
.ds-shopbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ds-shopbar__filter { display: none; }
.ds-shopbar__sort { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.ds-shopbar__sort label { font-weight: 700; color: var(--ds-ink); white-space: nowrap; }
.ds-shopbar__sort .ds-select { width: auto; min-width: 210px; }
.ds-shopgrid { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 16px; align-items: start; }
.ds-filters { background: #fff; border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); padding: 16px; }
.ds-filters .ds-field + .ds-field { margin-top: 16px; }
.ds-filters__actions { display: flex; flex-direction: column; gap: 8px; margin-top: 18px; }
.ds-results { min-width: 0; }
.ds-empty {
    display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 48px 20px;
    background: #fff; border: 1px dashed var(--ds-line-strong); border-radius: var(--ds-radius-lg); color: var(--ds-muted);
}
.ds-empty h2 { color: var(--ds-ink); }
.ds-empty .ds-i { color: var(--ds-brand); opacity: .75; }
.ds-empty--flat { border: 0; padding: 24px 0; background: transparent; align-items: flex-start; text-align: left; }

/* ---------- পণ্যের পাতা ---------- */
.ds-product {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 32px; background: #fff;
    border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); padding: 24px;
}
.ds-gallery__main { position: relative; aspect-ratio: 1 / 1; border-radius: var(--ds-radius-lg); overflow: hidden; background: var(--ds-sage); }
.ds-gallery__main img { width: 100%; height: 100%; object-fit: cover; }
.ds-gallery__thumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.ds-gallery__thumb { width: 68px; height: 68px; padding: 0; border: 2px solid var(--ds-line); border-radius: 8px; overflow: hidden; background: var(--ds-sage); }
.ds-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.ds-gallery__thumb.is-active, .ds-gallery__thumb:hover { border-color: var(--ds-brand); }
.ds-product__info { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.ds-product__name { font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.1rem); }
.ds-product__lead { color: var(--ds-text); font-size: 1.05rem; }
.ds-stock { font-weight: 700; display: inline-flex; align-items: center; gap: 8px; }
.ds-stock::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: currentColor; }
.ds-stock.is-in { color: var(--ds-brand); }
.ds-stock.is-out { color: var(--ds-red); }

/* উৎস কার্ড */
.ds-source {
    position: relative; background: var(--ds-tag); border: 1.5px solid var(--ds-tag-line); border-radius: 12px;
    padding: 16px 18px 10px 44px;
}
.ds-source::before {
    content: ""; position: absolute; left: 14px; top: 16px; width: 14px; height: 14px; border-radius: 50%;
    background: var(--ds-ground); border: 1.5px solid var(--ds-tag-line);
}
.ds-source__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.ds-source__head h2 { font-size: 1.05rem; }
.ds-stamp {
    display: inline-block; padding: 0 12px; border: 2.5px double var(--ds-brand); border-radius: 8px; color: var(--ds-brand);
    font-weight: 800; letter-spacing: .02em; transform: rotate(-6deg); line-height: 1.6;
}
.ds-ledger { margin: 0; }
.ds-ledger__row { display: flex; align-items: baseline; gap: 10px; padding: 5px 0; }
.ds-ledger dt { display: flex; flex: 1; align-items: baseline; gap: 8px; min-width: 0; color: var(--ds-muted); white-space: nowrap; }
.ds-ledger dt::after { content: ""; flex: 1; min-width: 12px; border-bottom: 2px dotted var(--ds-line-strong); transform: translateY(-4px); }
.ds-source .ds-ledger dt::after { border-bottom-color: #D2BC72; }
.ds-ledger dd { margin: 0; font-weight: 700; color: var(--ds-ink); text-align: right; }
.ds-ledger dd a { color: var(--ds-brand); text-decoration: underline; text-underline-offset: 3px; }
.ds-ledger--wide { max-width: 640px; }

/* কেনার বক্স */
.ds-buybox { display: grid; gap: 10px; }
.ds-buybox__form { display: flex; gap: 10px; align-items: stretch; margin: 0; }
.ds-buybox__add { flex: 1; padding-inline: 12px; white-space: nowrap; }
.ds-buybox__wish { margin: 0; }
.ds-buybox__wish .ds-btn { width: 100%; }
.ds-assure { display: flex; flex-wrap: wrap; gap: 8px 24px; padding-top: 12px; border-top: 1px solid var(--ds-line); color: var(--ds-text); font-weight: 600; }
.ds-assure li { display: inline-flex; align-items: center; gap: 8px; }

/* ট্যাব */
.ds-tabs { background: #fff; border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); }
.ds-tabs__list { display: none; border-bottom: 1px solid var(--ds-line); padding: 0 12px; gap: 4px; overflow-x: auto; }
.ds-tabs__tab { min-height: 52px; padding: 0 18px; border: 0; border-bottom: 3px solid transparent; background: transparent; font-weight: 700; color: var(--ds-muted); white-space: nowrap; }
.ds-tabs__tab:hover { color: var(--ds-ink); }
.ds-tabs__tab.is-active, .ds-tabs__tab[aria-selected="true"] { color: var(--ds-brand); border-bottom-color: var(--ds-amber); }
.ds-tabs__panel { padding: 20px 24px; }
.ds-tabs__panel + .ds-tabs__panel { border-top: 1px solid var(--ds-line); }
.ds-tabs__h { margin-bottom: 10px; }
.ds-js .ds-tabs__list { display: flex; }
.ds-js .ds-tabs__panel { display: none; }
.ds-js .ds-tabs__panel.is-active { display: block; }
.ds-js .ds-tabs__h { display: none; }

/* লেখা-ধাঁচ */
.ds-prose > * + * { margin-top: 1em; }
.ds-prose { line-height: 1.85; max-width: 75ch; }
.ds-prose a { color: var(--ds-brand); text-decoration: underline; text-underline-offset: 3px; }
.ds-prose ul, .ds-prose ol { padding-left: 1.4em; list-style: revert; }
.ds-prose h2, .ds-prose h3 { margin-top: 1.4em; }
.ds-prose img { border-radius: 8px; }
.ds-article > * + * { margin-top: 16px; }

/* ---------- কার্ট ---------- */
.ds-cartgrid, .ds-checkout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 16px; align-items: start; }
.ds-lines { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); }
.ds-line {
    display: grid; grid-template-columns: 88px minmax(0, 1fr) auto 110px 44px; align-items: center; gap: 16px; padding: 16px;
}
.ds-line + .ds-line { border-top: 1px solid var(--ds-line); }
.ds-line__media { display: block; width: 88px; height: 88px; border-radius: 8px; overflow: hidden; background: var(--ds-sage); }
.ds-line__media img { width: 100%; height: 100%; object-fit: cover; }
.ds-line__info { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ds-line__name { font-size: 1rem; font-weight: 600; }
.ds-line__name a:hover { color: var(--ds-brand); }
.ds-line__unit { color: var(--ds-muted); font-size: .9rem; }
.ds-line__qty { display: flex; align-items: center; gap: 8px; margin: 0; }
.ds-line__total { font-weight: 800; color: var(--ds-ink); text-align: right; }
.ds-line__remove { margin: 0; }
.ds-summary { position: sticky; top: 16px; background: #fff; border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); padding: 20px; display: flex; flex-direction: column; gap: 14px; }
.ds-sumrows { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.ds-sumrows > div { display: flex; justify-content: space-between; gap: 12px; }
.ds-sumrows dt { color: var(--ds-muted); }
.ds-sumrows dd { margin: 0; font-weight: 700; color: var(--ds-ink); text-align: right; }
.ds-sumrows__total { padding-top: 10px; border-top: 1.5px dashed var(--ds-line-strong); font-size: 1.15rem; }
.ds-sumrows__total dt { color: var(--ds-ink); font-weight: 700; }
.ds-sumrows__total dd { color: var(--ds-red); font-size: 1.3rem; font-weight: 800; }
.ds-summary__back { text-align: center; }
.ds-summary__cod { display: flex; align-items: center; gap: 8px; justify-content: center; color: var(--ds-text); font-weight: 600; font-size: .95rem; }
.ds-summary .ds-note { margin-top: 0; }

/* ---------- চেকআউট ---------- */
.ds-checkout__main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ds-pays { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.ds-pay {
    display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 2px 12px; padding: 14px 16px;
    border: 1.5px solid var(--ds-line); border-radius: var(--ds-radius); cursor: pointer; background: #fff;
}
.ds-pay:hover { border-color: var(--ds-brand); }
.ds-pay input { width: 20px; height: 20px; accent-color: var(--ds-brand); margin: 0; }
.ds-pay__label { font-weight: 700; color: var(--ds-ink); }
.ds-pay__note { display: none; grid-column: 2; font-size: .9rem; color: var(--ds-muted); }
.ds-pay:has(input:checked) { border-color: var(--ds-brand); background: var(--ds-brand-tint); }
.ds-pay input:checked ~ .ds-pay__note { display: block; }
.ds-mini { display: flex; flex-direction: column; gap: 10px; max-height: 280px; overflow-y: auto; }
.ds-mini li { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.ds-mini__media { display: block; width: 52px; height: 52px; border-radius: 8px; overflow: hidden; background: var(--ds-sage); }
.ds-mini__media img { width: 100%; height: 100%; object-fit: cover; }
.ds-mini__name { font-size: .95rem; line-height: 1.4; }
.ds-mini__name em { font-style: normal; color: var(--ds-muted); white-space: nowrap; }
.ds-mini__sum { font-weight: 700; color: var(--ds-ink); }
.ds-mini--list { max-height: none; margin-top: 18px; }

/* ---------- অর্ডার সম্পন্ন ---------- */
.ds-success { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 32px 16px 8px; }
.ds-success__tick { width: 84px; height: 84px; display: grid; place-items: center; border-radius: 50%; background: var(--ds-brand); color: #fff; }
.ds-success__tick .ds-i { width: 44px; height: 44px; stroke-width: 2.4; }
.ds-success__lead { font-size: 1.1rem; }
.ds-success__no strong { background: var(--ds-tag); border: 1.5px dashed var(--ds-tag-line); padding: 2px 12px; border-radius: 8px; color: var(--ds-ink); }

/* ---------- লগইন/নিবন্ধন ---------- */
.ds-authcard { width: 100%; max-width: 460px; margin: 16px auto; background: #fff; border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); padding: 28px; box-shadow: var(--ds-shadow); }
.ds-authcard > * + * { margin-top: 14px; }
.ds-authcard form > * + * { margin-top: 14px; }
.ds-authcard form > .ds-field + .ds-field { margin-top: 14px; }
.ds-authcard__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.ds-authcard__alt { text-align: center; color: var(--ds-muted); }

/* ---------- অ্যাকাউন্ট ---------- */
.ds-accountgrid { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 16px; align-items: start; }
.ds-profile { display: flex; flex-direction: column; align-items: flex-start; }
.ds-profile__mark { width: 64px; height: 64px; font-size: 1.8rem; }
.ds-profile .ds-ledger { width: 100%; }
.ds-profile .ds-actions { margin-top: 18px; }
.ds-profile form { margin: 0; }
.ds-tablewrap { overflow-x: auto; margin-top: 12px; }
.ds-table { width: 100%; border-collapse: collapse; min-width: 480px; }
.ds-table th, .ds-table td { padding: 12px 10px; text-align: left; border-bottom: 1px solid var(--ds-line); }
.ds-table thead th { font-size: .875rem; color: var(--ds-muted); font-weight: 700; border-bottom: 1.5px solid var(--ds-line-strong); }
.ds-table tbody th { font-weight: 700; color: var(--ds-ink); }
.ds-table .ds-num { text-align: right; }
.ds-status { display: inline-block; padding: 0 12px; border-radius: 999px; font-size: .85rem; font-weight: 700; background: var(--ds-sage); color: var(--ds-ink); line-height: 1.8; }
.ds-status--pending { background: #FFF1C2; }
.ds-status--confirmed, .ds-status--processing { background: #DDEBF7; color: #17436B; }
.ds-status--shipped { background: #E8E0F6; color: #3F2A74; }
.ds-status--delivered, .ds-status--completed { background: #D6EEDC; color: #134A2D; }
.ds-status--cancelled, .ds-status--refunded { background: #F6D9DB; color: #7E1822; }

/* ---------- বিক্রেতা ---------- */
.ds-vhead { display: flex; gap: 20px; align-items: center; background: #fff; border: 1px solid var(--ds-line); border-radius: var(--ds-radius-lg); padding: 20px 24px; }
.ds-vhead > div { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ds-vhead__mark { width: 84px; height: 84px; font-size: 2.2rem; flex: none; }
.ds-vhead__logo { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; flex: none; }
.ds-vhead__text { max-width: 70ch; }
.ds-applygrid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 16px; align-items: start; }
.ds-applygrid .ds-steps li { background: rgba(255, 255, 255, .75); }

/* ---------- তথ্য-পেজ ---------- */
.ds-aboutgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ds-contactgrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.ds-contactlist { display: flex; flex-direction: column; gap: 14px; }
.ds-contactlist li { display: flex; gap: 12px; align-items: flex-start; }
.ds-contactlist li > span { display: flex; flex-direction: column; min-width: 0; overflow-wrap: anywhere; }
.ds-contactlist strong { color: var(--ds-ink); }
.ds-contactlist a { color: var(--ds-brand); text-decoration: underline; text-underline-offset: 3px; }
.ds-social-line { display: flex; gap: 16px; }
.ds-faq details { border-bottom: 1px solid var(--ds-line); }
.ds-faq details:last-child { border-bottom: 0; }
.ds-faq summary {
    list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 0;
    font-weight: 700; color: var(--ds-ink); cursor: pointer;
}
.ds-faq summary::-webkit-details-marker { display: none; }
.ds-faq summary .ds-i { transition: transform .18s; color: var(--ds-brand); }
.ds-faq details[open] summary .ds-i { transform: rotate(180deg); }
.ds-faq details p { padding: 0 0 16px; max-width: 70ch; line-height: 1.8; }
.ds-storegrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.ds-store .ds-btn { align-self: flex-start; }

/* ---------- ফুটার ---------- */
.ds-footer { background: var(--ds-ink); color: #CFE0C4; margin-top: 8px; }
.ds-footer a:hover { color: #fff; text-decoration: underline; }
.ds-footer__in { padding-block: 40px 20px; }
.ds-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 32px; }
.ds-footer__name { font-size: 1.6rem; font-weight: 800; color: #fff; line-height: 1.2; }
.ds-footer__tag { margin-top: 6px; max-width: 32ch; }
.ds-footer__h { font-size: 1rem; color: var(--ds-amber-soft) !important; margin-bottom: 12px; }
.ds-footer__links { display: flex; flex-direction: column; gap: 2px; }
.ds-footer__links a { display: inline-block; padding: 4px 0; }
.ds-footer__contact { display: flex; flex-direction: column; gap: 10px; }
.ds-footer__contact li { display: flex; gap: 10px; align-items: flex-start; overflow-wrap: anywhere; }
.ds-footer__contact .ds-i { margin-top: 3px; color: var(--ds-amber-soft); }
.ds-social { display: flex; gap: 10px; margin-top: 16px; }
.ds-social a { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, .1); color: #fff; }
.ds-social a:hover { background: var(--ds-amber); color: var(--ds-ink); text-decoration: none; }
.ds-footer__bar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin-top: 32px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .14); font-size: .9rem; }

/* ---------- এরর পেজ ---------- */
.ds-page-error { min-height: 100vh; display: grid; place-items: center; }
.ds-errorpage { text-align: center; padding: 40px 20px; max-width: 560px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.ds-errorpage__brand { font-weight: 800; color: var(--ds-brand); font-size: 1.3rem; }
.ds-errorpage__code { font-size: clamp(5rem, 3rem + 10vw, 9rem); font-weight: 800; line-height: 1; color: var(--ds-amber); text-shadow: 3px 3px 0 var(--ds-ink); }
.ds-errorpage__text { font-size: 1.1rem; max-width: 44ch; }

/* ---------- রেসপনসিভ ---------- */
@media (max-width: 1100px) {
    .ds-shell { grid-template-columns: minmax(0, 1fr); }
    .ds-sidebar { display: none; }
    .ds-header__in { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "menu logo tools" "search search search"; gap: 10px 12px; padding-block: 10px; }
    .ds-header .ds-header__menu { display: inline-grid; }
    .ds-search { max-width: none; }
    .ds-js .ds-subnav { display: none; }
    .ds-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ds-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ds-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .ds-product { grid-template-columns: minmax(0, 1fr); padding: 16px; gap: 20px; }
    .ds-cartgrid, .ds-checkout, .ds-applygrid, .ds-accountgrid, .ds-contactgrid { grid-template-columns: minmax(0, 1fr); }
    .ds-summary { position: static; }
    .ds-shopgrid { grid-template-columns: minmax(0, 1fr); }
    .ds-js .ds-shopbar__filter { display: inline-flex; }
    .ds-js .ds-filters { display: none; }
    .ds-js .ds-filters.is-open { display: block; }
    .ds-aboutgrid { grid-template-columns: minmax(0, 1fr); }
    .ds-slide { grid-template-columns: minmax(0, 1fr); padding: 24px 22px 64px; min-height: 0; gap: 16px; }
    .ds-slide__art { width: 150px; justify-self: start; order: -1; }
    .ds-cta { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 640px) {
    body.ds { font-size: 16px; }
    .ds-topbar__facts li:nth-child(n+3) { display: none; }
    .ds-topbar__tools > span { display: none; }
    .ds-logo__name { font-size: 1.45rem; }
    .ds-grid, .ds-grid--shop { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .ds-card__body { padding: 10px; }
    .ds-services { grid-template-columns: minmax(0, 1fr); }
    .ds-steps { grid-template-columns: minmax(0, 1fr); }
    .ds-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .ds-formgrid { grid-template-columns: minmax(0, 1fr); }
    .ds-panel { padding: 16px; }
    .ds-line { grid-template-columns: 72px minmax(0, 1fr) 44px; grid-template-areas: "media info remove" "qty qty total"; gap: 12px; }
    .ds-line__media { grid-area: media; width: 72px; height: 72px; }
    .ds-line__info { grid-area: info; }
    .ds-line__remove { grid-area: remove; align-self: start; }
    .ds-line__qty { grid-area: qty; }
    .ds-line__total { grid-area: total; }
    .ds-vhead { flex-direction: column; align-items: flex-start; }
    .ds-authcard { padding: 20px; }
    .ds-shopbar__sort { width: 100%; margin-left: 0; }
    .ds-shopbar__sort .ds-select { flex: 1; min-width: 0; }
    .ds-tabs__panel { padding: 16px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media print {
    .ds-topbar, .ds-header, .ds-sidebar, .ds-footer, .ds-demo, .ds-drawer { display: none !important; }
    body.ds { background: #fff; }
}

/* Dhaka Source live tweaks 2026-10-28 */
.ds-catgrid .ds-tiles{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
@media (min-width:768px){.ds-catgrid .ds-tiles{grid-template-columns:repeat(auto-fill,minmax(150px,190px))}}
/* old-layout pages: keep theme header/footer safe from legacy button styles */
.ds-header .ds-search__btn{padding:0!important;min-width:46px;letter-spacing:0}
.ds-header .ds-iconbtn,.ds-drawer .ds-iconbtn,.ds-alert__x{padding:0!important;min-width:0}
.ds-header .ds-i,.ds-footer .ds-i,.ds-drawer .ds-i,.ds-subnav .ds-i{flex-shrink:0}
.ds-oldpage:empty{display:none}
.ds-oldpage .ds-alert{margin-top:16px}
/* admin-written page content: use the site font and colours */
.ds-article .ds-prose *{font-family:inherit!important;color:inherit!important;background:transparent!important}
.ds-article .ds-prose h1,.ds-article .ds-prose h2,.ds-article .ds-prose h3{color:var(--ds-ink)!important;line-height:1.35}
/* round categories 2026-10-28 */
.ds-catimg{width:28px;height:28px;border-radius:50%;object-fit:cover;flex:0 0 28px;background:var(--ds-sage);border:1px solid var(--ds-line)}
.ds-catgrid .ds-tiles{grid-template-columns:repeat(auto-fill,minmax(calc(var(--ds-cat-size,96px) + 8px),1fr))!important;gap:18px 12px}
@media (min-width:768px){.ds-catgrid .ds-tiles{grid-template-columns:repeat(auto-fill,calc(var(--ds-cat-size,96px) + 24px))!important}}
.ds-catgrid .ds-tile{display:flex;flex-direction:column;align-items:center;text-align:center}
.ds-catgrid .ds-tile__media{width:var(--ds-cat-size,96px);height:var(--ds-cat-size,96px);aspect-ratio:auto;border-radius:50%;border:2px solid var(--ds-line);box-shadow:var(--ds-shadow);transition:border-color .15s,transform .15s}
.ds-catgrid .ds-tile:hover .ds-tile__media{border-color:var(--ds-brand);transform:translateY(-2px)}
.ds-catgrid .ds-tile__cap{margin-top:8px;text-align:center}
.ds-catgrid .ds-tile__media .ds-art{border-radius:50%}
/* categories: one centered row on all screens 2026-10-28 */
.ds-catgrid .ds-tiles{display:flex!important;flex-wrap:nowrap!important;justify-content:flex-start;gap:16px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding:4px 2px 8px;scrollbar-width:thin}
.ds-catgrid .ds-tiles > li{flex:0 0 auto;scroll-snap-align:center;width:calc(var(--ds-cat-size,96px) + 12px)}
.ds-catgrid .ds-tiles > li:first-child{margin-left:auto}
.ds-catgrid .ds-tiles > li:last-child{margin-right:auto}
.ds-catgrid .ds-tile__cap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
@media (max-width:640px){
  .ds-catgrid .ds-tiles{gap:10px}
  .ds-catgrid .ds-tiles > li{width:calc(min(var(--ds-cat-size,96px),72px) + 8px)}
  .ds-catgrid .ds-tile__media{width:min(var(--ds-cat-size,96px),72px);height:min(var(--ds-cat-size,96px),72px)}
  .ds-catgrid .ds-tile__cap{font-size:.8rem}
}
.ds-catgrid .ds-catcard__h{text-align:center}
/* auto-scrolling category row */
.ds-catgrid .ds-tiles{scrollbar-width:none;scroll-snap-type:none}
.ds-catgrid .ds-tiles::-webkit-scrollbar{display:none}
.ds-catgrid .ds-tiles.is-auto > li:first-child{margin-left:0}
.ds-catgrid .ds-tiles.is-auto > li:last-child{margin-right:0}
.ds-catgrid .ds-tiles.is-auto{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 24px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 24px),transparent 100%)}
/* footer: white headings and icons */
.ds-footer .ds-footer__h{color:#fff!important}
.ds-footer .ds-footer__contact .ds-i,.ds-footer .ds-i{color:#fff!important;opacity:1}
/* home product rows: 8 on desktop (2x4), 4 on mobile (2x2) */
@media (max-width:767px){.ds-page-home .ds-panel .ds-grid > :nth-child(n+5){display:none}}
/* ---------- মোবাইল ফুটার: গোছানো, দুই কলাম ---------- */
@media (max-width: 640px) {
    .ds-footer__in { padding-block: 28px 16px; }
    .ds-footer .ds-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 18px; }
    .ds-footer__brand { grid-column: 1 / -1; text-align: center; padding-bottom: 20px; border-bottom: 1px solid rgba(255, 255, 255, .14); }
    .ds-footer__name { font-size: 1.45rem; }
    .ds-footer__tag { margin: 4px auto 0; font-size: .92rem; }
    .ds-footer__brand .ds-social { justify-content: center; margin-top: 12px; }
    .ds-footer__h { font-size: .98rem; margin-bottom: 8px; }
    .ds-footer__links { gap: 0; }
    .ds-footer__links a { padding: 5px 0; font-size: .9rem; line-height: 1.35; }
    .ds-footer__grid > div:last-child { grid-column: 1 / -1; padding: 16px; border-radius: 14px; background: rgba(255, 255, 255, .06); }
    .ds-footer__contact { gap: 10px; font-size: .92rem; }
    .ds-footer__bar { flex-direction: column; align-items: center; text-align: center; gap: 4px; margin-top: 22px; font-size: .82rem; }
}
/* ফুটারের লোগো */
.ds-footer__logo { display: inline-block; margin-bottom: 8px; }
.ds-footer__logo img { display: block; }
/* ফুটারের নিচে SSLCommerz পেমেন্ট আইকন */
.ds-footer__ssl { margin-top: 18px; background: #fff; border-radius: 12px; padding: 8px 10px; }
.ds-footer__ssl img { display: block; width: 100%; height: auto; }
@media (max-width: 640px) { .ds-footer__ssl { padding: 6px; } }
/* মোবাইলে SSLCommerz পট্টি দুই লাইনে */
.ds-ssl-half { display: none; }
@media (max-width: 640px) {
    .ds-footer__ssl .ds-ssl-full { display: none; }
    .ds-ssl-half { display: block; overflow: hidden; --ds-ssl-split: 50%; }
    .ds-ssl-half img { width: 200%; max-width: none; }
    .ds-ssl-half--2 { margin-top: 4px; }
    .ds-ssl-half--2 img { margin-left: -100%; }
}
/* ---------- বিক্রেতার ঘর (হোমপেজ) ---------- */
.ds-vtile .ds-tile__media { display: grid; place-items: center; background: var(--ds-brand-tint, #E8F1EC); }
.ds-vtile__icon { width: 42%; height: 42%; color: var(--ds-brand, #1F5D43); }
.ds-vtile__sub { display: block; font-size: .72rem; color: var(--ds-muted, #6b7c75); line-height: 1.2; margin-top: 2px; text-align: center; }
.ds-vtile--cta .ds-tile__media { background: #fff; border: 2px dashed var(--ds-brand, #1F5D43); }
.ds-vtile--cta .ds-tile__cap { color: var(--ds-brand, #1F5D43); }

/* ---------- কার্ডে বিক্রেতার নাম ---------- */
.ds-card__seller { display: flex; align-items: center; gap: 5px; margin: 2px 0 6px; font-size: .8rem; color: var(--ds-muted, #6b7c75); min-width: 0; }
.ds-card__seller .ds-i { width: 14px; height: 14px; flex-shrink: 0; color: var(--ds-brand, #1F5D43); }
.ds-card__seller a, .ds-card__seller span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds-card__seller a { color: var(--ds-brand, #1F5D43); font-weight: 600; }

/* ---------- পণ্যের পেজে বিক্রেতা ---------- */
.ds-product__seller { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 4px 0 10px; font-size: .95rem; color: var(--ds-muted, #6b7c75); }
.ds-product__seller .ds-i { width: 18px; height: 18px; color: var(--ds-brand, #1F5D43); }
.ds-product__seller a, .ds-product__seller strong { color: var(--ds-brand, #1F5D43); font-weight: 700; }

/* ---------- দাম তুলনা ---------- */
.ds-compare__note { font-size: .85rem; color: var(--ds-muted, #6b7c75); }
.ds-compare__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ds-compare__row { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 12px; border: 1px solid var(--ds-line, #e3ebe5); border-radius: 12px; background: #fff; }
.ds-compare__row.is-current { border-color: var(--ds-brand, #1F5D43); background: var(--ds-brand-tint, #F1F7F3); }
.ds-compare__row.is-cheapest .ds-compare__price strong { color: #1F7A44; }
.ds-compare__media { width: 56px; height: 56px; border-radius: 10px; overflow: hidden; background: var(--ds-sage, #eef3ef); display: block; }
.ds-compare__media img, .ds-compare__media .ds-art { width: 100%; height: 100%; object-fit: cover; }
.ds-compare__info { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ds-compare__name { font-weight: 700; color: var(--ds-ink, #14302A); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds-compare__seller { display: flex; align-items: center; gap: 4px; font-size: .82rem; color: var(--ds-muted, #6b7c75); }
.ds-compare__seller .ds-i { width: 13px; height: 13px; color: var(--ds-brand, #1F5D43); }
.ds-compare__tags { display: flex; gap: 4px; flex-wrap: wrap; }
.ds-compare__tag { font-size: .7rem; font-weight: 700; padding: 1px 8px; border-radius: 20px; }
.ds-compare__tag--cur { background: var(--ds-brand, #1F5D43); color: #fff; }
.ds-compare__tag--best { background: #E3F4E8; color: #1F7A44; }
.ds-compare__price { text-align: right; display: flex; flex-direction: column; align-items: flex-end; line-height: 1.25; }
.ds-compare__price strong { font-size: 1.05rem; color: var(--ds-ink, #14302A); }
.ds-compare__price s { font-size: .78rem; color: var(--ds-muted, #6b7c75); }
.ds-compare__price small { font-size: .72rem; color: #B03A2E; }
@media (max-width: 480px) {
    .ds-compare__row { grid-template-columns: 48px minmax(0, 1fr) auto; gap: 10px; padding: 8px 10px; }
    .ds-compare__media { width: 48px; height: 48px; }
    .ds-compare__name { font-size: .9rem; }
}

/* ---------- ছবি জুম ---------- */
.ds-gallery__main { position: relative; overflow: hidden; }
.ds-gallery__main.is-zoomable img[data-ds-zoom] { transition: transform .15s ease-out; will-change: transform; }
.ds-zoombtn { position: absolute; right: 10px; bottom: 10px; display: inline-flex; align-items: center; gap: 5px; padding: 6px 12px; border: 0; border-radius: 30px; background: rgba(255, 255, 255, .92); color: var(--ds-ink, #14302A); font-weight: 700; font-size: .82rem; box-shadow: 0 2px 10px rgba(0, 0, 0, .15); cursor: pointer; z-index: 2; }
.ds-zoombtn .ds-i { width: 16px; height: 16px; }
html.ds-lb-open, html.ds-lb-open body { overflow: hidden; }
.ds-lightbox { position: fixed; inset: 0; z-index: 9999; background: rgba(10, 20, 16, .94); display: flex; align-items: center; justify-content: center; }
.ds-lightbox[hidden] { display: none; }
.ds-lightbox__stage { position: absolute; inset: 56px 0 40px; display: flex; align-items: center; justify-content: center; overflow: hidden; touch-action: none; cursor: zoom-in; }
.ds-lightbox.is-zoomed .ds-lightbox__stage { cursor: grab; }
.ds-lightbox__stage img { max-width: 100%; max-height: 100%; object-fit: contain; user-select: none; -webkit-user-drag: none; transition: transform .12s ease-out; }
.ds-lightbox__bar { position: absolute; top: 0; left: 0; right: 0; height: 56px; display: flex; align-items: center; gap: 8px; padding: 0 12px; color: #fff; z-index: 2; }
.ds-lightbox__count { margin-right: auto; font-weight: 600; }
.ds-lightbox__btn, .ds-lightbox__nav { width: 42px; height: 42px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .14); color: #fff; display: grid; place-items: center; cursor: pointer; }
.ds-lightbox__btn .ds-i, .ds-lightbox__nav .ds-i { width: 20px; height: 20px; color: #fff; }
.ds-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; display: none; }
.ds-lightbox.has-many .ds-lightbox__nav { display: grid; }
.ds-lightbox__nav--prev { left: 10px; }
.ds-lightbox__nav--next { right: 10px; }
.ds-lightbox__hint { position: absolute; bottom: 10px; left: 0; right: 0; text-align: center; color: rgba(255, 255, 255, .7); font-size: .8rem; margin: 0; }
@media (hover: hover) and (pointer: fine) { .ds-lightbox__hint { display: none; } }
/* কার্টে যোগের ছোট বার্তা */
.ds-ctoast { position: fixed; left: 50%; bottom: 20px; z-index: 9998; width: min(420px, calc(100% - 24px)); transform: translate(-50%, 140%); opacity: 0; transition: transform .25s ease, opacity .25s ease; background: #fff; border-radius: 14px; box-shadow: 0 10px 30px rgba(20, 48, 42, .22); padding: 12px 14px; border-left: 5px solid var(--ds-brand, #1F5D43); }
.ds-ctoast.is-err { border-left-color: #B03A2E; }
.ds-ctoast.is-show { transform: translate(-50%, 0); opacity: 1; }
.ds-ctoast__msg { margin: 0; font-weight: 700; color: var(--ds-ink, #14302A); }
.ds-ctoast.is-err .ds-ctoast__msg { color: #B03A2E; }
.ds-ctoast__acts { display: flex; gap: 8px; align-items: center; margin-top: 10px; }
.ds-ctoast__btn { flex: 1; text-align: center; padding: 8px 10px; border-radius: 30px; border: 1px solid var(--ds-brand, #1F5D43); color: var(--ds-brand, #1F5D43); font-weight: 700; font-size: .9rem; text-decoration: none; }
.ds-ctoast__btn--main { background: var(--ds-brand, #1F5D43); color: #fff; }
.ds-ctoast__x { border: 0; background: transparent; font-size: 1.4rem; line-height: 1; color: var(--ds-muted, #6b7c75); cursor: pointer; padding: 0 4px; }
.ds-count.ds-bump { animation: dsBump .4s ease; }
@keyframes dsBump { 0% { transform: scale(1); } 40% { transform: scale(1.45); } 100% { transform: scale(1); } }
button.is-loading { opacity: .7; cursor: progress; }
/* কার্ট: মুছে ফেলার বোতাম ও পরিমাণ */
.ds-cart-del { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; padding: 6px 12px; border: 1px solid #F1C7C1; border-radius: 30px; background: #FDF0EE; color: #B03A2E; font-weight: 700; font-size: .85rem; line-height: 1; cursor: pointer; transition: background .15s, color .15s; }
.ds-cart-del:hover, .ds-cart-del:focus-visible { background: #B03A2E; border-color: #B03A2E; color: #fff; }
.tf-cart-item_quantity { min-width: 130px; }
.tf-cart-item_quantity .wg-quantity { display: inline-flex; align-items: center; justify-content: space-between; width: 120px; max-width: 100%; overflow: visible; }
.tf-cart-item_quantity .wg-quantity .btn-quantity { flex: 0 0 32px; width: 32px; height: 32px; display: inline-grid; place-items: center; cursor: pointer; font-size: 1.1rem; font-weight: 700; }
.tf-cart-item_quantity .wg-quantity input { width: 36px; text-align: center; }
.tf-cart-item_quantity .wg-quantity { width: 124px !important; overflow: visible !important; padding: 0 4px !important; }
.tf-cart-item_quantity .wg-quantity .btn-quantity { width: 32px !important; flex: 0 0 32px !important; }
.tf-cart-item_quantity .wg-quantity input { width: 40px !important; flex: 0 0 40px; }
/* ছবি দিয়ে খোঁজা */
.ds-search__cam { flex: 0 0 auto; display: inline-grid; place-items: center; width: 44px; border: 0; background: transparent; color: var(--ds-brand, #1F5D43); cursor: pointer; padding: 0 !important; min-width: 44px; }
.ds-search__cam:hover { color: var(--ds-ink, #14302A); background: var(--ds-brand-tint, #E8F1EC); }
.ds-search__cam svg { width: 22px; height: 22px; }
.ds-imgov { position: fixed; inset: 0; z-index: 10000; background: rgba(10, 20, 16, .55); display: grid; place-items: center; padding: 16px; }
.ds-imgov[hidden] { display: none; }
.ds-imgov__card { background: #fff; border-radius: 16px; padding: 22px 24px; max-width: 360px; width: 100%; text-align: center; box-shadow: 0 16px 40px rgba(0, 0, 0, .25); }
.ds-imgov__card p { margin: 10px 0 0; font-weight: 700; color: var(--ds-ink, #14302A); }
.ds-imgov__card.is-err p { margin: 0 0 14px; }
.ds-imgov__spin { display: inline-block; width: 38px; height: 38px; border-radius: 50%; border: 4px solid var(--ds-brand-tint, #E8F1EC); border-top-color: var(--ds-brand, #1F5D43); animation: dsSpin .8s linear infinite; }
@keyframes dsSpin { to { transform: rotate(360deg); } }
.ds-imgq { display: flex; gap: 14px; align-items: center; background: #fff; border: 1px solid var(--ds-line, #e3ebe5); border-radius: 14px; padding: 12px; margin-bottom: 16px; }
.ds-imgq__pic { flex: 0 0 auto; width: 84px; height: 84px; border-radius: 10px; overflow: hidden; background: var(--ds-sage, #eef3ef); }
.ds-imgq__pic img { width: 100%; height: 100%; object-fit: cover; }
.ds-imgq p { margin: 0 0 8px; color: var(--ds-muted, #6b7c75); font-size: .92rem; }
.ds-imgq__again { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--ds-brand, #1F5D43); color: var(--ds-brand, #1F5D43); background: #fff; border-radius: 30px; padding: 6px 14px; font-weight: 700; cursor: pointer; }
/* মোবাইলে আঙুলে চাপার জায়গা বড় (কমপক্ষে ৪৪px) */
@media (max-width: 767px) {
    .ds-sechead .ds-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; }
    .ds-footer__links a { padding: 10px 0; }
    .ds-crumbs a, .ds-breadcrumbs a, nav[aria-label] ol a { display: inline-block; padding: 10px 0; }
    .ds-card__seller a { display: inline-block; padding: 6px 0; }
}