/*
 * STORE251 storefront design (docs/modernization/D-ui-ux-plan.md).
 * Loaded only when the STORE251 theme is on; every rule is scoped to body.s251.
 */

body.s251 {
  --s251-ink: #232323;
  --s251-muted: #5E5B57;
  --s251-ground: #F7F5F1;
  --s251-surface: #FFFFFF;
  --s251-sage: #BBCDC1;
  --s251-sage-deep: #4A6656;
  --s251-line: #E6E2DB;
  --s251-field: #CFC8BD;
  --s251-tint: #E9E4DC;
  --s251-ok-bg: #E3ECE6;
  --s251-ok-ink: #23362B;
  --s251-radius: 6px;
  --s251-serif: 'Newsreader', Georgia, 'Times New Roman', serif;
  --s251-sans: 'Public Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;

  background: var(--s251-ground) !important;
  color: var(--s251-ink);
  font-family: var(--s251-sans);
}
body.s251 .aiz-main-wrapper { background: var(--s251-ground) !important; }
body.s251 :focus-visible { outline: 2px solid var(--s251-ink); outline-offset: 2px; }

/* ---------- layout helpers ---------- */
body.s251 .s251-wrap { max-width: 1280px; margin-left: auto; margin-right: auto; padding-left: 16px; padding-right: 16px; box-sizing: border-box; width: 100%; }
body.s251 .s251-desk { display: none !important; }
body.s251 .s251-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body.s251 .s251-eyebrow { margin: 0; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--s251-sage-deep); font-weight: 600; }
body.s251 .s251-h1, body.s251 .s251-h2 { font-family: var(--s251-serif); font-weight: 400; color: var(--s251-ink); margin: 0; letter-spacing: -.01em; }
body.s251 .s251-h1 { font-size: 42px; line-height: 1.05; }
body.s251 .s251-h2 { font-size: 28px; line-height: 1.15; }
body.s251 .s251-lead { margin: 0; font-size: 16px; color: var(--s251-muted); max-width: 480px; }
body.s251 .s251-link { color: var(--s251-ink); text-decoration: underline; text-underline-offset: 4px; font-size: 14px; white-space: nowrap; }
body.s251 a.s251-link:hover, body.s251 .s251-header a:hover, body.s251 .s251-footer a:hover { color: var(--s251-sage-deep); }
body.s251 .s251-section { padding-bottom: 64px; }
body.s251 .s251-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 20px; }

/* ---------- buttons ---------- */
body.s251 .s251-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 48px; padding: 0 24px; border-radius: 999px; font: inherit; font-size: 15px; font-weight: 500; cursor: pointer; text-decoration: none; transition: background-color .15s, color .15s; }
body.s251 .s251-btn--primary { background: var(--s251-ink); color: var(--s251-ground); border: 1px solid var(--s251-ink); }
body.s251 .s251-btn--primary:hover { background: #000; color: var(--s251-ground); }
body.s251 .s251-btn--outline { background: transparent; color: var(--s251-ink); border: 1px solid var(--s251-ink); }
body.s251 .s251-btn--outline:hover { background: var(--s251-ink); color: var(--s251-ground); }
body.s251 .s251-chip { display: inline-flex; align-items: center; height: 40px; padding: 0 16px; border: 1px solid #D9D3C9; border-radius: 999px; background: var(--s251-surface); color: var(--s251-ink); font-size: 14px; text-decoration: none; }
body.s251 .s251-chip:hover { border-color: var(--s251-ink); color: var(--s251-ink); }
body.s251 .s251-icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; background: transparent; color: var(--s251-ink); cursor: pointer; position: relative; padding: 0; text-decoration: none; }
body.s251 .s251-icon-btn svg { width: 22px; height: 22px; }
body.s251 .s251-badge { position: absolute; top: 6px; right: 4px; min-width: 16px; height: 16px; padding: 0 4px; box-sizing: border-box; border-radius: 999px; background: var(--s251-ink); color: var(--s251-ground); font-size: 10px; font-weight: 600; line-height: 16px; text-align: center; pointer-events: none; }
body.s251 .s251-badge[data-empty="1"] { display: none; }

/* ---------- announcement + header ---------- */
body.s251 .s251-announce__more { display: none; }
body.s251 .s251-announce { background: var(--s251-ink); color: var(--s251-ground); font-size: 12px; letter-spacing: .02em; text-align: center; padding: 8px 16px; }
body.s251 .s251-header { position: sticky; top: 0; z-index: 1030; background: var(--s251-ground); border-bottom: 1px solid var(--s251-line); }
body.s251 .s251-header__bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 60px; }
body.s251 .s251-header__start, body.s251 .s251-header__end { display: flex; align-items: center; }
body.s251 .s251-header__start { margin-left: -10px; }
body.s251 .s251-header__end { justify-content: flex-end; margin-right: -10px; gap: 2px; }
body.s251 .s251-header__nav { gap: 24px; font-size: 14px; margin-left: 10px; white-space: nowrap; min-width: 0; overflow: hidden; }
body.s251 .s251-wide { display: none !important; }
body.s251 .s251-header__nav a { color: var(--s251-ink); text-decoration: none; }
body.s251 .s251-logo { display: flex; align-items: center; }
body.s251 .s251-logo img { height: 18px; width: auto; display: block; }
body.s251 .s251-search { padding-bottom: 12px; }
body.s251 .s251-search__field { position: relative; }
body.s251 .s251-search__box { display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 6px 0 14px; background: var(--s251-surface); border: 1px solid var(--s251-line); border-radius: 999px; color: var(--s251-muted); }
body.s251 .s251-search__box:focus-within { border-color: var(--s251-ink); }
body.s251 .s251-search__box input { flex: 1; min-width: 0; border: 0; background: transparent; font: inherit; font-size: 15px; color: var(--s251-ink); outline: none; height: 100%; }
body.s251 .s251-search__box button { border: 0; background: var(--s251-ink); color: var(--s251-ground); border-radius: 999px; height: 34px; padding: 0 16px; font: inherit; font-size: 14px; cursor: pointer; }
body.s251 .s251-search .typed-search-box { z-index: 1040; border-radius: var(--s251-radius) !important; margin-top: 6px; }
/* vendor cart dropdown hosted in the new header */
body.s251 .s251-cart { position: relative; display: flex; align-items: center; }
body.s251 .s251-cart #cart_items { height: 44px !important; display: flex; align-items: center; }
body.s251 .s251-cart #cart_items > a { width: 44px; height: 44px; justify-content: center; padding: 0 !important; }
body.s251 .s251-cart #cart_items > a > span:not(.mr-1):not(.mr-2) { display: none !important; }
body.s251 .s251-cart #cart_items > a svg { color: var(--s251-ink) !important; width: 22px; height: 22px; }
body.s251 .s251-cart #cart_items > a .mr-1, body.s251 .s251-cart #cart_items > a .mr-2 { margin: 0 !important; display: flex; }
body.s251 .s251-cart .dropdown-menu { border: 1px solid var(--s251-line); border-radius: var(--s251-radius) !important; box-shadow: 0 12px 32px rgba(35,35,35,.12); }

/* ---------- menu drawer ---------- */
body.s251 .s251-drawer { position: fixed; inset: 0; z-index: 1060; display: flex; }
body.s251 .s251-drawer[hidden] { display: none; }
body.s251 .s251-drawer__panel { width: 86%; max-width: 360px; height: 100%; overflow-y: auto; background: var(--s251-ground); padding: 12px 20px 32px; box-sizing: border-box; display: flex; flex-direction: column; gap: 6px; }
body.s251 .s251-drawer__scrim { flex: 1; border: 0; background: rgba(35,35,35,.45); cursor: pointer; }
body.s251 .s251-drawer__top { display: flex; align-items: center; justify-content: space-between; height: 48px; }
body.s251 .s251-drawer__label { margin: 18px 0 4px; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--s251-muted); }
body.s251 .s251-drawer__cat { display: block; padding: 12px 0; border-bottom: 1px solid var(--s251-line); font-family: var(--s251-serif); font-size: 22px; color: var(--s251-ink); text-decoration: none; }
body.s251 .s251-drawer__link { padding: 10px 0; color: var(--s251-ink); text-decoration: none; }
body.s251 .s251-drawer #lang-change .dropdown-menu { position: static; display: flex; flex-wrap: wrap; gap: 8px; float: none; border: 0; background: transparent; padding: 0; margin: 4px 0 0; box-shadow: none; min-width: 0; }
body.s251 .s251-drawer #lang-change .dropdown-menu a { display: inline-flex; align-items: center; height: 36px; padding: 0 14px; border: 1px solid #D9D3C9; border-radius: 999px; color: var(--s251-ink); font-size: 13px; text-decoration: none; }
body.s251 .s251-drawer #lang-change .dropdown-menu a.active { background: var(--s251-ink); color: var(--s251-ground); border-color: var(--s251-ink); }

/* ---------- product card ---------- */
body.s251 .s251-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 28px 12px; }
body.s251 .s251-card { position: relative; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
body.s251 .s251-card__link { display: flex; flex-direction: column; gap: 10px; color: var(--s251-ink); text-decoration: none; }
body.s251 .s251-card__media { display: block; aspect-ratio: 4 / 5; border-radius: var(--s251-radius); overflow: hidden; background: var(--s251-tint); }
body.s251 .s251-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
body.s251 .s251-card__link:hover .s251-card__media img { transform: scale(1.03); }
body.s251 .s251-card__brand { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--s251-muted); }
body.s251 .s251-card__name { font-size: 14px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: -6px; }
body.s251 .s251-card__price { font-size: 14px; font-weight: 600; margin-top: -6px; display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
body.s251 .s251-card__price del { font-weight: 400; color: var(--s251-muted); font-size: 13px; }
body.s251 .s251-card__badge { position: absolute; left: 8px; top: 8px; padding: 4px 10px; border-radius: 999px; background: var(--s251-ink); color: var(--s251-ground); font-size: 11px; font-weight: 600; }
body.s251 .s251-card__wish { position: absolute; top: 8px; right: 8px; width: 36px; height: 36px; border-radius: 999px; border: 0; background: rgba(247,245,241,.92); color: var(--s251-ink); display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
body.s251 .s251-card__wish svg { width: 18px; height: 18px; }
body.s251 .s251-card__soldout { position: absolute; left: 8px; top: 8px; padding: 4px 10px; border-radius: 999px; background: var(--s251-surface); color: var(--s251-muted); font-size: 11px; font-weight: 600; }

/* ---------- homepage ---------- */
body.s251 .s251-hero { display: grid; grid-template-columns: 1fr; gap: 28px; padding-top: 20px; padding-bottom: 48px; }
body.s251 .s251-hero__copy { order: 2; display: flex; flex-direction: column; gap: 16px; }
body.s251 .s251-hero__media { order: 1; position: relative; border-radius: var(--s251-radius); overflow: hidden; aspect-ratio: 4 / 5; background: var(--s251-tint); }
body.s251 .s251-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.s251 .s251-hero__tag { position: absolute; left: 12px; bottom: 12px; padding: 8px 14px; background: var(--s251-ground); border-radius: 999px; font-size: 13px; font-weight: 500; color: var(--s251-ink); text-decoration: none; }
body.s251 .s251-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
body.s251 .s251-rail { display: flex; gap: 12px; overflow-x: auto; margin: 0 -16px; padding: 0 16px; scrollbar-width: none; }
body.s251 .s251-rail::-webkit-scrollbar { display: none; }
body.s251 .s251-rail__item { flex: 0 0 auto; width: 136px; display: flex; flex-direction: column; gap: 10px; color: var(--s251-ink); text-decoration: none; font-size: 14px; font-weight: 500; }
body.s251 .s251-rail__media { display: block; aspect-ratio: 4 / 5; border-radius: var(--s251-radius); overflow: hidden; background: var(--s251-tint); }
body.s251 .s251-rail__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.s251 .s251-stores { background: var(--s251-sage); }
body.s251 .s251-stores__inner { padding-top: 56px; padding-bottom: 56px; display: flex; flex-direction: column; gap: 24px; }
body.s251 .s251-stores .s251-eyebrow { color: var(--s251-ink); }
body.s251 .s251-stores__grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
body.s251 .s251-store { background: var(--s251-ground); border-radius: var(--s251-radius); padding: 20px; display: flex; flex-direction: column; gap: 6px; }
body.s251 .s251-store__name { display: flex; align-items: center; gap: 8px; font-family: var(--s251-serif); font-size: 22px; }
body.s251 .s251-store__line { font-size: 14px; color: var(--s251-muted); }
body.s251 .s251-maker { display: grid; grid-template-columns: 1fr; gap: 24px; padding-top: 64px; padding-bottom: 64px; }
body.s251 .s251-maker__media { display: grid; grid-template-columns: 1.4fr 1fr; gap: 8px; }
body.s251 .s251-maker__media span { display: block; border-radius: var(--s251-radius); overflow: hidden; background: var(--s251-tint); }
body.s251 .s251-maker__media span:first-child { grid-row: span 2; aspect-ratio: 4 / 5; }
body.s251 .s251-maker__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.s251 .s251-maker__copy { display: flex; flex-direction: column; gap: 14px; justify-content: center; }
body.s251 .s251-maker__quote { margin: 0; font-family: var(--s251-serif); font-size: 21px; line-height: 1.4; }
body.s251 .s251-news { background: var(--s251-surface); border: 1px solid var(--s251-line); border-radius: var(--s251-radius); padding: 28px 20px; display: flex; flex-direction: column; gap: 12px; max-width: 760px; margin: 0 auto; text-align: center; align-items: center; }
body.s251 .s251-news form { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; max-width: 460px; margin-top: 4px; }
body.s251 .s251-field { flex: 1 1 220px; display: flex; flex-direction: column; gap: 4px; text-align: left; font-size: 12px; color: var(--s251-muted); }
body.s251 .s251-field input { height: 46px; padding: 0 14px; border: 1px solid var(--s251-field); border-radius: var(--s251-radius); font: inherit; font-size: 15px; color: var(--s251-ink); background: var(--s251-surface); }
body.s251 .s251-field input:focus { border-color: var(--s251-ink); outline: none; }
body.s251 .s251-news .s251-btn { align-self: flex-end; height: 46px; }

/* ---------- footer ---------- */
body.s251 .s251-footer { background: var(--s251-ink); color: var(--s251-ground); }
body.s251 .s251-footer__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px 24px; padding-top: 48px; padding-bottom: 32px; }
body.s251 .s251-footer__intro { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 12px; max-width: 360px; }
body.s251 .s251-footer__intro img { height: 18px; width: auto; align-self: flex-start; filter: invert(1); }
body.s251 .s251-footer__intro p { margin: 0; font-size: 14px; color: #CFC9BF; }
body.s251 .s251-footer nav { display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
body.s251 .s251-footer nav a, body.s251 .s251-footer__contact a { color: var(--s251-ground); text-decoration: none; }
body.s251 .s251-footer__title { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--s251-sage); }
body.s251 .s251-footer__contact { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 8px; font-size: 14px; color: #CFC9BF; }
body.s251 .s251-footer__bottom { border-top: 1px solid #3A3A3A; padding-top: 16px; padding-bottom: 24px; font-size: 12px; color: #CFC9BF; display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; }
body.s251 .s251-footer__social { display: flex; gap: 4px; }
body.s251 .s251-footer__social a { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; color: var(--s251-ground); border: 1px solid #3A3A3A; border-radius: 999px; }
body.s251 .s251-footer__social svg { width: 18px; height: 18px; }
/* keep the vendor mobile bottom bar clear of the footer */
@media (max-width: 1199px) { body.s251 .s251-footer { padding-bottom: 64px; } }

/* ---------- listing (store251::frontend.product_listing) ---------- */
body.s251 .s251-listing { padding-top: 16px; padding-bottom: 64px; }
body.s251 .s251-crumbs { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; color: var(--s251-muted); }
body.s251 .s251-crumbs a { color: var(--s251-muted); text-decoration: none; }
body.s251 .s251-crumbs a:hover { color: var(--s251-ink); }
body.s251 .s251-crumbs [aria-current] { color: var(--s251-ink); }
body.s251 .s251-listing__head { display: flex; flex-direction: column; gap: 8px; margin: 16px 0 20px; }
body.s251 .s251-listing__title { font-size: 40px; }
body.s251 .s251-chips { display: flex; gap: 8px; overflow-x: auto; margin: 0 -16px 16px; padding: 0 16px 2px; scrollbar-width: none; }
body.s251 .s251-chips::-webkit-scrollbar { display: none; }
body.s251 .s251-chips .s251-chip { flex: 0 0 auto; white-space: nowrap; }
body.s251 .s251-chip.is-active { background: var(--s251-ink); color: var(--s251-ground); border-color: var(--s251-ink); }
body.s251 .s251-listing__layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
body.s251 .s251-toolbar { position: sticky; top: 60px; z-index: 10; background: var(--s251-ground); display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--s251-line); margin-bottom: 20px; }
body.s251 .s251-toolbar__filters { height: 40px; padding: 0 16px; font-size: 14px; }
body.s251 .s251-toolbar__count { font-size: 14px; color: var(--s251-muted); margin-right: auto; }
body.s251 .s251-sort { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 14px; color: var(--s251-muted); }
body.s251 .s251-sort select { height: 40px; padding: 0 12px; border: 1px solid var(--s251-field); border-radius: 999px; background: var(--s251-surface); font: inherit; font-size: 14px; color: var(--s251-ink); }
body.s251 .s251-results__grid.is-loading { opacity: .45; transition: opacity .2s; }
body.s251 .s251-empty { grid-column: 1 / -1; margin: 24px 0; color: var(--s251-muted); }
body.s251 .s251-more { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: 40px; }
body.s251 .s251-more__status { margin: 0; font-size: 13px; color: var(--s251-muted); }
/* filters: a bottom sheet on phones, a sidebar on desktop */
body.s251 .s251-filters { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1065; max-height: 84vh; display: flex; flex-direction: column; background: var(--s251-ground); border-radius: 16px 16px 0 0; transform: translateY(105%); transition: transform .25s ease; box-shadow: 0 -12px 32px rgba(35,35,35,.18); }
body.s251 .s251-filters { visibility: hidden; transition: transform .25s ease, visibility 0s linear .25s; }
body.s251 .s251-filters.is-open { transform: none; visibility: visible; transition: transform .25s ease; }
body.s251 .s251-toolbar__count { white-space: nowrap; }
body.s251 .s251-sort__label { display: none; }
body.s251 .s251-sort select { max-width: 170px; }
/* vendor accent colour (used for selected thumbnails, tabs, info icons) follows the brand */
body.s251 { --blue: #232323; --hov-blue: #000000; --soft-blue: rgba(35, 35, 35, .08); }
body.s251 .aiz-main-wrapper h1.fs-24 { font-size: 32px !important; line-height: 1.15; font-weight: 400 !important; font-family: var(--s251-serif); }
body.s251 .s251-scrim { position: fixed; inset: 0; z-index: 1064; background: rgba(35,35,35,.45); }
body.s251 .s251-scrim[hidden] { display: none; }
body.s251 .s251-filters__head { display: flex; align-items: center; justify-content: space-between; padding: 8px 12px 8px 20px; border-bottom: 1px solid var(--s251-line); }
body.s251 .s251-filters__title { font-family: var(--s251-serif); font-size: 22px; }
body.s251 .s251-filters__body { overflow-y: auto; padding: 20px; display: flex; flex-direction: column; gap: 28px; }
body.s251 .s251-filters__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 20px 20px; border-top: 1px solid var(--s251-line); }
body.s251 .s251-filters__foot .s251-btn { flex: 1; }
body.s251 .s251-fieldset { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
body.s251 .s251-fieldset legend { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--s251-muted); margin-bottom: 8px; padding: 0; }
body.s251 .s251-check { display: flex; align-items: center; gap: 10px; margin: 0; min-height: 32px; font-size: 14px; cursor: pointer; color: var(--s251-ink); }
body.s251 .s251-check input { width: 18px; height: 18px; accent-color: var(--s251-ink); flex: 0 0 auto; margin: 0; }
body.s251 .s251-count { color: var(--s251-muted); margin-left: auto; font-size: 13px; }
body.s251 .s251-swatch { width: 16px; height: 16px; border-radius: 999px; border: 1px solid var(--s251-line); flex: 0 0 auto; }
body.s251 .s251-price { display: flex; gap: 10px; }
body.s251 .s251-price .s251-field { flex: 1; }
body.s251 .s251-price input { height: 42px; width: 100%; box-sizing: border-box; }

/* ---------- product page (vendor product_details, restyled) ---------- */
body.s251 #live-product-viewing-visitors, body.s251 .selected-variations { display: none !important; }
body.s251 .aiz-main-wrapper div:has(> .sku-copy-btn) { display: none !important; }
body.s251 #option-choice-form h5.text-gray, body.s251 #option-choice-form .fs-16.fw-600.text-gray { font-size: 11px !important; letter-spacing: .12em; text-transform: uppercase; color: var(--s251-muted) !important; font-weight: 600 !important; }
body.s251 #option-choice-form .border-dashed { border: 1px solid var(--s251-line) !important; border-radius: var(--s251-radius) !important; background: var(--s251-surface); }
body.s251 .aiz-main-wrapper .border-bottom-dashed { border-bottom: 1px solid var(--s251-line) !important; }
body.s251 .aiz-main-wrapper .border-top-dashed { border-top: 1px solid var(--s251-line) !important; }
body.s251 .aiz-main-wrapper .out-of-stock { background: var(--s251-line) !important; color: var(--s251-muted) !important; border-radius: 999px !important; }
body.s251 .aiz-main-wrapper .buy-now, body.s251 .aiz-main-wrapper .add-to-cart { border-radius: 999px !important; padding-top: 14px !important; padding-bottom: 14px !important; }
body.s251 .aiz-main-wrapper .product-details-page .aiz-plus-minus, body.s251 .aiz-main-wrapper .product-quantity .aiz-plus-minus { border: 1px solid var(--s251-field) !important; border-radius: 999px !important; background: var(--s251-surface); }
body.s251 .aiz-main-wrapper .product-gallery-thumb .carousel-box, body.s251 .aiz-main-wrapper .product-gallery-thumb img { border-radius: var(--s251-radius) !important; }
body.s251 .aiz-main-wrapper .product-gallery-thumb .slick-current img, body.s251 .aiz-main-wrapper .product-gallery-thumb .slick-current .border { border-color: var(--s251-ink) !important; }
body.s251 .aiz-main-wrapper .product-gallery .carousel-box, body.s251 .aiz-main-wrapper .product-gallery img { border-radius: var(--s251-radius); }
body.s251 .aiz-main-wrapper .nav-link.active, body.s251 .aiz-main-wrapper .nav-link:hover { color: var(--s251-ink) !important; }
body.s251 .aiz-main-wrapper .nav-link.active::after, body.s251 .aiz-main-wrapper .active-bar, body.s251 .aiz-main-wrapper .nav-link.active::before { background: var(--s251-ink) !important; border-color: var(--s251-ink) !important; }
body.s251 #description .bg-white, body.s251 #relatedProduct .bg-white, body.s251 #product_query .bg-white { background: var(--s251-surface) !important; border-radius: var(--s251-radius); }
body.s251 #description { line-height: 1.65; }
/* product descriptions pasted from editors carry inline fonts (Times etc.) */
body.s251 #description :is(p, span, li, div, strong, b, em, td, h1, h2, h3, h4, h5, h6) { font-family: var(--s251-sans) !important; }
body.s251 .aiz-main-wrapper .text-gray { color: var(--s251-muted) !important; }
/* sticky buy bar (vendor smart bar) */
body.s251 .smart-bar { background: var(--s251-ground) !important; border-top: 1px solid var(--s251-line) !important; box-shadow: 0 -8px 24px rgba(35,35,35,.08) !important; padding-top: 10px !important; padding-bottom: 12px !important; }
body.s251 .smart-bar h6, body.s251 .smart-bar .fw-700, body.s251 .smart-bar .fs-16 { color: var(--s251-ink) !important; }
body.s251 .smart-bar .btn { border-radius: 999px !important; background: var(--s251-ink) !important; color: var(--s251-ground) !important; border: 0 !important; min-height: 44px; padding-left: 22px !important; padding-right: 22px !important; }
body.s251 .smart-bar img { border-radius: var(--s251-radius) !important; }

/* ---------- vendor pages restyled until they get STORE251 templates ---------- */
body.s251 .aiz-main-wrapper .bg-white:not(.s251-keep) { background-color: var(--s251-ground) !important; }
body.s251 .aiz-main-wrapper .card, body.s251 .aiz-main-wrapper .bg-white.border { border-color: var(--s251-line) !important; }
body.s251 .aiz-main-wrapper h1.fs-24, body.s251 .aiz-main-wrapper h1.fs-20, body.s251 .aiz-main-wrapper h1.fs-md-24,
body.s251 .aiz-main-wrapper .text-dark.fw-700.fs-24 { font-family: var(--s251-serif); font-weight: 400 !important; letter-spacing: -.01em; }
body.s251 .aiz-main-wrapper .btn { border-radius: 999px !important; }
body.s251 .aiz-main-wrapper .btn-primary, body.s251 .aiz-main-wrapper .btn-secondary,
body.s251 .aiz-main-wrapper .buy-now { background: var(--s251-ink) !important; border-color: var(--s251-ink) !important; color: var(--s251-ground) !important; }
body.s251 .aiz-main-wrapper .add-to-cart { background: transparent !important; color: var(--s251-ink) !important; border: 1px solid var(--s251-ink) !important; border-radius: 999px !important; }
body.s251 .aiz-main-wrapper .add-to-cart:hover { background: var(--s251-ink) !important; color: var(--s251-ground) !important; }
body.s251 .aiz-main-wrapper .aiz-megabox .aiz-megabox-elem { border-radius: var(--s251-radius) !important; border-color: var(--s251-field) !important; }
body.s251 .aiz-main-wrapper .aiz-megabox input:checked ~ .aiz-megabox-elem { border-color: var(--s251-ink) !important; box-shadow: inset 0 0 0 1px var(--s251-ink); }
body.s251 .aiz-main-wrapper .product-quantity { border-radius: 999px; }
body.s251 .aiz-main-wrapper .breadcrumb { background: transparent; font-size: 13px; }
body.s251 .aiz-main-wrapper .text-primary, body.s251 .aiz-main-wrapper .text-blue { color: var(--s251-sage-deep) !important; }
body.s251 .aiz-main-wrapper .bg-soft-blue, body.s251 .aiz-main-wrapper .bg-soft-primary { background-color: var(--s251-tint) !important; }
body.s251 .aiz-main-wrapper .form-control { border-color: var(--s251-field); border-radius: var(--s251-radius); }
body.s251 .aiz-main-wrapper .form-control:focus { border-color: var(--s251-ink); box-shadow: none; }

/* ---------- tablet / desktop ---------- */
@media (min-width: 768px) {
  body.s251 .s251-wrap { padding-left: 48px; padding-right: 48px; }
  body.s251 .s251-desk { display: flex !important; }
  body.s251 .s251-mob { display: none !important; }
  body.s251 .s251-search { display: none; padding-top: 4px; }
  body.s251 .s251-header.s251-search-open .s251-search { display: block; }
  body.s251 .s251-h1 { font-size: 64px; }
  body.s251 .s251-hero { grid-template-columns: 1.05fr 1fr; align-items: center; gap: 48px; }
  body.s251 .s251-hero__copy { order: 1; }
  body.s251 .s251-hero__media { order: 2; }
  body.s251 .s251-rail { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); overflow: visible; margin: 0; padding: 0; }
  body.s251 .s251-rail__item { width: auto; }
  body.s251 .s251-stores__grid { grid-template-columns: 1fr 1fr; }
  body.s251 .s251-maker { grid-template-columns: 1fr 1fr; align-items: center; gap: 48px; }
  body.s251 .s251-listing__title { font-size: 52px; }
  body.s251 .s251-listing__layout { grid-template-columns: 240px minmax(0, 1fr); gap: 40px; }
  body.s251 .s251-filters { position: sticky; top: 84px; align-self: start; max-height: calc(100vh - 100px); transform: none; transition: none; border-radius: 0; box-shadow: none; background: transparent; z-index: auto; visibility: visible; }
  body.s251 .s251-sort__label { display: inline; }
  body.s251 .s251-sort select { max-width: none; }
  body.s251 .aiz-main-wrapper h1.fs-24 { font-size: 40px !important; }
  body.s251 .s251-filters__head, body.s251 .s251-scrim, body.s251 .s251-toolbar__filters { display: none !important; }
  body.s251 .s251-filters__body { padding: 4px 0 0; }
  body.s251 .s251-filters__foot { padding: 16px 0 0; border-top: 0; }
  body.s251 .s251-filters__foot .s251-btn { display: none; }
  body.s251 .s251-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1.2fr; }
  body.s251 .s251-footer__intro, body.s251 .s251-footer__contact { grid-column: auto; }
  body.s251 .s251-announce__more { display: inline !important; }
}
@media (min-width: 1024px) {
  body.s251 .s251-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 20px; }
}
@media (min-width: 1200px) {
  body.s251 .s251-wide { display: flex !important; }
  body.s251 .s251-narrow { display: none !important; }
}

/* ---------- vendor widgets ---------- */
body.s251 .floating-buttons-section { display: none !important; }
/* the admin top banner is shown in the STORE251 announcement bar instead */
body.s251 .top-banner { display: none !important; }
body.s251 .s251-announce a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
body.s251 .aiz-main-wrapper .bootstrap-select.form-control { background: transparent !important; border: 0 !important; box-shadow: none !important; }
body.s251 .aiz-main-wrapper .bootstrap-select > .dropdown-toggle { background: var(--s251-surface) !important; border: 1px solid var(--s251-field) !important; border-radius: 999px !important; height: 40px; }
body.s251 .aiz-cookie-alert, body.s251 .aiz-cookie-alert .p-3 { border-radius: var(--s251-radius) !important; font-family: var(--s251-sans); }
body.s251 .aiz-cookie-alert .btn { border-radius: 999px !important; background: var(--s251-ink) !important; border-color: var(--s251-ink) !important; }
body.s251 .aiz-mobile-bottom-nav { background: var(--s251-ground) !important; border-color: var(--s251-line) !important; font-family: var(--s251-sans); }

/* ---------- hero slideshow (2-3 images) ---------- */
body.s251 .s251-slides { position: absolute; inset: 0; }
body.s251 .s251-slides__track { display: flex; height: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
body.s251 .s251-slides__track::-webkit-scrollbar { display: none; }
body.s251 .s251-slides__track:focus-visible { outline: 2px solid var(--s251-ink); outline-offset: -4px; }
body.s251 .s251-slides__slide { flex: 0 0 100%; height: 100%; scroll-snap-align: start; scroll-snap-stop: always; }
body.s251 .s251-slides__slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.s251 .s251-slides__dots { position: absolute; left: 0; right: 0; bottom: 14px; display: flex; justify-content: center; gap: 4px; pointer-events: none; }
body.s251 .s251-slides__dots button { pointer-events: auto; width: 28px; height: 28px; padding: 0; border: 0; background: transparent; cursor: pointer; display: flex; align-items: center; justify-content: center; }
body.s251 .s251-slides__dots button::before { content: ''; width: 8px; height: 8px; border-radius: 999px; background: rgba(247,245,241,.6); box-shadow: 0 0 0 1px rgba(35,35,35,.15); transition: width .25s ease, background-color .25s ease; }
body.s251 .s251-slides__dots button[aria-current="true"]::before { width: 22px; background: var(--s251-ground); }
/* with a slideshow the category tag sits above the dots */
body.s251 .s251-slides ~ .s251-hero__tag { bottom: 48px; }

/* ---------- homepage: extra sections ---------- */
/* a section right after the full-width stores band needs its own top spacing */
body.s251 .s251-stores + section { padding-top: 64px; }
body.s251 .s251-section__sub { margin: 4px 0 0; font-size: 14px; color: var(--s251-muted); }
body.s251 .s251-banners { display: grid; grid-template-columns: 1fr; gap: 12px; }
body.s251 .s251-banner { display: block; border-radius: var(--s251-radius); overflow: hidden; background: var(--s251-tint); aspect-ratio: 16 / 10; }
body.s251 .s251-banner img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
body.s251 a.s251-banner:hover img { transform: scale(1.03); }
body.s251 .s251-flash { display: grid; grid-template-columns: 1fr; gap: 24px; padding: 28px 20px; border-radius: var(--s251-radius); background: var(--s251-surface); border: 1px solid var(--s251-line); }
body.s251 .s251-flash__copy { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
body.s251 .s251-flash__timer { display: flex; align-items: baseline; gap: 4px 6px; flex-wrap: wrap; margin: 4px 0 8px; font-variant-numeric: tabular-nums; }
body.s251 .s251-flash__timer span { font-family: var(--s251-serif); font-size: 32px; line-height: 1; min-width: 1.4em; }
body.s251 .s251-flash__timer small { font-size: 12px; color: var(--s251-muted); margin-right: 8px; }
body.s251 .s251-stagger__item { min-width: 0; }

@media (min-width: 768px) {
  body.s251 .s251-banners--2 { grid-template-columns: 1fr 1fr; }
  body.s251 .s251-banners--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.s251 .s251-flash { grid-template-columns: minmax(240px, 1fr) 2.4fr; align-items: center; padding: 40px; }
  body.s251 .s251-flash__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ---------- motion (only with html.s251-motion, set when reduced motion is not requested) ---------- */
html.s251-motion body.s251 .s251-reveal { opacity: 0; transform: translate3d(0, 24px, 0); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
html.s251-motion body.s251 .s251-reveal.is-visible { opacity: 1; transform: none; }
html.s251-motion body.s251 .s251-stagger > .s251-stagger__item { opacity: 0; transform: translate3d(0, 16px, 0); transition: opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1); transition-delay: calc(min(var(--i, 0), 8) * 60ms); }
html.s251-motion body.s251 .s251-stagger.is-visible > .s251-stagger__item { opacity: 1; transform: none; }
/* failsafe: never leave content hidden if store251.js does not run */
html.s251-motion body.s251 .s251-reveal:not(.is-visible), html.s251-motion body.s251 .s251-stagger:not(.is-visible) > .s251-stagger__item { animation: s251-failsafe 0s linear 3s forwards; }
@keyframes s251-failsafe { to { opacity: 1; transform: none; } }

/* hero entrance: pure CSS, does not wait for JavaScript or delay the hero image */
html.s251-motion body.s251 .s251-hero--intro .s251-hero__copy > * { animation: s251-rise .8s cubic-bezier(.2,.7,.2,1) both; }
html.s251-motion body.s251 .s251-hero--intro .s251-hero__copy > :nth-child(2) { animation-delay: .08s; }
html.s251-motion body.s251 .s251-hero--intro .s251-hero__copy > :nth-child(3) { animation-delay: .16s; }
html.s251-motion body.s251 .s251-hero--intro .s251-hero__copy > :nth-child(4) { animation-delay: .24s; }
html.s251-motion body.s251 .s251-hero--intro .s251-hero__media img { animation: s251-settle 1.4s cubic-bezier(.2,.7,.2,1) both; }
@keyframes s251-rise { from { opacity: 0; transform: translate3d(0, 18px, 0); } to { opacity: 1; transform: none; } }
@keyframes s251-settle { from { transform: scale(1.06); } to { transform: none; } }

/* images fade in once decoded */
html.s251-motion body.s251 :is(.s251-card__media, .s251-rail__media, .s251-banner, .s251-maker__media) img { opacity: 0; transition: opacity .5s ease, transform .4s ease; }
html.s251-motion body.s251 :is(.s251-card__media, .s251-rail__media, .s251-banner, .s251-maker__media) img.is-loaded { opacity: 1; }

/* small touches */
body.s251 .s251-header { transition: box-shadow .25s ease; }
body.s251 .s251-header.is-scrolled { box-shadow: 0 6px 20px rgba(35,35,35,.06); }
body.s251 .s251-card__wish { transition: transform .15s ease, background-color .15s ease; }
body.s251 .s251-card__wish:active { transform: scale(.88); }
body.s251 .s251-btn { transition: background-color .15s, color .15s, transform .15s ease; }
body.s251 .s251-btn:active { transform: scale(.98); }

/* smooth page-to-page transitions in browsers that support cross-document view transitions */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  ::view-transition-old(root), ::view-transition-new(root) { animation-duration: .22s; }
}

@media (prefers-reduced-motion: reduce) {
  body.s251 * { transition: none !important; }
}

/* ---------- all categories page ---------- */
body.s251 .s251-allcats { padding-top: 16px; padding-bottom: 64px; }
body.s251 .s251-allcats__head { display: flex; flex-direction: column; gap: 8px; margin: 20px 0 20px; }
body.s251 .s251-allcats__jump { margin-bottom: 28px; }
body.s251 .s251-allcats__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
body.s251 .s251-catcard { display: flex; flex-direction: column; background: var(--s251-surface); border: 1px solid var(--s251-line); border-radius: var(--s251-radius); overflow: hidden; scroll-margin-top: 84px; }
body.s251 .s251-catcard__media { display: block; aspect-ratio: 16 / 10; background: var(--s251-tint); overflow: hidden; }
body.s251 .s251-catcard__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
body.s251 .s251-catcard:hover .s251-catcard__media img { transform: scale(1.04); }
body.s251 .s251-catcard__body { display: flex; flex-direction: column; gap: 16px; flex: 1; padding: 20px; }
body.s251 .s251-catcard__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
body.s251 .s251-catcard__title { font-size: 26px; }
body.s251 .s251-catcard__title a { color: inherit; text-decoration: none; }
body.s251 .s251-catcard__title a:hover { color: var(--s251-sage-deep); }
body.s251 .s251-catcard__count { flex: 0 0 auto; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--s251-muted); }
body.s251 .s251-catcard__subs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
body.s251 .s251-catcard__subs a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border: 1px solid var(--s251-line); border-radius: 999px; background: var(--s251-ground); color: var(--s251-ink); font-size: 14px; text-decoration: none; transition: border-color .15s, background-color .15s; }
body.s251 .s251-catcard__subs a:hover { border-color: var(--s251-ink); background: var(--s251-surface); color: var(--s251-ink); }
body.s251 .s251-catcard__all { margin-top: auto; align-self: flex-start; }
@media (min-width: 768px) {
  body.s251 .s251-allcats { padding-top: 24px; padding-bottom: 96px; }
  body.s251 .s251-allcats__head { margin: 28px 0 24px; }
  body.s251 .s251-allcats__jump { flex-wrap: wrap; overflow: visible; margin: 0 0 40px; padding: 0; }
  body.s251 .s251-allcats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
  body.s251 .s251-catcard__media { aspect-ratio: 4 / 3; }
  body.s251 .s251-catcard__body { padding: 24px; }
}
@media (min-width: 1200px) {
  body.s251 .s251-allcats__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  body.s251 .s251-catcard__media img { transition: none; }
  body.s251 .s251-catcard:hover .s251-catcard__media img { transform: none; }
}
