:root{
  --c-primary:#4F46E5;--c-primary-600:#4338CA;--c-primary-700:#3730A3;--c-primary-50:#EEF2FF;
  --c-accent:#F59E0B;--c-accent-600:#D97706;--c-accent-50:#FFFBEB;
  --c-success:#16A34A;--c-success-600:#15803D;--c-success-50:#F0FDF4;
  --c-error:#DC2626;--c-error-50:#FEF2F2;
  --c-ink:#0F172A;--c-body:#334155;--c-muted:#64748B;--c-line:#E2E8F0;
  --c-bg:#FFFFFF;--c-bg-soft:#F8FAFC;--c-topbar:#0F172A;
  --font-sans:'Plus Jakarta Sans','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;
  --r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-full:999px;
  --sh-sm:0 1px 2px rgba(15,23,42,.06);--sh-md:0 4px 12px rgba(15,23,42,.08);--sh-lg:0 10px 30px rgba(15,23,42,.12);
}

/* ==========================================================================
   Statbo Statbo-style storefront — mobile-first stylesheet
   ==========================================================================
   Base styles target mobile (320px+).
   @media (min-width: 600px)  adds tablet adjustments.
   @media (min-width: 900px)  adds desktop adjustments.
   ========================================================================== */

/* ---------- Reset / Globals (mobile-first) ---------- */
body.statbo {
  font-family: var(--font-sans);
  color: #1a1a1a;
  background: #ffffff;
  font-size: 14px;
  line-height: 1.45;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
}
body.statbo #wrapper { background: #ffffff; }
body.statbo .header-wrapper, body.statbo #header { display:none !important; }
body.statbo .footer-wrapper, body.statbo .absolute-footer { display:none !important; }
.statbo *, .statbo *::before, .statbo *::after { box-sizing: border-box; }
.statbo a { text-decoration: none; color: inherit; -webkit-tap-highlight-color: rgba(79,70,229,.12); }
.statbo button { font-family: inherit; -webkit-tap-highlight-color: rgba(79,70,229,.12); touch-action: manipulation; }
.statbo img { max-width: 100%; display: block; }
.statbo :focus-visible { outline: 2px solid var(--c-primary); outline-offset: 2px; border-radius: 4px; }

.sb-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* ---------- Top bar (mobile-first) ---------- */
.sb-topbar {
  background: var(--c-topbar); color: #fff;
  padding: 10px 14px;
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  grid-template-rows: auto auto;
  grid-template-areas:
    "logo deliver wishlist cart"
    "search search search search";
  gap: 8px 12px;
  align-items: center;
  position: sticky; top: 0; z-index: 200;
}
.sb-logo {
  grid-area: logo;
  font-weight: 800; font-size: 22px; color: #ffffff; letter-spacing: -1px;
  white-space: nowrap;
}
.sb-logo img { max-height: 36px; width: auto; display: block; }
.sb-deliver {
  grid-area: deliver;
  display: flex; flex-direction: column; align-items: flex-start;
  background: transparent; border: 0; color: #fff;
  cursor: pointer; padding: 4px 6px;
  text-align: left; min-width: 0; max-width: 100%;
}
.sb-deliver-strong { font-weight: 700; font-size: 12px; line-height: 1.15; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.sb-deliver-loc    { opacity: .85; font-size: 10px; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.sb-cart {
  grid-area: cart;
  background: var(--c-primary); color: #fff;
  padding: 8px 12px; border-radius: 10px;
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 600;
  min-height: 36px;
}
.sb-search { grid-area: search; background: #fff; color: #1a1a1a; border-radius: 10px; padding: 6px 12px; display: flex; align-items: center; gap: 8px; }
.sb-search .aws-container { width: 100% !important; max-width: none !important; }
.sb-search input { flex: 1; border: 0; outline: 0; font-size: 14px; background: transparent; min-width: 0; min-height: 28px; }
.sb-account { display: none; } /* hidden on mobile, shown on tablet+ */

@media (min-width: 600px) {
  .sb-topbar {
    grid-template-columns: auto auto 1fr auto auto auto;
    grid-template-rows: auto;
    grid-template-areas: "logo deliver search wishlist account cart";
    padding: 12px 18px;
    gap: 16px;
  }
  .sb-logo { font-size: 26px; }
  .sb-logo img { max-height: 40px; }
  .sb-deliver-strong { font-size: 13px; }
  .sb-deliver-loc    { font-size: 11px; }
  .sb-search { padding: 8px 14px; max-width: 480px; flex: 1; }
  .sb-account { display: inline-block; grid-area: account; font-size: 14px; color: #fff; padding: 4px 6px; }
  .sb-cart { padding: 10px 16px; font-size: 13px; }
}
@media (min-width: 900px) {
  .sb-topbar { padding: 12px 24px; gap: 24px; }
  .sb-logo { font-size: 28px; }
  .sb-search { max-width: 720px; }
  .sb-cart { padding: 12px 18px; }
}

/* ---------- Pincode modal (mobile-first bottom-sheet on phones) ---------- */
.sb-pincode-modal[hidden] { display: none; }
.sb-pincode-modal {
  position: fixed; inset: 0; background: rgba(0,0,0,.55);
  z-index: 1000; display: flex; align-items: flex-end; justify-content: center;
  padding: 0; animation: sb-fade-in .15s;
}
.sb-pincode-modal-inner {
  background: #fff;
  border-radius: 16px 16px 0 0;
  padding: 22px 18px 28px;
  width: 100%; max-width: 100%;
  box-shadow: 0 -8px 28px rgba(0,0,0,.18);
  position: relative;
  animation: sb-slide-up .2s ease-out;
}
@keyframes sb-fade-in { from { opacity: 0 } to { opacity: 1 } }
@keyframes sb-slide-up { from { transform: translateY(20px); opacity: 0 } to { transform: translateY(0); opacity: 1 } }
.sb-modal-close { position: absolute; top: 10px; right: 12px; background: transparent; border: 0; font-size: 26px; cursor: pointer; color: #666; line-height: 1; padding: 6px 10px; }
.sb-pincode-modal h3 { margin: 0 0 6px; font-size: 18px; font-weight: 700; padding-right: 30px; }
.sb-pincode-modal p  { margin: 0 0 14px; font-size: 13px; color: #6b7280; }
.sb-pincode-modal form { display: flex; gap: 8px; }
.sb-pincode-modal input[type=text] { flex: 1; border: 1px solid #d1d5db; border-radius: 10px; padding: 12px 14px; font-size: 16px; outline: 0; min-height: 44px; }
.sb-pincode-modal input[type=text]:focus { border-color: var(--c-primary); }
.sb-pincode-modal button[type=submit] { background: var(--c-primary); color: #fff; border: 0; padding: 12px 20px; border-radius: 10px; font-weight: 700; font-size: 15px; cursor: pointer; min-height: 44px; min-width: 80px; }
.sb-pincode-modal button[type=submit]:hover { background: var(--c-primary-600); }
.sb-pincode-result { margin-top: 12px; font-size: 13px; }
.sb-pincode-ok  { color: var(--c-primary-600); font-weight: 600; }
.sb-pincode-bad { color: #b91c1c; font-weight: 600; }

/* ---------- Location picker (saved addresses + inline add form) ---------- */
.sb-loc-modal .sb-pincode-modal-inner { max-height: 88vh; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.sb-loc-list { display: flex; flex-direction: column; gap: 10px; margin: 6px 0 12px; }
.sb-loc-card { display: grid; grid-template-columns: 26px 1fr auto; gap: 12px; align-items: start;
  border: 1.5px solid var(--c-line); border-radius: var(--r-md); padding: 12px 14px; background: var(--c-bg); }
.sb-loc-card.is-selected { border-color: var(--c-primary); background: var(--c-primary-50); }
.sb-loc-card-icon { color: var(--c-primary); padding-top: 1px; }
.sb-loc-card-icon .sb-ico { color: var(--c-primary); }
.sb-loc-card-label { font-size: 14px; font-weight: 700; color: var(--c-ink); margin-bottom: 2px; }
.sb-loc-card-lines { font-size: 12px; color: var(--c-muted); line-height: 1.45; }
.sb-loc-deliver { align-self: center; white-space: nowrap; font-family: inherit; cursor: pointer;
  border: 1px solid var(--c-primary); color: var(--c-primary); background: var(--c-bg);
  border-radius: var(--r-sm); padding: 8px 12px; font-size: 12px; font-weight: 700; min-height: 36px; }
.sb-loc-card.is-selected .sb-loc-deliver { background: var(--c-primary); color: #fff; }
.sb-loc-deliver:active { background: var(--c-primary-50); }
.sb-loc-card-actions { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 8px; }
.sb-loc-del { background: transparent; border: 0; color: var(--c-muted); cursor: pointer; padding: 4px;
  line-height: 0; border-radius: var(--r-sm); min-height: 28px; min-width: 28px; display: inline-flex; align-items: center; justify-content: center; }
.sb-loc-del:active { background: var(--c-bg-soft); color: var(--c-error); }
.sb-loc-del .sb-ico { color: inherit; }
.sb-loc-add-toggle { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%;
  font-family: inherit; cursor: pointer; background: transparent; border: 1px dashed var(--c-line);
  color: var(--c-primary); border-radius: var(--r-md); padding: 12px; font-size: 14px; font-weight: 700; min-height: 46px; }
.sb-loc-add-toggle[hidden] { display: none; }
.sb-loc-add-toggle:active { background: var(--c-bg-soft); border-color: var(--c-primary); }
.sb-loc-add-toggle .sb-ico { color: var(--c-primary); }
.sb-loc-form { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.sb-loc-form[hidden] { display: none; }
.sb-loc-row { display: flex; gap: 10px; }
.sb-loc-row .sb-loc-field { flex: 1; min-width: 0; }
.sb-loc-field input { width: 100%; border: 1px solid var(--c-line); border-radius: var(--r-md);
  padding: 12px 14px; font-size: 16px; outline: 0; min-height: 46px; font-family: inherit;
  background: var(--c-bg); color: var(--c-ink); }
.sb-loc-field input:focus { border-color: var(--c-primary); box-shadow: 0 0 0 3px var(--c-primary-50); }
.sb-loc-save { background: var(--c-primary); color: #fff; border: 0; border-radius: var(--r-md);
  padding: 13px 18px; font-weight: 700; font-size: 15px; cursor: pointer; min-height: 48px; font-family: inherit; }
.sb-loc-save:hover { background: var(--c-primary-600); }
.sb-loc-result { font-size: 13px; min-height: 16px; }
.sb-loc-ok  { color: var(--c-success); font-weight: 600; }
.sb-loc-bad { color: var(--c-error); font-weight: 600; }

/* Google Maps location picker (inside the add-address form) */
.sb-loc-geo { margin-bottom: 14px; }
.sb-loc-geo-search { width: 100%; border: 1px solid var(--c-line); border-radius: var(--r-md);
  padding: 12px 14px; font-size: 16px; min-height: 46px; outline: 0; font-family: inherit;
  background: var(--c-bg); color: var(--c-ink); margin-bottom: 10px; }
.sb-loc-geo-search:focus { border-color: var(--c-primary); box-shadow: 0 0 0 3px var(--c-primary-50); }
.sb-loc-geo-detect { display: inline-flex; align-items: center; gap: 6px; font-family: inherit; cursor: pointer;
  background: var(--c-primary-50); color: var(--c-primary); border: 1px solid var(--c-primary);
  border-radius: var(--r-md); padding: 10px 14px; font-size: 13px; font-weight: 700; min-height: 42px; margin-bottom: 10px; }
.sb-loc-geo-detect:active { background: var(--c-primary); color: #fff; }
.sb-loc-geo-detect.is-loading { opacity: .65; pointer-events: none; }
.sb-loc-geo-detect .sb-ico { color: inherit; }
.sb-loc-map { width: 100%; height: 200px; border-radius: var(--r-md); border: 1px solid var(--c-line);
  margin-bottom: 4px; background: var(--c-bg-soft); overflow: hidden; }
/* Google Places autocomplete dropdown must sit above the modal (z-index 1000) */
.pac-container { z-index: 100001; border-radius: var(--r-md); margin-top: 2px; box-shadow: var(--sh-lg); font-family: var(--font-sans); }

/* Inline address manager on the My Account -> Addresses page */
.sb-loc-manager { max-width: 560px; }
.sb-loc-manager h2 { font-size: 18px; font-weight: 700; margin: 0 0 4px; color: var(--c-ink); }
.sb-loc-manager-sub { font-size: 13px; color: var(--c-muted); margin: 0 0 16px; }
.sb-loc-manager .sb-loc-list { margin-top: 0; }
.sb-loc-manager .sb-loc-form { margin-top: 14px; }

/* ===================== My Account: modern quick-commerce ===================== */
.woocommerce-account .sb-main-wrap { background: var(--c-bg-soft); }

/* ---- Auth (logged-out): centered branded card ---- */
.woocommerce-account:not(.logged-in) .woocommerce { max-width: 460px; margin: 24px auto 40px; }
.sb-auth-head { text-align: center; margin-bottom: 18px; }
.sb-auth-logo { max-height: 96px; width: auto; max-width: 88%; margin: 0 auto 16px; display: block; }
.sb-auth-title { font-size: 24px; font-weight: 800; color: var(--c-ink); margin: 0 0 6px; letter-spacing: -.01em; }
.sb-auth-sub { font-size: 14px; color: var(--c-muted); margin: 0 auto 18px; line-height: 1.5; max-width: 340px; }
.sb-auth-tabs { display: flex; gap: 4px; background: var(--c-bg-soft); border: 1px solid var(--c-line); padding: 4px; border-radius: var(--r-full); max-width: 300px; margin: 0 auto; }
.sb-auth-tab { flex: 1; border: 0; background: transparent; font-family: inherit; font-weight: 700; font-size: 14px; padding: 10px 12px; border-radius: var(--r-full); color: var(--c-muted); cursor: pointer; min-height: 42px; }
.sb-auth-tab.is-active { background: var(--c-primary); color: #fff; box-shadow: var(--sh-sm); }
.woocommerce-account .account-container { background: var(--c-bg); border: 1px solid var(--c-line); border-radius: var(--r-lg); padding: 22px 20px; box-shadow: var(--sh-md); }
.woocommerce-account .col2-set, .woocommerce-account .col2-set.row-divided { display: block; margin: 0; }
.woocommerce-account .col2-set .col { padding: 0 !important; max-width: 100%; width: 100%; flex: 0 0 100%; border: 0 !important; }
.account-login-inner h2, .account-register-inner h2 { font-size: 18px; font-weight: 700; color: var(--c-ink); margin: 0 0 16px; letter-spacing: 0; text-transform: none; }
.woocommerce-account .woocommerce-form .form-row { margin: 0 0 14px; padding: 0; }
.woocommerce-account .woocommerce-form label,
.woocommerce-account .woocommerce-form-row > label { font-size: 13px; font-weight: 600; color: var(--c-body); margin: 0 0 6px; display: block; }
.woocommerce-account .woocommerce-form .input-text,
.woocommerce-account .woocommerce-form input[type=text],
.woocommerce-account .woocommerce-form input[type=email],
.woocommerce-account .woocommerce-form input[type=password] {
  width: 100%; border: 1px solid var(--c-line); border-radius: var(--r-md); padding: 12px 14px;
  font-size: 16px; min-height: 48px; background: var(--c-bg); color: var(--c-ink); box-shadow: none; }
.woocommerce-account .woocommerce-form .input-text:focus,
.woocommerce-account .woocommerce-form input:focus { border-color: var(--c-primary); box-shadow: 0 0 0 3px var(--c-primary-50); outline: 0; }
.woocommerce-account .woocommerce-form .button,
.woocommerce-account .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-form-register__submit {
  width: 100%; background: var(--c-primary); color: #fff; border: 0; border-radius: var(--r-md);
  padding: 14px 18px; font-weight: 700; font-size: 15px; min-height: 50px; cursor: pointer; margin-top: 4px; }
.woocommerce-account .woocommerce-form .button:hover { background: var(--c-primary-600); color: #fff; }
.woocommerce-form-login__rememberme { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--c-muted); margin: 0 0 8px; }
.woocommerce-form-login__rememberme input { width: auto; min-height: 0; }
.woocommerce-LostPassword { text-align: center; margin: 14px 0 0; font-size: 13px; }
.woocommerce-LostPassword a { color: var(--c-primary); font-weight: 600; }
.googlesitekit-sign-in-with-google__frontend-output-button { display: flex; justify-content: center; margin: 0 0 14px; }

/* ---- Dashboard (logged-in): style WITHIN Flatsome's .row.vertical-tabs columns ---- */
.woocommerce-account .row.vertical-tabs { margin-top: 20px; }
/* Sidebar profile (Flatsome's account-user) */
.account-user.circle { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 4px 6px 16px; }
.account-user .image { margin: 0 !important; display: block; }
.account-user .image img { width: 64px; height: 64px; border-radius: var(--r-full); display: block; }
.account-user .user-name { display: block; font-size: 14px; font-weight: 700; color: var(--c-ink); line-height: 1.3; word-break: break-word; }
.account-user .user-id { display: none; }
/* Soften Flatsome's hard column divider (the nav card already separates) */
.woocommerce-account .row.vertical-tabs .col-border { border-right: 0 !important; }
/* Account content forms: modern inputs + buttons */
.woocommerce-MyAccount-content .input-text,
.woocommerce-MyAccount-content input[type=text],
.woocommerce-MyAccount-content input[type=email],
.woocommerce-MyAccount-content input[type=password],
.woocommerce-MyAccount-content input[type=tel],
.woocommerce-MyAccount-content select,
.woocommerce-MyAccount-content textarea {
  width: 100%; border: 1px solid var(--c-line); border-radius: var(--r-md); padding: 12px 14px;
  font-size: 16px; min-height: 46px; background: var(--c-bg); color: var(--c-ink); }
.woocommerce-MyAccount-content input:focus,
.woocommerce-MyAccount-content select:focus,
.woocommerce-MyAccount-content textarea:focus { border-color: var(--c-primary); box-shadow: 0 0 0 3px var(--c-primary-50); outline: 0; }
.woocommerce-MyAccount-content .woocommerce-Button,
.woocommerce-MyAccount-content .woocommerce-button,
.woocommerce-MyAccount-content button[type=submit]:not(.sb-loc-save),
.woocommerce-MyAccount-content .button {
  display: inline-flex; align-items: center; justify-content: center; background: var(--c-primary); color: #fff;
  border: 0; border-radius: var(--r-md); padding: 11px 20px; font-weight: 700; font-size: 14px; min-height: 44px; cursor: pointer; }
.woocommerce-MyAccount-content .woocommerce-Button:hover,
.woocommerce-MyAccount-content button[type=submit]:not(.sb-loc-save):hover,
.woocommerce-MyAccount-content .button:hover { background: var(--c-primary-600); color: #fff; }
/* Orders table polish */
.woocommerce-MyAccount-content table.shop_table { width: 100%; border: 1px solid var(--c-line); border-radius: var(--r-md); border-collapse: separate; border-spacing: 0; overflow: hidden; }
.woocommerce-MyAccount-content table.shop_table th { background: var(--c-bg-soft); font-size: 12px; text-transform: uppercase; letter-spacing: .03em; color: var(--c-muted); padding: 12px; }
.woocommerce-MyAccount-content table.shop_table td { padding: 12px; border-top: 1px solid var(--c-line); }

/* --- Account/auth overflow safety: keep every field inside its card/column --- */
.woocommerce-account .account-container,
.woocommerce-account .account-container *,
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-content * { box-sizing: border-box; }
.woocommerce-account .account-container .col2-set,
.woocommerce-account .account-container .row { margin-left: 0 !important; margin-right: 0 !important; max-width: 100% !important; }
.woocommerce-account .account-container .col { padding-left: 0 !important; padding-right: 0 !important; max-width: 100% !important; flex: 0 0 100% !important; }
.woocommerce-account .account-login-inner,
.woocommerce-account .account-register-inner,
.woocommerce-account .woocommerce-form { width: 100%; max-width: 100%; }
.woocommerce-account .woocommerce-form .form-row { margin-left: 0; margin-right: 0; max-width: 100%; }
.woocommerce-account .woocommerce-form .input-text,
.woocommerce-account .woocommerce-form input[type=text],
.woocommerce-account .woocommerce-form input[type=email],
.woocommerce-account .woocommerce-form input[type=password],
.woocommerce-account .woocommerce-form .button { width: 100%; max-width: 100%; }
.woocommerce-MyAccount-content { overflow-wrap: break-word; }
.woocommerce-MyAccount-content table.shop_table { display: table; }
@media (max-width: 599px) { .woocommerce-MyAccount-content table.shop_table { display: block; overflow-x: auto; } }
.woocommerce-MyAccount-navigation ul.account-nav,
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 6px; border: 1px solid var(--c-line);
  border-radius: var(--r-lg); background: var(--c-bg); box-shadow: var(--sh-sm); }
.woocommerce-MyAccount-navigation-link { border: 0 !important; margin: 0; }
.woocommerce-MyAccount-navigation-link a { display: flex; align-items: center; gap: 12px; padding: 12px 14px;
  border-radius: var(--r-md); font-weight: 600; font-size: 14px; color: var(--c-body); text-decoration: none;
  min-height: 46px; text-transform: none; letter-spacing: 0; }
.woocommerce-MyAccount-navigation-link a:hover { background: var(--c-bg-soft); color: var(--c-ink); }
.woocommerce-MyAccount-navigation-link.is-active a, .woocommerce-MyAccount-navigation-link.active a {
  background: var(--c-primary-50); color: var(--c-primary-700); }
.sb-nav-ico { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.woocommerce-MyAccount-navigation-link .sb-nav-ico svg { width: 20px; height: 20px; display: block; }
.woocommerce-MyAccount-content { background: var(--c-bg); border: 1px solid var(--c-line); border-radius: var(--r-lg);
  padding: 22px; box-shadow: var(--sh-sm); }
.woocommerce-MyAccount-content p { color: var(--c-body); }
.woocommerce-MyAccount-content a:not(.button) { color: var(--c-primary); font-weight: 600; }
ul.dashboard-links { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
ul.dashboard-links li { margin: 0; border: 0; }
ul.dashboard-links li a { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 16px;
  border: 1px solid var(--c-line); border-radius: var(--r-lg); background: var(--c-bg); font-weight: 700; font-size: 14px;
  color: var(--c-ink); text-decoration: none; min-height: 90px; box-shadow: var(--sh-sm); transition: box-shadow .15s, transform .15s; }
ul.dashboard-links li a:hover { box-shadow: var(--sh-md); border-color: var(--c-primary); color: var(--c-primary-700); transform: translateY(-1px); }
ul.dashboard-links li .sb-nav-ico svg { width: 24px; height: 24px; color: var(--c-primary); }
@media (min-width: 600px) { ul.dashboard-links { grid-template-columns: repeat(3, 1fr); } }

@media (min-width: 600px) {
  .sb-pincode-modal { align-items: center; padding: 16px; }
  .sb-pincode-modal-inner { border-radius: 16px; max-width: 400px; box-shadow: 0 12px 40px rgba(0,0,0,.18); }
}

/* ---------- Container ---------- */
.sb-container { width: 100%; padding: 12px 14px 80px; }
@media (min-width: 600px) { .sb-container { padding: 14px 18px 60px; } }
@media (min-width: 900px) { .sb-container { max-width: 1240px; margin: 0 auto; padding: 16px 24px 40px; } }

/* ---------- Hero (mobile-first) ---------- */
.sb-hero {
  position: relative; border-radius: 12px; overflow: hidden;
  background: linear-gradient(90deg, var(--c-primary) 0%, #4ade80 100%);
  padding: 20px 18px; min-height: 130px;
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 16px; color: #fff;
}
.sb-hero-text { max-width: 100%; }
.sb-hero-title { font-size: 18px; font-weight: 800; line-height: 1.2; margin: 0 0 12px; color: #fff; }
.sb-hero-btn   { background: #fff; color: var(--c-primary); padding: 10px 22px; border-radius: 6px; font-weight: 700; display: inline-block; font-size: 14px; min-height: 40px; line-height: 1.2; }
.sb-hero-img   { display: none; }

@media (min-width: 600px) {
  .sb-hero { padding: 28px 28px; min-height: 160px; border-radius: 14px; }
  .sb-hero-text { max-width: 60%; }
  .sb-hero-title { font-size: 22px; }
  .sb-hero-img { display: block; max-width: 36%; max-height: 160px; object-fit: contain; filter: drop-shadow(0 6px 20px rgba(0,0,0,.18)); }
}
@media (min-width: 900px) {
  .sb-hero { padding: 36px 40px; min-height: 180px; margin-bottom: 20px; }
  .sb-hero-text { max-width: 56%; }
  .sb-hero-title { font-size: 28px; margin-bottom: 16px; }
  .sb-hero-img { max-height: 180px; }
}

/* ---------- Promo row (mobile-first) ---------- */
.sb-promo-row { display: grid; grid-template-columns: 1fr; gap: 10px; margin-bottom: 18px; }
.sb-promo { border-radius: 12px; padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; min-height: 110px; overflow: hidden; color: #fff; }
.sb-promo-text { max-width: 65%; }
.sb-promo-title { font-size: 16px; font-weight: 800; line-height: 1.2; margin-bottom: 4px; }
.sb-promo-sub   { font-size: 12px; line-height: 1.35; opacity: .9; margin-bottom: 10px; }
.sb-promo-cta   { display: inline-block; padding: 7px 14px; border-radius: 6px; background: rgba(255,255,255,.18); border: 1px solid; font-size: 12px; font-weight: 700; min-height: 32px; }
.sb-promo-img   { max-width: 80px; max-height: 80px; object-fit: contain; }

@media (min-width: 600px) {
  .sb-promo-row { grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .sb-promo { min-height: 120px; padding: 20px 22px; }
  .sb-promo-title { font-size: 17px; }
  .sb-promo-img { max-width: 90px; max-height: 90px; }
}
@media (min-width: 900px) {
  .sb-promo-row { gap: 14px; margin-bottom: 22px; }
  .sb-promo { padding: 22px 24px; min-height: 130px; }
  .sb-promo-title { font-size: 18px; margin-bottom: 6px; }
  .sb-promo-sub { font-size: 13px; }
  .sb-promo-img { max-width: 95px; max-height: 95px; }
}

/* ---------- Category icon grid (mobile-first) ---------- */
.sb-cat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px 6px; margin-bottom: 22px; }
.sb-cat-icon { text-align: center; padding: 6px 2px; border-radius: 10px; display: block; min-width: 0; }
.sb-cat-icon:active { background: #f3f4f6; }
.sb-icon-bg { width: 64px; height: 64px; max-width: 100%; margin: 0 auto 6px; border-radius: 12px; background: #f5f5f5; overflow: hidden; }
.sb-icon-bg img { width: 100%; height: 100%; object-fit: cover; }
.sb-icon-fallback { width: 100%; height: 100%; background: linear-gradient(135deg, #fde68a, #fbbf24); }
.sb-cat-label { font-size: 11px; font-weight: 500; color: #1f2937; line-height: 1.25; }

@media (min-width: 600px) {
  .sb-cat-grid { grid-template-columns: repeat(6, 1fr); gap: 6px; margin-bottom: 26px; }
  .sb-icon-bg { width: 72px; height: 72px; margin-bottom: 8px; }
  .sb-cat-label { font-size: 12px; }
}
@media (min-width: 900px) {
  .sb-cat-grid { grid-template-columns: repeat(10, 1fr); margin-bottom: 30px; }
  .sb-icon-bg { width: 84px; height: 84px; }
  .sb-cat-icon:hover { background: #f3f4f6; }
}

/* ---------- Carousels ---------- */
.sb-carousel-section { margin-bottom: 24px; }
.sb-carousel-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 10px; padding: 0 2px; }
.sb-carousel-title { font-size: 18px; font-weight: 700; margin: 0; color: #1a1a1a; }
.sb-see-all { color: var(--c-primary); font-size: 13px; font-weight: 600; }
.sb-carousel-scroll {
  overflow-x: auto; overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin; scroll-snap-type: x proximity;
  /* edge-to-edge on mobile */
  margin: 0 -14px; padding: 0 14px;
}
.sb-carousel-scroll::-webkit-scrollbar { height: 4px; }
.sb-carousel-scroll::-webkit-scrollbar-thumb { background: #e5e7eb; border-radius: 2px; }
.sb-carousel-track { display: grid; grid-auto-flow: column; grid-auto-columns: 145px; gap: 10px; padding-bottom: 6px; }
.sb-carousel-track > .sb-prod { scroll-snap-align: start; }

@media (min-width: 600px) {
  .sb-carousel-section { margin-bottom: 28px; }
  .sb-carousel-title { font-size: 20px; }
  .sb-carousel-track { grid-auto-columns: 165px; gap: 12px; }
}
@media (min-width: 900px) {
  .sb-carousel-section { margin-bottom: 32px; }
  .sb-carousel-head { margin-bottom: 12px; }
  .sb-carousel-title { font-size: 22px; }
  .sb-see-all { font-size: 14px; }
  .sb-carousel-scroll { margin: 0; padding: 0; }
  .sb-carousel-scroll::-webkit-scrollbar { height: 6px; }
  .sb-carousel-scroll::-webkit-scrollbar-thumb { border-radius: 3px; }
  .sb-carousel-track { grid-auto-columns: 175px; }
}

/* ---------- Product card ---------- */
.sb-prod {
  background: #fff; border: 1px solid #f1f1f1; border-radius: 10px;
  padding: 8px; display: flex; flex-direction: column; gap: 6px;
  position: relative; transition: box-shadow .15s;
}
.sb-prod-img-wrap { position: relative; height: 130px; background: #fafafa; border-radius: 6px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.sb-prod-img { width: 100%; height: 100%; object-fit: contain; }
.sb-discount { position: absolute; top: 0; left: 0; background: #257cbf; color: #fff; font-size: 10px; font-weight: 700; padding: 3px 6px; border-bottom-right-radius: 6px; z-index: 2; }
.sb-oos-overlay { position: absolute; inset: 0; background: rgba(255,255,255,.7); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 13px; color: #444; z-index: 2; }
.sb-prod-mins { display: inline-flex; align-items: center; gap: 4px; background: #f0f5ff; color: #257cbf; font-size: 10px; font-weight: 700; padding: 3px 7px; border-radius: 4px; align-self: flex-start; }
.sb-prod-name { font-size: 12px; font-weight: 500; color: #1a1a1a; line-height: 1.3; min-height: 32px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sb-prod-variant { font-size: 11px; color: #6b7280; }
.sb-prod-bottom { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 4px; gap: 6px; }
.sb-prod-price { display: flex; flex-direction: column; }
.sb-price-now { font-size: 14px; font-weight: 700; color: #1a1a1a; line-height: 1.1; }
.sb-strike { font-size: 11px; color: #888; text-decoration: line-through; line-height: 1.1; }
.sb-add-btn {
  border: 1px solid var(--c-primary); color: var(--c-primary); background: var(--c-primary-50);
  font-size: 13px; font-weight: 700;
  padding: 8px 14px; border-radius: 6px;
  cursor: pointer;
  min-height: 36px; min-width: 56px;
  display: inline-flex; align-items: center; justify-content: center;
}
.sb-add-btn:active { background: var(--c-primary); color: #fff; }
.sb-add-btn.sb-add-disabled { opacity: .5; cursor: not-allowed; background: #f3f4f6; border-color: #d1d5db; color: #9ca3af; }
.sb-add-btn.sb-add-loading { opacity: .6; pointer-events: none; }
@media (min-width: 900px) {
  .sb-prod:hover { box-shadow: 0 2px 12px rgba(0,0,0,.08); }
  .sb-prod-img-wrap { height: 140px; }
  .sb-add-btn { padding: 5px 14px; min-height: 32px; }
  .sb-add-btn:hover { background: var(--c-primary); color: #fff; }
}

/* ---------- Category page layout ---------- */
.sb-breadcrumb { background: #fafafa; padding: 8px 14px; font-size: 12px; color: #6b7280; border-bottom: 1px solid #eee; overflow-x: auto; white-space: nowrap; }
.sb-breadcrumb a { color: #6b7280; }
@media (min-width: 900px) { .sb-breadcrumb { padding: 10px 24px; } }

.sb-cat-layout {
  display: grid;
  grid-template-columns: 86px 1fr;
  gap: 0;
  padding: 0 10px 24px;
  min-height: 60vh;
}
.sb-left-rail { border-right: 1px solid #eee; padding: 8px 4px 12px 0; max-height: calc(100vh - 70px); overflow-y: auto; -webkit-overflow-scrolling: touch; position: sticky; top: 110px; }
.sb-rail-item { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 4px; border-radius: 10px 0 0 10px; text-align: center; position: relative; transition: background .15s; }
.sb-rail-item:active { background: #f5f5f5; }
.sb-rail-current { background: var(--c-primary-50); }
.sb-rail-current::before { content: ''; position: absolute; left: -1px; top: 8px; bottom: 8px; width: 4px; background: var(--c-primary); border-radius: 0 4px 4px 0; }
.sb-rail-thumb { width: 52px; height: 52px; border-radius: 10px; background: #f3f4f6; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.sb-rail-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sb-rail-fallback { width: 100%; height: 100%; background: linear-gradient(135deg, #fde68a, #fbbf24); }
.sb-rail-label { font-size: 11px; font-weight: 500; color: #1f2937; line-height: 1.25; }
.sb-rail-current .sb-rail-label { color: var(--c-primary); font-weight: 600; }
.sb-main { padding: 12px 0 12px 12px; min-width: 0; }
.sb-section-title { font-size: 16px; font-weight: 700; color: #1a1a1a; margin: 0 0 12px; padding: 8px 12px; background: #f9fafb; border-radius: 8px; }
.sb-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }

@media (min-width: 600px) {
  .sb-cat-layout { padding: 0 16px 28px; grid-template-columns: 130px 1fr; }
  .sb-rail-thumb { width: 56px; height: 56px; }
  .sb-rail-item { padding: 12px 4px; }
  .sb-main { padding: 14px 0 14px 16px; }
  .sb-section-title { font-size: 17px; padding: 10px 14px; }
  .sb-grid { grid-template-columns: repeat(3, 1fr); gap: 10px; }
}
@media (min-width: 900px) {
  .sb-cat-layout { max-width: 1240px; margin: 0 auto; padding: 0 24px 32px; grid-template-columns: 230px 1fr; }
  .sb-left-rail { padding: 12px 8px 12px 0; }
  .sb-rail-item { padding: 14px 6px; gap: 8px; }
  .sb-rail-thumb { width: 60px; height: 60px; }
  .sb-rail-label { font-size: 12px; }
  .sb-main { padding: 16px 0 16px 22px; }
  .sb-section-title { font-size: 18px; padding: 8px 14px; margin-bottom: 16px; }
  .sb-grid { grid-template-columns: repeat(6, 1fr); gap: 12px; }
}

/* ---------- Single product ---------- */
.sb-single-wrap { padding: 14px; display: grid; grid-template-columns: 1fr; gap: 16px; }
.sb-single-img { background: #fafafa; border-radius: 12px; padding: 14px; display: flex; align-items: center; justify-content: center; min-height: 280px; }
.sb-single-img img { max-width: 100%; max-height: 320px; object-fit: contain; }
.sb-single-info h1 { font-size: 20px; font-weight: 700; margin: 0 0 12px; line-height: 1.3; }
.sb-single-info .sb-prod-mins { margin-bottom: 12px; }
.sb-single-price-block { display: flex; align-items: baseline; gap: 10px; margin-bottom: 6px; flex-wrap: wrap; }
.sb-single-price-now { font-size: 22px; font-weight: 800; color: #1a1a1a; }
.sb-single-strike { font-size: 14px; color: #888; text-decoration: line-through; }
.sb-single-mrp { font-size: 11px; color: #6b7280; margin-bottom: 16px; }
.sb-single-eta { background: #f0f5ff; border-radius: 8px; padding: 10px 12px; font-size: 13px; color: #1f2937; margin-bottom: 16px; display: flex; gap: 8px; align-items: center; }
.sb-single-add { font-size: 15px; padding: 14px 28px; border-radius: 8px; width: 100%; min-height: 48px; }
.sb-single-desc { margin-top: 20px; padding: 16px; background: #fafafa; border-radius: 10px; font-size: 14px; line-height: 1.6; color: #374151; }

@media (min-width: 600px) {
  .sb-single-wrap { padding: 18px; gap: 22px; }
  .sb-single-img { min-height: 340px; }
  .sb-single-info h1 { font-size: 22px; }
  .sb-single-price-now { font-size: 24px; }
  .sb-single-add { width: auto; padding: 14px 36px; }
}
@media (min-width: 900px) {
  .sb-single-wrap { max-width: 1240px; margin: 0 auto; padding: 24px; grid-template-columns: 45% 55%; gap: 32px; }
  .sb-single-img { padding: 20px; min-height: 420px; }
  .sb-single-img img { max-height: 480px; }
  .sb-single-info h1 { font-size: 24px; margin-bottom: 14px; }
  .sb-single-info .sb-prod-mins { margin-bottom: 14px; }
  .sb-single-price-now { font-size: 26px; }
  .sb-single-strike { font-size: 16px; }
  .sb-single-add { font-size: 16px; padding: 12px 32px; min-height: 44px; }
}

/* ---------- SEO description ---------- */
.sb-seo { padding: 0 14px; margin-top: 24px; }
.sb-seo p { font-size: 13px; color: #4b5563; line-height: 1.65; margin: 0 0 12px; }
.sb-seo h3 { font-size: 17px; font-weight: 700; color: #1a1a1a; margin: 20px 0 10px; }
@media (min-width: 900px) { .sb-seo { max-width: 1240px; margin: 32px auto 0; padding: 0 24px; } .sb-seo h3 { font-size: 18px; margin: 24px 0 12px; } }

/* ---------- Footer ---------- */
.sb-footer { background: #fafafa; border-top: 1px solid #eee; padding: 28px 16px 20px; margin-top: 30px; }
.sb-footer-inner { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.sb-footer-col h4 { font-size: 13px; font-weight: 700; margin: 0 0 12px; color: #4a4a4a; }
.sb-footer-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.sb-footer-col li a { font-size: 13px; color: #6b6b6b; padding: 4px 0; display: inline-block; min-height: 32px; line-height: 1.4; }
.sb-footer-col li a:active { color: var(--c-primary); }
.sb-footer-bottom { margin: 24px auto 0; padding-top: 16px; border-top: 1px solid #eee; font-size: 12px; color: #6b7280; }

@media (min-width: 600px) {
  .sb-footer { padding: 32px 22px 22px; }
  .sb-footer-inner { grid-template-columns: repeat(2, 1fr); gap: 26px; }
}
@media (min-width: 900px) {
  .sb-footer { padding: 36px 24px 24px; margin-top: 40px; }
  .sb-footer-inner { max-width: 1240px; margin: 0 auto; grid-template-columns: repeat(4, 1fr); gap: 28px; }
  .sb-footer-col h4 { font-size: 14px; margin-bottom: 14px; }
  .sb-footer-col ul { gap: 9px; }
  .sb-footer-col li a:hover { color: var(--c-primary); }
  .sb-footer-bottom { max-width: 1240px; margin-top: 28px; padding-top: 18px; }
}

/* ---------- Cart page ---------- */
body.woocommerce-cart .sb-main-wrap { background: #fafafa; padding: 16px 0 90px; min-height: 60vh; }
body.woocommerce-cart .page-title, body.woocommerce-cart .entry-header, body.woocommerce-cart .woocommerce-breadcrumb { display: none !important; }
.sb-cart-wrap { padding: 0 14px; }
.sb-cart-title { font-size: 18px; font-weight: 700; margin: 0 0 14px; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.sb-cart-count { font-size: 13px; color: #6b7280; font-weight: 500; }

.sb-cart-layout { display: grid; grid-template-columns: 1fr; gap: 16px; align-items: start; }
.sb-cart-left { background: #fff; border: 1px solid #eef0f2; border-radius: 12px; padding: 6px 0; }
.sb-cart-items { list-style: none; padding: 0; margin: 0; }
.sb-cart-item { display: grid; grid-template-columns: 60px 1fr; grid-template-rows: auto auto; gap: 8px 12px; align-items: center; padding: 12px 14px; border-bottom: 1px solid #f3f4f6; }
.sb-cart-item:last-child { border-bottom: 0; }
.sb-cart-item-img { width: 60px; height: 60px; background: #fafafa; border-radius: 8px; overflow: hidden; display: flex; align-items: center; justify-content: center; grid-row: 1 / 3; }
.sb-cart-item-img img { width: 100%; height: 100%; object-fit: contain; }
.sb-cart-item-info { min-width: 0; grid-column: 2; grid-row: 1; }
.sb-cart-item-name { display: block; font-size: 13px; font-weight: 600; color: #1a1a1a; line-height: 1.35; margin-bottom: 3px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sb-cart-item-unit { font-size: 11px; color: #6b7280; }
.sb-cart-item-qty { grid-column: 2; grid-row: 2; justify-self: start; }
.sb-cart-item-line { grid-column: 2; grid-row: 2; justify-self: end; display: flex; align-items: center; gap: 8px; }
.sb-cart-item-subtotal { font-size: 14px; font-weight: 700; color: #1a1a1a; white-space: nowrap; }
.sb-cart-remove { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: #fef2f2; color: #dc2626; font-size: 18px; line-height: 1; font-weight: 700; }
.sb-cart-remove:active { background: #fecaca; color: #b91c1c; }

.sb-cart-item-qty .quantity { display: inline-flex; align-items: center; background: var(--c-primary-50); border: 1px solid var(--c-line); border-radius: 8px; overflow: hidden; }
.sb-cart-item-qty .quantity input[type=number] { width: 44px; text-align: center; border: 0; background: transparent; font-size: 14px; font-weight: 700; color: var(--c-primary); padding: 8px 0; -moz-appearance: textfield; appearance: textfield; outline: 0; min-height: 36px; }
.sb-cart-item-qty .quantity input[type=number]::-webkit-inner-spin-button, .sb-cart-item-qty .quantity input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.sb-qty-fixed { padding: 8px 16px; background: var(--c-primary-50); border: 1px solid var(--c-line); border-radius: 8px; font-size: 14px; font-weight: 700; color: var(--c-primary); min-height: 36px; display: inline-flex; align-items: center; }

.sb-cart-actions { display: flex; gap: 8px; align-items: center; padding: 14px; border-top: 1px solid #f3f4f6; flex-wrap: wrap; }
.sb-coupon { display: flex; gap: 6px; flex: 1; min-width: 100%; }
.sb-coupon-input { flex: 1; min-width: 0; border: 1px solid #d1d5db; border-radius: 8px; padding: 10px 12px; font-size: 14px; outline: 0; min-height: 40px; }
.sb-coupon-input:focus { border-color: var(--c-primary); }
.sb-coupon-btn, .sb-update-btn { background: #fff; color: var(--c-primary); border: 1px solid var(--c-primary); padding: 10px 16px; border-radius: 8px; font-weight: 700; font-size: 13px; cursor: pointer; min-height: 40px; }
.sb-coupon-btn:active, .sb-update-btn:active { background: var(--c-primary); color: #fff; }
.sb-update-btn { margin-left: 0; }
.sb-cart-keep-shopping { padding: 12px 14px 4px; font-size: 13px; }
.sb-cart-keep-shopping a { color: var(--c-primary); font-weight: 600; }
.sb-cart-right { position: relative; }
.sb-cart-right .sb-summary-card { position: static; top: auto; }
.sb-summary-shipping-note { font-size: 12px; color: #6b7280; font-style: italic; }
.sb-summary-card .checkout-button, .sb-summary-card a.checkout-button.button { display: block !important; width: 100% !important; background: var(--c-primary) !important; color: #fff !important; font-size: 16px !important; font-weight: 700 !important; padding: 14px 22px !important; border-radius: 10px !important; border: 0 !important; text-align: center !important; transition: background .15s !important; text-decoration: none !important; text-transform: none !important; letter-spacing: 0 !important; line-height: 1.3 !important; min-height: 48px; }
.sb-summary-card .checkout-button:active { background: var(--c-primary-600) !important; }
.sb-summary-card .wc-proceed-to-checkout, .sb-summary-card .checkout-button { margin-top: 16px !important; }

/* Sticky bottom bar on mobile cart */
.sb-cart-mobile-bar { display: flex; align-items: center; justify-content: space-between; position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; background: #fff; border-top: 1px solid #e5e7eb; padding: 10px 14px; box-shadow: 0 -2px 12px rgba(0,0,0,.06); gap: 12px; }
.sb-cart-mobile-total { display: flex; flex-direction: column; }
.sb-cart-mobile-total span { font-size: 10px; color: #6b7280; text-transform: uppercase; letter-spacing: .04em; }
.sb-cart-mobile-total strong { font-size: 15px; font-weight: 700; color: #1a1a1a; }
.sb-cart-mobile-checkout { flex: 1; max-width: 220px; background: var(--c-primary); color: #fff; font-weight: 700; font-size: 14px; padding: 12px 18px; border-radius: 10px; text-align: center; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.sb-cart-mobile-checkout:active { background: var(--c-primary-600); }

@media (min-width: 900px) {
  .sb-cart-wrap { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
  body.woocommerce-cart .sb-main-wrap { padding: 24px 0 60px; }
  .sb-cart-title { font-size: 22px; margin-bottom: 18px; }
  .sb-cart-layout { grid-template-columns: 1fr 360px; gap: 24px; }
  .sb-cart-item { grid-template-columns: 72px 1fr auto auto; grid-template-rows: auto; gap: 14px; padding: 14px 20px; align-items: center; }
  .sb-cart-item-img { width: 72px; height: 72px; grid-row: auto; }
  .sb-cart-item-info { grid-column: auto; grid-row: auto; }
  .sb-cart-item-name { font-size: 14px; }
  .sb-cart-item-unit { font-size: 12px; }
  .sb-cart-item-qty { grid-column: auto; grid-row: auto; justify-self: auto; }
  .sb-cart-item-line { grid-column: auto; grid-row: auto; flex-direction: column; align-items: flex-end; gap: 6px; }
  .sb-cart-item-subtotal { font-size: 15px; }
  .sb-cart-actions { padding: 14px 20px; }
  .sb-coupon { min-width: 200px; max-width: 340px; }
  .sb-update-btn { margin-left: auto; }
  .sb-cart-right .sb-summary-card { position: sticky; top: 96px; }
  .sb-cart-mobile-bar { display: none; }
}

/* ---------- Empty cart ---------- */
.sb-cart-empty { max-width: 520px; margin: 40px auto; padding: 24px; text-align: center; background: #fff; border: 1px solid #eef0f2; border-radius: 14px; }
.sb-cart-empty-icon { margin-bottom: 14px; display: flex; justify-content: center; }
.sb-cart-empty h1 { font-size: 20px; font-weight: 700; margin: 0 0 8px; }
.sb-cart-empty p { font-size: 14px; color: #6b7280; line-height: 1.55; margin: 0 0 18px; }
.sb-cart-empty-cta { margin: 0; }
.sb-cart-empty-cta .sb-add-btn { display: inline-block; padding: 14px 28px; font-size: 15px; min-height: 48px; }
@media (min-width: 600px) { .sb-cart-empty { margin: 60px auto; } .sb-cart-empty h1 { font-size: 22px; } }

/* ---------- Checkout ---------- */
body.woocommerce-checkout .page-title, body.woocommerce-checkout .entry-header, body.woocommerce-checkout .woocommerce-breadcrumb { display: none !important; }
body.woocommerce-checkout .sb-main-wrap, body.woocommerce-order-received .sb-main-wrap { background: #fafafa; padding: 16px 0 110px; min-height: 60vh; }
body.woocommerce-checkout #content .container, body.woocommerce-checkout #content > .row, body.woocommerce-checkout #content .page-wrapper { max-width: 100% !important; padding: 0 !important; }

.sb-checkout-layout { display: grid; grid-template-columns: 1fr; gap: 14px; padding: 0 14px; }
.sb-checkout-left { display: flex; flex-direction: column; gap: 14px; }
.sb-checkout-step { background: #fff; border: 1px solid #eef0f2; border-radius: 12px; box-shadow: 0 1px 0 rgba(0,0,0,.02); }
.sb-step-head { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid #f1f1f1; }
.sb-step-num { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--c-primary); color: #fff; font-weight: 700; font-size: 13px; }
.sb-step-head h2 { margin: 0; font-size: 15px; font-weight: 700; color: #1a1a1a; }
.sb-step-body { padding: 14px 16px 18px; }
.sb-step-body.col2-set { display: grid; grid-template-columns: 1fr; gap: 0; }

.sb-checkout-left .form-row { margin: 0 0 10px; padding: 0; }
.sb-checkout-left .form-row label { display: block; font-size: 12px; font-weight: 600; color: #4b5563; margin-bottom: 6px; }
.sb-checkout-left .form-row .required { color: #dc2626; }
.sb-checkout-left .form-row .input-text, .sb-checkout-left .form-row select, .sb-checkout-left .form-row textarea, .sb-checkout-left .select2-container--default .select2-selection--single { width: 100% !important; border: 1px solid #d1d5db !important; border-radius: 8px !important; padding: 12px !important; font-size: 16px !important; background: #fff !important; outline: 0 !important; box-shadow: none !important; height: auto !important; line-height: 1.4 !important; min-height: 44px; }
.sb-checkout-left .form-row .input-text:focus, .sb-checkout-left .form-row select:focus, .sb-checkout-left .form-row textarea:focus { border-color: var(--c-primary) !important; box-shadow: 0 0 0 3px rgba(79,70,229,.12) !important; }
.sb-checkout-left .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 1.4 !important; padding-left: 0 !important; }
.sb-checkout-left .select2-container--default .select2-selection--single .select2-selection__arrow { height: 44px !important; }
.sb-checkout-left .form-row.notes textarea { min-height: 80px; }

#payment-section #payment { background: transparent; border: 0; padding: 0; }
#payment-section .wc_payment_methods { list-style: none; padding: 0; margin: 0 0 14px; display: flex; flex-direction: column; gap: 8px; }
#payment-section .wc_payment_methods li { background: #fafbfc; border: 1px solid #e5e7eb; border-radius: 10px; padding: 14px 16px; transition: border-color .15s, background .15s; min-height: 56px; }
#payment-section .wc_payment_methods li.woocommerce-PaymentMethod--selected, #payment-section .wc_payment_methods li:has(input:checked) { border-color: var(--c-primary); background: var(--c-primary-50); }
#payment-section .wc_payment_methods label { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 14px; cursor: pointer; margin: 0; }
#payment-section .wc_payment_methods input[type=radio] { accent-color: var(--c-primary); width: 20px; height: 20px; }
#payment-section .payment_box { background: transparent !important; font-size: 13px; color: #6b7280; margin-top: 10px !important; padding: 0 !important; }
#payment-section .payment_box::before { display: none !important; }
#payment-section .place-order { margin: 0; padding: 0; }
#payment-section #place_order { width: 100%; display: block; background: var(--c-primary) !important; color: #fff !important; font-size: 16px; font-weight: 700; padding: 14px 22px; border-radius: 10px; border: 0; cursor: pointer; transition: background .15s; min-height: 52px; }
#payment-section #place_order:active { background: var(--c-primary-600) !important; }
#payment-section .terms-and-conditions { font-size: 12px; color: #6b7280; margin: 12px 0 14px; }

.sb-checkout-right { position: relative; }
.sb-summary-card { background: #fff; border: 1px solid #eef0f2; border-radius: 12px; padding: 16px 18px 20px; position: static; }
.sb-summary-title { font-size: 15px; font-weight: 700; margin: 0 0 12px; }
.sb-summary-eta { display: flex; align-items: center; gap: 8px; background: var(--c-primary-50); color: var(--c-primary-600); padding: 10px 12px; border-radius: 8px; font-size: 13px; font-weight: 600; margin-bottom: 12px; }
.sb-summary-items { list-style: none; padding: 0; margin: 0 0 14px; display: flex; flex-direction: column; gap: 10px; }
.sb-summary-item { display: flex; gap: 10px; align-items: flex-start; }
.sb-summary-item-img { width: 48px; height: 48px; flex-shrink: 0; background: #fafafa; border-radius: 6px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.sb-summary-item-img img { width: 100%; height: 100%; object-fit: contain; }
.sb-summary-item-info { flex: 1; min-width: 0; }
.sb-summary-item-name { font-size: 13px; font-weight: 500; color: #1f2937; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sb-summary-item-qty { font-size: 11px; color: #9ca3af; margin-top: 2px; }
.sb-summary-item-price { font-size: 13px; font-weight: 600; color: #1a1a1a; white-space: nowrap; }
.sb-summary-totals { padding-top: 12px; border-top: 1px solid #f1f1f1; margin: 0; }
.sb-summary-row { display: flex; justify-content: space-between; padding: 5px 0; font-size: 13px; color: #4b5563; margin: 0; }
.sb-summary-row dt, .sb-summary-row dd { margin: 0; }
.sb-summary-row.sb-summary-coupon dt { color: var(--c-primary-600); }
.sb-summary-row.sb-summary-total { padding-top: 10px; margin-top: 6px; border-top: 1px solid #f1f1f1; font-size: 16px; font-weight: 700; color: #1a1a1a; }

body.woocommerce-checkout .woocommerce-NoticeGroup, body.woocommerce-checkout .woocommerce-error, body.woocommerce-checkout .woocommerce-message { max-width: 1240px; margin: 0 14px 14px; padding: 12px 16px; border-radius: 8px; font-size: 14px; }
body.woocommerce-checkout .woocommerce-error { background: #fef2f2; border: 1px solid #fecaca; color: #b91c1c; list-style: none; }
body.woocommerce-checkout .woocommerce-message { background: var(--c-primary-50); border: 1px solid var(--c-line); color: var(--c-primary-600); }
body.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info, body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { max-width: 1240px; margin: 0 14px 12px; padding: 12px 16px; background: #fffbeb; border: 1px solid #fde68a; color: #92400e; border-radius: 8px; font-size: 13px; }

@media (min-width: 600px) {
  .sb-step-body.col2-set { gap: 16px; }
  body.woocommerce-checkout .woocommerce-NoticeGroup, body.woocommerce-checkout .woocommerce-error, body.woocommerce-checkout .woocommerce-message { margin: 0 auto 14px; }
}
@media (min-width: 900px) {
  body.woocommerce-checkout .sb-main-wrap, body.woocommerce-order-received .sb-main-wrap { padding: 24px 0 60px; }
  .sb-checkout-layout { grid-template-columns: 1fr 360px; gap: 24px; max-width: 1240px; margin: 0 auto; padding: 0 24px; }
  .sb-checkout-left { gap: 18px; }
  .sb-step-head { padding: 16px 20px; }
  .sb-step-head h2 { font-size: 16px; }
  .sb-step-body { padding: 18px 20px 22px; }
  .sb-checkout-left .form-row .input-text, .sb-checkout-left .form-row select, .sb-checkout-left .form-row textarea { padding: 10px 12px !important; font-size: 14px !important; min-height: 40px; }
  .sb-summary-card { padding: 18px 20px 22px; position: sticky; top: 96px; }
  .sb-summary-title { font-size: 16px; margin-bottom: 14px; }
  .sb-summary-eta { padding: 10px 12px; margin-bottom: 14px; }
  .sb-summary-items { gap: 12px; }
}

/* ---------- Thank-you page ---------- */
.sb-thankyou { max-width: 720px; margin: 0 auto; padding: 28px 16px; text-align: center; }
.sb-thankyou-success h1 { font-size: 22px; font-weight: 800; margin: 16px 0 6px; }
.sb-thankyou-eta { font-size: 14px; color: var(--c-primary-600); margin: 0 0 22px; }
.sb-thankyou-card { background: #fff; border: 1px solid #eef0f2; border-radius: 12px; padding: 18px; text-align: left; }
.sb-thankyou-meta { list-style: none; padding: 0; margin: 0 0 16px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 20px; }
.sb-thankyou-meta li { display: flex; flex-direction: column; gap: 2px; }
.sb-thankyou-meta li span { font-size: 11px; color: #6b7280; text-transform: uppercase; letter-spacing: .04em; }
.sb-thankyou-meta li strong { font-size: 14px; color: #1a1a1a; }
.sb-thankyou-items { list-style: none; padding-top: 16px; margin: 0; border-top: 1px solid #f1f1f1; display: flex; flex-direction: column; gap: 12px; }
.sb-thankyou-actions { margin-top: 24px; display: flex; gap: 12px; justify-content: center; align-items: center; flex-wrap: wrap; }
.sb-thankyou-actions .sb-link { font-size: 14px; color: var(--c-primary); font-weight: 600; padding: 10px; }
@media (min-width: 600px) { .sb-thankyou { padding: 40px 24px; } .sb-thankyou-success h1 { font-size: 28px; } .sb-thankyou-card { padding: 22px; } }

/* ---------- Saved address card (checkout) ---------- */
.sb-addr-section { margin-bottom: 16px; }
.sb-addr-section-head h2 { font-size: 13px; font-weight: 600; color: #4b5563; margin: 0 0 10px; text-transform: uppercase; letter-spacing: .04em; }
.sb-address-card { display: grid; grid-template-columns: 36px 1fr; gap: 14px; background: #fff; border: 1.5px solid #d1d5db; border-radius: 12px; padding: 14px 16px; }
.sb-address-card-selected { border-color: var(--c-primary); background: var(--c-primary-50); }
.sb-address-card-icon { padding-top: 2px; }
.sb-address-card-label { font-size: 14px; font-weight: 700; color: #111827; margin-bottom: 4px; }
.sb-address-card-lines { font-size: 13px; color: #4b5563; line-height: 1.5; }
.sb-address-card-meta { font-size: 12px; color: #6b7280; margin-top: 6px; word-break: break-word; }
.sb-address-actions { display: flex; gap: 8px; margin-top: 14px; flex-wrap: wrap; }
.sb-addr-use, .sb-addr-edit, .sb-addr-new { font-family: inherit; cursor: pointer; border-radius: 8px; padding: 10px 16px; font-size: 13px; font-weight: 600; min-height: 40px; }
.sb-addr-use { background: var(--c-primary); color: #fff; border: 1px solid var(--c-primary); }
.sb-addr-use:active { background: var(--c-primary-600); }
.sb-addr-edit { background: #fff; color: var(--c-primary); border: 1px solid var(--c-primary); }
.sb-addr-edit:active { background: var(--c-primary-50); }
.sb-addr-new { display: block; width: 100%; margin-top: 10px; background: transparent; border: 1px dashed #cbd5e1; color: var(--c-primary); text-align: center; padding: 12px; }
.sb-addr-new:active { background: #f9fafb; border-color: var(--c-primary); }
.sb-address-collapsed { display: grid; grid-template-columns: 28px 1fr auto; gap: 12px; background: var(--c-primary-50); border: 1.5px solid var(--c-primary); border-radius: 12px; padding: 12px 14px; align-items: center; }
.sb-address-collapsed-icon { display: flex; align-items: center; }
.sb-address-collapsed-label { font-size: 14px; font-weight: 700; color: #111827; margin-bottom: 2px; }
.sb-address-collapsed-lines { font-size: 12px; color: #4b5563; line-height: 1.5; }
.sb-addr-change { background: transparent; border: 0; cursor: pointer; font-size: 13px; font-weight: 700; color: var(--c-primary); padding: 8px 10px; border-radius: 6px; min-height: 36px; }
.sb-addr-change:active { background: var(--c-primary-50); }
#customer_details.sb-form-collapsed .sb-step-body { display: none; }
#customer_details.sb-form-collapsed .sb-step-head { display: none; }
/* ---------- Final mobile polish ---------- */
/* Hide "items" word on cart badge for small screens */
.sb-cart-badge-label { display: none; }
@media (min-width: 600px) { .sb-cart-badge-label { display: inline; } }

/* Cap logo image on mobile */
.sb-logo-img img { max-height: 36px; width: auto; object-fit: contain; }
@media (min-width: 600px) { .sb-logo-img img { max-height: 42px; } }
@media (min-width: 900px) { .sb-logo-img img { max-height: 48px; } }

/* Mobile sticky bottom "Add to Cart" bar on single product pages (mobile only) */
.sb-single-add-mobile-bar {
  display: flex; align-items: center; justify-content: space-between;
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 80;
  background: #fff; border-top: 1px solid #e5e7eb;
  padding: 10px 14px;
  box-shadow: 0 -2px 12px rgba(0,0,0,.06);
  gap: 12px;
}
.sb-single-add-mobile-bar .sb-single-add-mobile-info { display: flex; flex-direction: column; min-width: 0; }
.sb-single-add-mobile-bar .sb-single-add-mobile-info .label { font-size: 10px; color: #6b7280; text-transform: uppercase; letter-spacing: .04em; }
.sb-single-add-mobile-bar .sb-single-add-mobile-info .price { font-size: 15px; font-weight: 800; color: #1a1a1a; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sb-single-add-mobile-bar .sb-add-btn { flex: 1; max-width: 220px; padding: 12px 18px; font-size: 15px; border-radius: 10px; min-height: 44px; }
.sb-single-add-mobile-bar .sb-add-btn.sb-add-disabled { opacity: .5; }
@media (min-width: 600px) {
  .sb-single-add-mobile-bar { display: none; }
  body.single-product .sb-main-wrap { padding-bottom: 60px; }
}
body.single-product .sb-main-wrap { padding-bottom: 90px; }
@media (min-width: 600px) { body.single-product .sb-main-wrap { padding-bottom: 0; } }

/* Reduce homepage carousel "see all" tap target padding */
.sb-see-all { padding: 4px 6px; }

/* Improve quantity stepper for mobile (bigger tap targets) */
@media (max-width: 599px) {
  .sb-cart-item-qty .quantity input[type=number] { width: 48px; padding: 10px 0; }
}

/* Safe-area for iPhone notch/home-indicator */
.sb-cart-mobile-bar,
.sb-single-add-mobile-bar {
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
}
.sb-topbar {
  padding-top: calc(10px + env(safe-area-inset-top, 0px));
}
@media (min-width: 600px) {
  .sb-topbar { padding-top: calc(12px + env(safe-area-inset-top, 0px)); }
}

/* Prevent zoom on iOS when focusing inputs that have <16px font (cart, modal already use 16px+) */
@media (max-width: 599px) {
  .sb-search input,
  .sb-pincode-modal input[type=text],
  .sb-checkout-left .form-row .input-text,
  .sb-checkout-left .form-row select,
  .sb-checkout-left .form-row textarea,
  .sb-coupon-input,
  .sb-cart-item-qty .quantity input[type=number] {
    font-size: 16px !important;
  }
}
/* ============================================================
   Visual polish (post-launch fixes)
   ============================================================ */

/* Kill Flatsome's inherited uppercase + bold strangers in the topbar */
.sb-topbar, .sb-topbar * {
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.sb-topbar a, .sb-topbar a:hover { color: #fff; }
.sb-logo, .sb-logo:hover { color: #ffffff !important; }
.sb-cart, .sb-cart:hover { color: #fff !important; }

/* Hero: cleaner mobile, more visual punch */
.sb-hero {
  background:
    radial-gradient(ellipse at 100% 0%, rgba(255,255,255,.15), transparent 70%),
    linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-600) 100%);
  box-shadow: 0 2px 8px rgba(22,163,74,.15);
}
.sb-hero-title {
  font-size: 20px;
  letter-spacing: -0.01em;
  text-shadow: 0 1px 2px rgba(0,0,0,.12);
}
@media (min-width: 600px) { .sb-hero-title { font-size: 24px; } }
@media (min-width: 900px) { .sb-hero-title { font-size: 28px; } }

/* Promo cards: cleaner shadow + better image fit */
.sb-promo {
  position: relative;
  border: 0;
  box-shadow: 0 1px 2px rgba(0,0,0,.05);
  border-radius: 14px;
}
.sb-promo-text { z-index: 1; }
.sb-promo-img {
  border-radius: 8px;
  flex-shrink: 0;
}
@media (max-width: 599px) {
  .sb-promo { padding: 16px 18px; min-height: 100px; }
  .sb-promo-img { max-width: 76px; max-height: 76px; }
  .sb-promo-title { font-size: 15px; }
  .sb-promo-sub { font-size: 12px; margin-bottom: 8px; }
  .sb-promo-cta { font-size: 11px; padding: 6px 12px; min-height: 30px; }
}

/* Icon grid: refined */
.sb-cat-grid {
  gap: 4px;
  background: #fff;
  padding: 12px 4px;
  border-radius: 14px;
  border: 1px solid #f1f1f1;
}
.sb-cat-icon { padding: 8px 2px; }
.sb-icon-bg {
  width: 60px;
  height: 60px;
  border-radius: 14px;
  background: linear-gradient(135deg, #fafafa 0%, #f3f4f6 100%);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.04);
  padding: 8px;
}
.sb-icon-bg img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
}
/* Friendlier fallback color (less in-your-face yellow) */
.sb-icon-fallback {
  background: linear-gradient(135deg, #e0f2fe 0%, #bae6fd 100%);
  border-radius: 10px;
}
.sb-cat-label {
  font-size: 11px;
  font-weight: 500;
  color: #374151;
  margin-top: 4px;
  line-height: 1.2;
  -webkit-line-clamp: 2;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (min-width: 600px) { .sb-icon-bg { width: 68px; height: 68px; } .sb-cat-label { font-size: 12px; } }
@media (min-width: 900px) {
  .sb-cat-grid { background: transparent; border: 0; padding: 0; gap: 6px; }
  .sb-icon-bg { width: 84px; height: 84px; padding: 10px; }
}

/* Carousel section headers: more presence */
.sb-carousel-head {
  align-items: center;
  margin-bottom: 12px;
  padding: 0 4px;
}
.sb-carousel-title {
  position: relative;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: #0f172a;
}
.sb-carousel-title::after {
  content: '';
  display: block;
  width: 28px;
  height: 3px;
  background: var(--c-primary);
  border-radius: 2px;
  margin-top: 6px;
}
.sb-see-all { font-size: 12px; color: var(--c-primary); font-weight: 600; padding: 6px 8px; }
.sb-see-all::after { content: ' →'; }
@media (min-width: 600px) { .sb-see-all { font-size: 13px; } }
@media (min-width: 900px) { .sb-see-all { font-size: 14px; } }

/* Product cards: slightly more refined */
.sb-prod {
  border-color: #f3f4f6;
  border-radius: 12px;
  transition: box-shadow .15s, transform .15s;
}
.sb-prod-img-wrap { border-radius: 8px; background: #fff; }
.sb-prod-img { padding: 4px; }
.sb-prod-name { font-size: 12px; color: #1f2937; line-height: 1.35; }
.sb-prod-variant { font-size: 11px; color: #9ca3af; font-style: normal; }
.sb-price-now { font-size: 15px; color: #0f172a; }
.sb-discount {
  background: linear-gradient(135deg, #ef4444, #dc2626);
  border-radius: 0 0 8px 0;
  font-size: 9px;
  padding: 3px 7px;
}
.sb-prod-mins {
  background: var(--c-primary-50);
  color: var(--c-primary-600);
  font-size: 9px;
  padding: 3px 6px;
  letter-spacing: 0.02em;
}
.sb-add-btn {
  border-radius: 8px;
  background: #fff;
  border: 1.5px solid var(--c-primary);
  color: var(--c-primary);
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: 12px;
  padding: 6px 14px;
}
.sb-add-btn:active { background: var(--c-primary); color: #fff; transform: scale(0.97); }
@media (min-width: 900px) {
  .sb-prod:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); transform: translateY(-2px); }
}

/* Section spacing: more breathing room */
.sb-container { padding-top: 14px; }
.sb-hero { margin-bottom: 14px; }
.sb-promo-row { margin-bottom: 22px; }
.sb-cat-grid { margin-bottom: 26px; }
.sb-carousel-section { margin-bottom: 28px; padding-bottom: 4px; }
@media (min-width: 600px) {
  .sb-container { padding-top: 18px; }
  .sb-hero { margin-bottom: 20px; }
  .sb-promo-row { margin-bottom: 28px; }
  .sb-cat-grid { margin-bottom: 32px; }
  .sb-carousel-section { margin-bottom: 34px; }
}

/* Hide Flatsome's site title in case it bleeds through anywhere */
.site-title, .site-description, #top-bar { display: none !important; }

/* Better focus halos */
.statbo a:focus-visible,
.statbo button:focus-visible {
  outline: 2px solid var(--c-primary);
  outline-offset: 2px;
  border-radius: 6px;
}

/* Smooth horizontal scroll on carousels */
.sb-carousel-scroll { scroll-padding: 14px; }
/* ============================================================
   Mobile app banner + bottom-sheet modal
   ============================================================ */

/* Hide on tablet+ */
.sb-app-banner, .sb-app-modal { display: none; }
@media (max-width: 599px) {
  .sb-app-banner { display: flex; }
  .sb-app-modal { display: block; }
  .sb-app-modal[hidden] { display: none; }
}

/* ---- Top sticky ribbon ---- */
.sb-app-banner {
  position: sticky;
  top: 0;
  z-index: 201; /* above topbar (200) */
  background: linear-gradient(135deg, var(--c-primary), var(--c-primary-600));
  color: #fff;
  padding: 8px 10px 8px 36px; /* extra left padding so X doesn't crowd content */
  align-items: center;
  gap: 10px;
  font-size: 13px;
  line-height: 1.2;
  box-shadow: 0 1px 0 rgba(0,0,0,.08);
}
.sb-app-banner-close {
  position: absolute;
  left: 6px; top: 50%; transform: translateY(-50%);
  background: transparent;
  border: 0;
  color: #fff;
  font-size: 24px;
  line-height: 1;
  padding: 4px 8px;
  cursor: pointer;
  border-radius: 50%;
  min-width: 30px;
  min-height: 30px;
}
.sb-app-banner-close:active { background: rgba(0,0,0,.15); }
.sb-app-banner-icon { display: flex; align-items: center; flex-shrink: 0; }
.sb-app-banner-icon svg { display: block; width: 32px; height: 32px; border-radius: 7px; }
.sb-app-banner-text { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sb-app-banner-text strong { font-weight: 700; font-size: 13px; }
.sb-app-banner-text span   { font-weight: 400; font-size: 11px; opacity: 0.95; }
.sb-app-banner-cta {
  background: var(--c-topbar);
  color: #fff;
  padding: 8px 16px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 13px;
  white-space: nowrap;
  text-decoration: none;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
}
.sb-app-banner-cta:active { background: #1a1a1a; transform: scale(0.97); }

/* When banner is dismissed via JS, body class lets the topbar slide up flush */
body.sb-app-banner-dismissed .sb-app-banner { display: none !important; }

/* ---- Bottom-sheet modal ---- */
.sb-app-modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 1000;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
  animation: sb-fade-in .2s ease-out;
}
.sb-app-modal-card {
  background: #fff;
  width: 100%;
  max-width: 100%;
  border-radius: 24px 24px 0 0;
  position: relative;
  overflow: hidden;
  animation: sb-slide-up .25s ease-out;
  box-shadow: 0 -8px 32px rgba(0,0,0,.18);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.sb-app-modal-close {
  position: absolute;
  z-index: 2;
  top: 12px; right: 12px;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: rgba(0,0,0,.5);
  color: #fff;
  border: 0;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sb-app-modal-close:active { background: rgba(0,0,0,.7); }

/* Hero (yellow upper section with phone illustrations) */
.sb-app-modal-hero {
  background: linear-gradient(180deg, #fde68a 0%, #fcd34d 100%);
  padding: 24px 20px 0;
  text-align: center;
  position: relative;
  min-height: 200px;
  overflow: hidden;
}
.sb-app-modal-phones {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 6px;
  height: 150px;
}
.sb-app-modal-phone {
  width: 70px;
  background: #1f2937;
  border-radius: 10px 10px 4px 4px;
  position: relative;
  box-shadow: 0 6px 16px rgba(0,0,0,.18);
}
.sb-app-modal-phone::before {
  content: '';
  position: absolute;
  inset: 4px 4px 0 4px;
  background: linear-gradient(180deg, #fff, #f3f4f6);
  border-radius: 6px;
}
.sb-app-modal-phone::after {
  content: '';
  position: absolute;
  top: 8px; left: 50%;
  transform: translateX(-50%);
  width: 24px; height: 4px;
  background: #1f2937;
  border-radius: 2px;
}
.sb-app-modal-phone.phone-a { height: 130px; transform: rotate(-4deg); }
.sb-app-modal-phone.phone-b { height: 150px; transform: translateY(-6px); }
.sb-app-modal-phone.phone-c { height: 130px; transform: rotate(4deg); }

.sb-app-modal-logo-wrap {
  position: absolute;
  left: 50%; bottom: -22px;
  transform: translateX(-50%);
  width: 80px; height: 80px;
  background: #ffffff;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 14px rgba(0,0,0,.18);
  z-index: 1;
}
.sb-app-modal-logo {
  font-family: var(--font-sans);
  font-weight: 800;
  font-size: 20px;
  color: var(--c-topbar);
  letter-spacing: -0.02em;
}

/* Body */
.sb-app-modal-body {
  padding: 38px 24px 24px;
  text-align: center;
}
.sb-app-modal-pretitle {
  font-size: 16px;
  color: #4b5563;
  margin: 0 0 4px;
  font-weight: 500;
}
.sb-app-modal-body h2 {
  font-size: 28px;
  font-weight: 800;
  margin: 0 0 16px;
  color: var(--c-topbar);
  letter-spacing: -0.02em;
}
.sb-app-modal-features {
  font-size: 11px;
  color: #6b7280;
  font-weight: 600;
  letter-spacing: 0.08em;
  margin: 0 0 22px;
}
.sb-app-modal-cta {
  display: block;
  width: 100%;
  background: var(--c-primary);
  color: #fff;
  padding: 16px;
  border-radius: 10px;
  font-weight: 700;
  font-size: 16px;
  text-decoration: none;
  text-align: center;
  margin-bottom: 12px;
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sb-app-modal-cta:active { background: var(--c-primary-600); transform: scale(0.98); }
.sb-app-modal-skip {
  background: transparent;
  border: 0;
  color: var(--c-primary);
  font-weight: 600;
  font-size: 14px;
  padding: 10px 14px;
  cursor: pointer;
  width: 100%;
}

/* Lock body scroll while modal is open */
body.sb-app-modal-open { overflow: hidden; }
/* === Token overrides: success stays green, sale = amber === */
.sb-pincode-ok{color:var(--c-success)}
.sb-summary-eta{background:var(--c-success-50);color:var(--c-success)}
.sb-summary-eta svg{stroke:var(--c-success)}
.sb-thankyou-eta{color:var(--c-success)}
body.woocommerce-checkout .woocommerce-message{background:var(--c-success-50);border-color:#bbf7d0;color:var(--c-success)}
.sb-discount{background:linear-gradient(135deg,var(--c-accent),var(--c-accent-600));color:#fff}
.sb-cart-remove{background:var(--c-error-50);color:var(--c-error)}

/* === Icon system === */
.sb-ico{display:inline-block;vertical-align:middle;flex-shrink:0}
.sb-success-icon{color:var(--c-success)}
.sb-cart-empty-icon{color:#cbd5e1}
.sb-single-eta .sb-ico{color:var(--c-primary)}
.sb-address-card-icon .sb-ico,.sb-address-collapsed-icon .sb-ico{color:var(--c-primary)}
.sb-prod-mins .sb-ico{color:inherit}

/* === Component polish (design system finish) === */
.sb-hero{background:radial-gradient(ellipse at 100% 0%,rgba(255,255,255,.15),transparent 70%),linear-gradient(135deg,var(--c-primary),var(--c-primary-700))!important}
.sb-prod,.sb-summary-card,.sb-checkout-step,.sb-address-card,.sb-cart-left{border-radius:var(--r-lg)}
.sb-cart{background:var(--c-primary)}
.sb-cart:active{background:var(--c-primary-600)}
.sb-app-banner{background:linear-gradient(135deg,var(--c-primary),var(--c-primary-700))}
.sb-app-banner-cta{background:var(--c-accent);color:#0F172A}
.sb-app-banner-cta:active{background:var(--c-accent-600)}
.sb-app-modal-cta{background:var(--c-primary)}
.sb-app-modal-cta:active{background:var(--c-primary-600)}
.sb-see-all,.sb-cart-keep-shopping a,.sb-addr-change,.sb-app-modal-skip{color:var(--c-primary)}
.sb-hero-btn{background:#fff;color:var(--c-primary)}
.statbo input:focus,.statbo select:focus,.statbo textarea:focus{border-color:var(--c-primary)}

/* === Logo image sizing (wide transparent logo on dark topbar) === */
.sb-logo-img{display:flex;align-items:center}
.sb-logo-img img{max-height:54px;width:auto;object-fit:contain}
@media (min-width:600px){.sb-logo-img img{max-height:66px}}
@media (min-width:900px){.sb-logo-img img{max-height:78px}}

/* Product gallery thumbnails */
.sb-single-thumbs { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.sb-thumb { padding: 0; border: 1.5px solid var(--c-line); border-radius: var(--r-md); background: var(--c-bg); cursor: pointer; width: 64px; height: 64px; overflow: hidden; flex: 0 0 auto; }
.sb-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sb-thumb.is-active { border-color: var(--c-primary); box-shadow: 0 0 0 2px var(--c-primary-50); }
/* Coupon moved into the bill/summary card */
.sb-summary-card .sb-coupon { display: flex; gap: 8px; margin: 0 0 14px; }

/* Product gallery prev/next arrows */
.sb-single-img { position: relative; }
.sb-gallery-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px;
  border-radius: var(--r-full); border: 1px solid var(--c-line); background: rgba(255,255,255,.92);
  color: var(--c-ink); display: flex; align-items: center; justify-content: center; cursor: pointer;
  box-shadow: var(--sh-sm); z-index: 2; padding: 0; }
.sb-gallery-nav:hover { background: #fff; border-color: var(--c-primary); color: var(--c-primary); }
.sb-gallery-nav:active { background: var(--c-primary-50); }
.sb-gallery-prev { left: 8px; }
.sb-gallery-next { right: 8px; }
.sb-gallery-nav .sb-ico { width: 20px; height: 20px; }
.sb-gallery-prev .sb-ico { transform: rotate(180deg); }

/* Phone-OTP login (tab on the auth card) */
.sb-phone-sub { font-size: 13px; color: var(--c-muted); margin: 0 0 14px; line-height: 1.5; }
.sb-phone-msg { font-size: 13px; min-height: 18px; margin-top: 8px; font-weight: 600; }
.sb-phone-msg--err { color: var(--c-error); }
.sb-phone-msg--ok  { color: var(--c-success); }
.sb-phone-back { margin-left: 12px; background: transparent; border: 0; color: var(--c-primary); font-weight: 600; cursor: pointer; padding: 6px 0; font-size: 13px; font-family: inherit; }
.sb-phone-back:hover { text-decoration: underline; }

/* ===== Variable-product variation selector ===== */
.sb-variations{display:flex;flex-direction:column;gap:14px;margin:4px 0 16px}
.sb-variation-group{display:flex;flex-direction:column;gap:8px}
.sb-variation-label{font-size:12px;font-weight:700;color:var(--c-muted);text-transform:uppercase;letter-spacing:.04em}
.sb-variation-options{display:flex;flex-wrap:wrap;gap:8px}
.sb-variation-opt{font-family:inherit;font-size:13px;font-weight:600;color:var(--c-ink);background:var(--c-bg);border:1.5px solid var(--c-line);border-radius:var(--r-md);padding:8px 14px;min-height:40px;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.sb-variation-opt:hover{border-color:var(--c-primary)}
.sb-variation-opt.is-active{border-color:var(--c-primary);background:var(--c-primary-50);color:var(--c-primary-700)}
.sb-add-btn[disabled]{opacity:.55;cursor:not-allowed}