/* ==========================================================================
   BRICO AMGOUN - mobile-app theme (v7)
   Implements the Stitch reference UI: phone-app layout, orange (#f04e23)
   primary, #f9f9fb surfaces, white rounded cards, bottom tab bar.
   Loaded AFTER tokens.css + store.css; wins the cascade on equal
   specificity, and uses stronger selectors only where the base layers
   already qualify theirs.
   ========================================================================== */

/* Brand rule: no violet/purple anywhere on the customer storefront.
   Re-point the violet family (and --brand, which is violet on the store)
   to the coral family so every legacy component follows the theme. */
:root {
  --brand: #f04e23;
  --brand-deep: #c93a17;
  --brand-soft: #fde8e1;
  --violet: #f04e23;
  --violet-deep: #c93a17;
  --violet-soft: #fde8e1;
}

/* ---------- base: clean light-gray app canvas ---------- */
html body {
  background: #e5e7eb;
  color: #1f2937;
}
html body::before,
html body::after {
  display: none;
  content: none;
}

/* Centered phone-width app column. Applies to the storefront pages'
   <main class="page"> (home) and <main><div class="wrap"> (others). */
main.page,
main > .wrap {
  max-width: 480px;
  margin: 0 auto;
  padding: 0 16px 110px;
  background: #f9f9fb;
  min-height: 100vh;
  box-shadow: 0 0 40px rgba(17, 24, 39, 0.08);
}

/* ---------- header: menu / brand / cart ---------- */
.hd {
  background: #f9f9fb;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom: 0;
  box-shadow: none;
  position: sticky;
  top: 0;
  z-index: 60;
}
.hd::after {
  display: none;
}
.hd-appbar {
  max-width: 480px;
  margin: 0 auto;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.hd-menu {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin-left: -8px;
  border: 0;
  background: transparent;
  color: #374151;
  border-radius: 10px;
  cursor: pointer;
}
.hd-menu svg {
  width: 24px;
  height: 24px;
}
.hd-menu:hover {
  color: #111827;
}
.hd .brand {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
}
.hd .brand-bag {
  display: inline-flex;
  width: 22px;
  height: 22px;
  color: var(--coral);
}
.hd .brand-bag svg {
  width: 100%;
  height: 100%;
}
.hd .brand-word {
  font-weight: 800;
  font-size: 16px;
  letter-spacing: -0.02em;
  color: #111827;
  font-family: var(--font-sans);
}
.hd .brand-word em {
  font-style: normal;
  color: var(--coral);
}
.hd .brand-mark {
  display: none;
}
.hd-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-right: -8px;
}
.hd-actions .hd-link,
.hd-actions a.hd-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  color: #374151;
  text-decoration: none;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 0;
}
.hd-actions .hd-link:hover {
  color: #111827;
}
.hd-actions .hd-link svg {
  width: 24px;
  height: 24px;
}
.hd-actions .hd-link .hd-link-label {
  display: none;
}
.hd-actions .hd-link .count {
  position: absolute;
  top: 2px;
  right: 2px;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--coral);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #f9f9fb;
}
.hd-actions .hd-link .count[hidden] {
  display: none;
}
.hd-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: var(--coral);
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
}
/* header search row: visible on home, toggleable elsewhere */
.hd-searchrow {
  max-width: 480px;
  margin: 0 auto;
  padding: 0 16px 10px;
  display: none;
}
.hd-searchrow.open {
  display: block;
}
.hd-searchrow form {
  position: relative;
}
.hd-searchrow .hd-search-ic {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: #9ca3af;
  display: inline-flex;
  pointer-events: none;
}
.hd-searchrow .hd-search-ic svg {
  width: 16px;
  height: 16px;
}
.hd-searchrow input[type="search"] {
  width: 100%;
  padding: 10px 14px 10px 40px;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 12px;
  font-size: 14px;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
  font-family: var(--font-sans);
  color: #111827;
}
.hd-searchrow input[type="search"]::placeholder {
  color: #9ca3af;
}
.hd-searchrow input[type="search"]:focus {
  outline: none;
  border-color: var(--coral);
  box-shadow: 0 0 0 3px rgba(240, 78, 35, 0.12);
}
/* legacy inline search (kept in markup for ids, visually hidden) */
.hd .hd-search {
  display: none;
}
.hd-search-toggle {
  display: none;
}

/* ---------- bottom tab bar: Home / Categories / Orders / Account ---------- */
.bnav {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: 100%;
  max-width: 480px;
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-top: 1px solid #f3f4f6;
  padding: 8px 24px calc(10px + env(safe-area-inset-bottom));
  z-index: 70;
}
.bnav a {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  color: #9ca3af;
  text-decoration: none;
  font-size: 10px;
  font-weight: 500;
  padding: 2px 0;
  position: relative;
  background: none;
  border: 0;
}
.bnav a svg {
  width: 22px;
  height: 22px;
}
.bnav a.is-active {
  color: var(--coral);
  font-weight: 700;
  background: transparent;
}
.bnav-badge {
  position: absolute;
  top: 0;
  right: calc(50% - 20px);
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--coral);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.bnav-badge[hidden] {
  display: none;
}

/* ---------- home: promo banner (BEST DEALS card) ---------- */
.promo {
  margin: 2px 0 4px;
}
.promo-card {
  position: relative;
  border-radius: 20px;
  padding: 26px 22px;
  min-height: 210px;
  overflow: hidden;
  display: flex;
  align-items: center;
  background: linear-gradient(115deg, #131c31 0%, #1b2540 55%, #232f52 100%);
  box-shadow: 0 10px 24px rgba(16, 24, 40, 0.25);
}
.promo-card::after {
  content: "";
  position: absolute;
  right: -70px;
  top: 50%;
  width: 260px;
  height: 260px;
  transform: translateY(-50%);
  border-radius: 999px;
  background: radial-gradient(circle, rgba(240, 78, 35, 0.35) 0%, rgba(240, 78, 35, 0) 65%);
  pointer-events: none;
}
.promo-copy {
  position: relative;
  z-index: 1;
  max-width: 75%;
}
.promo-eyebrow {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 500;
  color: #c3cad6;
}
.promo-title {
  margin: 0;
  font-size: 34px;
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #fff;
}
.promo-off {
  margin: 6px 0 0;
  font-size: 15px;
  font-weight: 800;
  color: var(--coral);
}
.promo-sub {
  margin: 6px 0 16px;
  font-size: 12.5px;
  color: #9aa3b5;
}
.promo-card .btn-coral {
  border-radius: 999px;
  padding: 12px 30px;
  font-size: 14px;
}

/* ---------- home: section headers ---------- */
.sec-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 18px 0 12px;
}
.sec-head h2,
.sec-head h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #111827;
}
.sec-head a {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: 12px;
  font-weight: 600;
  color: var(--coral);
  text-decoration: none;
}
.sec-head a svg {
  width: 12px;
  height: 12px;
}

/* ---------- home: category tiles ---------- */
.cat-pills {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding: 2px 2px 6px;
  margin: 0 -2px;
  scrollbar-width: none;
}
.cat-pills::-webkit-scrollbar {
  display: none;
}
.cat-pill {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 0;
  font-family: var(--font-sans);
}
.cat-tile {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid #f3f4f6;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #4b5563;
  transition: background 0.15s, color 0.15s, transform 0.15s;
}
.cat-tile svg {
  width: 22px;
  height: 22px;
}
.cat-pill > span:last-child,
.cat-label {
  font-size: 11px;
  font-weight: 500;
  color: #6b7280;
  max-width: 64px;
  text-align: center;
  line-height: 1.25;
}
.cat-pill.is-active {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}
.cat-pill.is-active .cat-tile {
  background: var(--coral);
  border-color: var(--coral);
  color: #fff;
  box-shadow: 0 4px 12px rgba(240, 78, 35, 0.35);
}
.cat-pill.is-active > span:last-child,
.cat-pill.is-active .cat-label {
  color: #111827;
  font-weight: 600;
}
.cat-pill:active .cat-tile {
  transform: scale(0.94);
}

/* ---------- product cards: reference style ---------- */
.shelf-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.shelf-tag {
  position: relative;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 16px;
  padding: 12px;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
  display: flex;
  flex-direction: column;
}
.tag-media {
  position: relative;
  width: 100%;
  height: 128px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(249, 250, 251, 0.7);
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 10px;
  padding: 8px;
}
.tag-media > a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.tag-media img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.tag-media .noimg {
  width: 44px;
  height: 44px;
  color: #d1d5db;
}
.tag-badge {
  position: absolute;
  top: 8px;
  left: 8px;
  background: #fee2e2;
  color: #dc2626;
  font-size: 9px;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 6px;
  z-index: 2;
}
.tag-wish {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  border: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #9ca3af;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.08);
}
.tag-wish svg {
  width: 16px;
  height: 16px;
}
.tag-wish.is-active {
  color: #ef4444;
}
.tag-stamp {
  position: absolute;
  left: 8px;
  bottom: 8px;
  background: rgba(17, 24, 39, 0.75);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 3px 8px;
  border-radius: 6px;
  z-index: 2;
}
.shelf-tag.is-out .tag-media {
  filter: grayscale(0.7);
  opacity: 0.75;
}
.tag-actions {
  position: absolute;
  left: 8px;
  bottom: 8px;
  display: none;
  gap: 6px;
  z-index: 2;
}
.shelf-tag:hover .tag-actions {
  display: flex;
}
.tag-actions .icon-btn {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid #f3f4f6;
  color: #4b5563;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.08);
}
.tag-actions .icon-btn svg {
  width: 15px;
  height: 15px;
}
.tag-actions .icon-btn.is-active {
  color: var(--coral);
  border-color: var(--coral);
}
.tag-body {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.tag-aisle {
  margin: 0;
  font-size: 10px;
  color: #9ca3af;
  order: 2;
}
.tag-name {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  color: #111827;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  order: 1;
}
.tag-name a {
  color: inherit;
  text-decoration: none;
}
.tag-pricerow {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8px;
  margin-top: 10px;
  order: 3;
}
.tag-price {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.tag-price .now {
  font-size: 12px;
  font-weight: 800;
  color: var(--coral);
}
.shelf-tag.is-out .tag-price .now {
  color: #9ca3af;
}
.tag-wasline {
  display: flex;
  align-items: center;
  gap: 4px;
}
.tag-price .was {
  font-size: 10px;
  color: #9ca3af;
  text-decoration: line-through;
}
.tag-off {
  font-size: 9px;
  font-weight: 800;
  background: #fee2e2;
  color: #dc2626;
  padding: 1px 5px;
  border-radius: 5px;
}
/* the add button: orange square with plus (keeps .price-pill hook) */
.price-pill.tag-add {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border-radius: 9px;
  border: 0;
  background: var(--coral);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(240, 78, 35, 0.3);
  font-size: 0;
  padding: 0;
}
.price-pill.tag-add svg {
  width: 16px;
  height: 16px;
}
.price-pill.tag-add:hover {
  background: var(--coral-deep);
}
.price-pill.tag-add:active {
  transform: scale(0.92);
}
.price-pill.tag-add.is-added {
  background: var(--green);
  box-shadow: 0 2px 6px rgba(31, 169, 92, 0.3);
}

/* ---------- home toolbar / filters (compact) ---------- */
.toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 14px 0 12px;
}
.toolbar-count {
  font-size: 12px;
  color: #6b7280;
  margin-right: auto;
}
.toolbar-count strong {
  color: #111827;
}
.toolbar select {
  font-size: 12px;
  font-weight: 600;
  color: #374151;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 10px;
  padding: 7px 10px;
  font-family: var(--font-sans);
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
}
.viewtoggle {
  display: flex;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
}
.viewtoggle button {
  border: 0;
  background: transparent;
  color: #9ca3af;
  padding: 7px 9px;
  cursor: pointer;
  display: inline-flex;
}
.viewtoggle button svg {
  width: 15px;
  height: 15px;
}
.viewtoggle button.is-active {
  background: var(--coral);
  color: #fff;
}
.filters-mobile-bar {
  margin: 0 0 4px;
}
.filters-mobile-bar .btn {
  width: 100%;
  justify-content: center;
  background: #fff;
  border: 1px solid #f3f4f6;
  color: #374151;
  border-radius: 12px;
  font-weight: 600;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
}
/* filter sheet becomes a bottom sheet */
.filters {
  border-radius: 20px 20px 0 0;
}
.filters.open {
  box-shadow: 0 -12px 40px rgba(17, 24, 39, 0.18);
}
.filters-head h2 {
  color: #111827;
}
.filters .btn-primary,
#filters-done.btn-primary {
  background: var(--coral);
  border-radius: 999px;
}

/* ---------- generic buttons ---------- */
.btn {
  border-radius: 999px;
  font-family: var(--font-sans);
}
.btn-primary,
.btn-coral {
  background: var(--coral);
  border-color: var(--coral);
  color: #fff;
}
.btn-primary:hover:not(:disabled),
.btn-coral:hover:not(:disabled) {
  background: var(--coral-deep);
  border-color: var(--coral-deep);
  color: #fff;
}
.btn-ghost {
  background: #fff;
  border: 1px solid #e5e7eb;
  color: #374151;
}
.btn-ghost:hover {
  border-color: var(--coral);
  color: var(--coral);
}
.btn-outline {
  background: #fff;
  border: 1.5px solid var(--coral);
  color: var(--coral);
  font-weight: 700;
}
.btn-outline:hover {
  background: var(--coral-soft);
  color: var(--coral-deep);
}

/* ---------- fields ---------- */
.field > span {
  font-size: 12px;
  font-weight: 600;
  color: #374151;
  margin-bottom: 6px;
}
.field input,
.lookup-form input,
#coupon-code-input {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 14px;
  font-family: var(--font-sans);
  color: #111827;
  width: 100%;
}
.field input:focus,
.lookup-form input:focus,
#coupon-code-input:focus {
  outline: none;
  border-color: var(--coral);
  box-shadow: 0 0 0 3px rgba(240, 78, 35, 0.12);
}
.field input::placeholder {
  color: #9ca3af;
}
.field-wrap {
  position: relative;
}
.field-wrap .field-ic {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: #9ca3af;
  display: inline-flex;
  pointer-events: none;
}
.field-wrap .field-ic svg {
  width: 16px;
  height: 16px;
}
.field-wrap input {
  padding-left: 40px;
}

/* ---------- page heads ---------- */
.page-head {
  padding: 14px 0 4px;
}
.page-head h1 {
  margin: 0;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #111827;
}
.page-intro {
  margin: 4px 0 0;
  font-size: 13px;
  color: #6b7280;
}
.backrow {
  padding-top: 12px;
}
.backbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #f3f4f6;
  color: #111827;
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.06);
}
.backbtn svg {
  width: 18px;
  height: 18px;
}

/* ---------- product detail: reference product screen ---------- */
.crumbs {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 11px;
  color: #9ca3af;
  padding: 12px 0 10px;
}
.crumbs a {
  color: #6b7280;
  text-decoration: none;
}
.crumbs [aria-current="page"] {
  color: #111827;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 180px;
}
.pd-card {
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 20px;
  padding: 18px;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
  position: relative;
}
.gal {
  position: relative;
  border-radius: 14px;
  background: #f9f9fb;
  min-height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.gal img {
  width: 100%;
  height: 300px;
  object-fit: contain;
}
.gal .noimg.big {
  width: 72px;
  height: 72px;
  color: #d1d5db;
}
.gal .tag-badge {
  top: 12px;
  left: 12px;
  font-size: 11px;
  padding: 4px 10px;
  border-radius: 8px;
}
.gal .tag-stamp {
  left: 12px;
  bottom: 12px;
}
.gal-thumbs {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}
.gal-thumb {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  border: 2px solid #f3f4f6;
  background: #fff;
  padding: 4px;
  cursor: pointer;
  overflow: hidden;
}
.gal-thumb.is-active {
  border-color: var(--coral);
}
.gal-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.buy {
  padding: 16px 2px 0;
}
.pname {
  margin: 0;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #111827;
}
.pd-sku {
  margin: 4px 0 0;
  font-size: 11px;
  color: #9ca3af;
}
.price-block {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 10px 0 4px;
  flex-wrap: wrap;
}
.price-block .now {
  font-size: 22px;
  font-weight: 800;
  color: var(--coral);
}
.price-block .was {
  font-size: 14px;
  color: #9ca3af;
  text-decoration: line-through;
}
.price-block .plate-brand {
  background: #fee2e2;
  color: #dc2626;
  font-size: 11px;
  font-weight: 800;
  border-radius: 6px;
  padding: 2px 8px;
}
.pd-desc {
  font-size: 13px;
  line-height: 1.6;
  color: #4b5563;
  margin: 8px 0 0;
}
.qv-stock,
.pd-stock {
  margin: 10px 0 0;
}
.stocklamp {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
  padding: 4px 10px;
  border-radius: 999px;
}
.stocklamp::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: currentColor;
}
.stocklamp.ok {
  background: #dcfce7;
  color: #15803d;
}
.stocklamp.low {
  background: #fef3c7;
  color: #b45309;
}
.stocklamp.out {
  background: #f3f4f6;
  color: #6b7280;
}
.qty-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 14px 0 12px;
}
.qty-label {
  font-size: 13px;
  font-weight: 600;
  color: #374151;
}
.qty-stepper {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  padding: 3px;
}
.qty-stepper button {
  width: 30px;
  height: 30px;
  border-radius: 999px;
  border: 0;
  background: #f3f4f6;
  color: #374151;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.qty-stepper button svg {
  width: 14px;
  height: 14px;
}
.qty-stepper button:hover {
  background: var(--coral);
  color: #fff;
}
.qty-stepper .qty-value {
  min-width: 30px;
  text-align: center;
  font-weight: 700;
  font-size: 14px;
  color: #111827;
}
.buy .btn-block {
  width: 100%;
  margin-top: 8px;
  padding: 13px;
  font-size: 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.buy .btn-block svg {
  width: 18px;
  height: 18px;
}
.buy-row {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}
.buy-row .btn {
  flex: 1;
}
.spec-sheet {
  margin-top: 16px;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 14px;
  overflow: hidden;
}
.spec-sheet th,
.spec-sheet td {
  font-size: 12px;
  padding: 10px 14px;
}
.perks {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.perks li {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 12px;
  color: #4b5563;
}
.perks li svg {
  width: 18px;
  height: 18px;
  color: var(--coral);
  flex: 0 0 auto;
}
.related {
  margin-top: 22px;
}
.pd-sticky-bar {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: calc(76px + env(safe-area-inset-bottom));
  width: calc(100% - 32px);
  max-width: 448px;
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid #f3f4f6;
  border-radius: 16px;
  box-shadow: 0 8px 28px rgba(17, 24, 39, 0.14);
  padding: 10px 10px 10px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  z-index: 65;
}
.pd-sticky-bar[hidden] {
  display: none;
}
.psb-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.psb-info strong {
  font-size: 12px;
  color: #111827;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.psb-info .num {
  font-size: 13px;
  font-weight: 800;
  color: var(--coral);
}

/* ---------- checkout = "Your Cart" screen ---------- */
.steps {
  display: flex;
  gap: 6px;
  margin: 12px 0 16px;
  background: transparent;
  padding: 0;
  border: 0;
}
.step {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
  color: #9ca3af;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 999px;
  padding: 7px 4px;
}
.step .sn {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: #f3f4f6;
  color: #6b7280;
  font-size: 10px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.step.is-now {
  color: var(--coral-deep);
  border-color: var(--coral);
  background: #fff5f2;
}
.step.is-now .sn {
  background: var(--coral);
  color: #fff;
}
.step.is-done {
  color: #15803d;
}
.step.is-done .sn {
  background: #dcfce7;
  color: #15803d;
}
.co-grid {
  display: block;
}
.co-sec-title {
  font-size: 15px;
  font-weight: 800;
  color: #111827;
  margin: 4px 0 10px;
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.co-count {
  font-size: 12px;
  font-weight: 500;
  color: #9ca3af;
}
.co-row {
  display: flex;
  gap: 12px;
  align-items: center;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 16px;
  padding: 12px;
  margin-bottom: 10px;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
}
.co-thumb {
  width: 64px;
  height: 64px;
  flex: 0 0 auto;
  border-radius: 12px;
  background: #f9f9fb;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  font-size: 22px;
  font-weight: 800;
  color: #d1d5db;
}
.co-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 6px;
}
.co-main {
  flex: 1;
  min-width: 0;
}
.co-name {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  color: #111827;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.co-price {
  margin: 3px 0 8px;
  font-size: 13px;
  font-weight: 800;
  color: var(--coral);
}
.co-row .qty-stepper {
  transform: scale(0.92);
  transform-origin: left center;
}
.co-remove {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  border: 0;
  background: #fef2f2;
  color: #dc2626;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.co-remove svg {
  width: 16px;
  height: 16px;
}
.co-remove span {
  display: none;
}
.co-card,
.invoice {
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 16px;
  padding: 16px;
  margin-top: 12px;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
}
.invoice h3 {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 800;
  color: #111827;
}
.inv-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 13px;
  color: #6b7280;
  padding: 5px 0;
}
.inv-row .num {
  color: #111827;
  font-weight: 600;
}
.inv-row.total {
  border-top: 1px dashed #e5e7eb;
  margin-top: 8px;
  padding-top: 12px;
  font-size: 15px;
  color: #111827;
  font-weight: 700;
}
.inv-row.total .v {
  color: var(--coral);
  font-weight: 800;
  font-size: 17px;
}
.coupon-slot {
  margin: 10px 0 4px;
}
#coupon-form {
  display: flex;
  gap: 8px;
}
#coupon-code-input {
  flex: 1;
}
.pay-method-note {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  background: #fff5f2;
  border: 1px solid #ffe0d1;
  border-radius: 12px;
  padding: 12px;
  margin: 12px 0;
}
.pay-method-note svg {
  width: 22px;
  height: 22px;
  color: var(--coral);
  flex: 0 0 auto;
}
.pay-method-note strong {
  display: block;
  font-size: 13px;
  color: #111827;
}
.pay-method-note span {
  font-size: 12px;
  color: #6b7280;
}
#submit-order-btn {
  width: 100%;
  padding: 14px;
  font-size: 15px;
  font-weight: 700;
  margin-top: 4px;
}
.inv-hint {
  text-align: center;
  font-size: 11px;
  color: #9ca3af;
  margin: 10px 0 0;
}
.form-hint {
  font-size: 12px;
  color: #6b7280;
}
.form-hint.error {
  color: #dc2626;
}
.form-hint.success {
  color: #15803d;
}
/* confirmation */
.confirm-wrap {
  padding: 8px 0 20px;
}
.confirm-wrap .ticket {
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
}
.ticket-main {
  padding: 28px 20px 20px;
  text-align: center;
}
.ticket-ok {
  width: 64px;
  height: 64px;
  border-radius: 999px;
  background: #dcfce7;
  color: #15803d;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}
.ticket-ok svg {
  width: 30px;
  height: 30px;
}
.ticket-main .section-title {
  margin: 0 0 6px;
  font-size: 18px;
  font-weight: 800;
  color: #111827;
}
.ticket-code {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--coral);
  margin: 0 0 4px;
}
.ticket-total {
  font-size: 20px;
  font-weight: 800;
  color: #111827;
  margin: 0;
}
.ticket-pay-note {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 14px 0 0;
  font-size: 12px;
  color: #6b7280;
  background: #fff5f2;
  border: 1px solid #ffe0d1;
  border-radius: 999px;
  padding: 8px 14px;
}
.ticket-pay-note svg {
  width: 16px;
  height: 16px;
  color: var(--coral);
}
.ticket-stub {
  border-top: 2px dashed #e5e7eb;
  padding: 14px 20px;
  text-align: center;
  background: #fafafa;
}
.stub-code {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: #111827;
  margin: 0 0 4px;
}
.stub-hint {
  font-size: 11px;
  color: #9ca3af;
  margin: 0;
}
.confirm-actions {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}
.confirm-actions .btn {
  width: 100%;
  padding: 13px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 14px;
}
.confirm-actions .btn svg {
  width: 18px;
  height: 18px;
}
.confirm-note {
  text-align: center;
  margin-top: 10px;
}

/* ---------- track order ---------- */
.lookup-panel {
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 16px;
  padding: 14px;
  margin: 12px 0 16px;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
}
.lookup-form {
  display: grid;
  gap: 12px;
}
.lookup-form .field {
  margin: 0;
}
.lookup-form input {
  font-family: ui-monospace, monospace;
  letter-spacing: 0.02em;
}
.track-card {
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 16px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
}
.track-code {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 2px;
}
.track-code .pkg {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: #fff5f2;
  color: var(--coral);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.track-code .pkg svg {
  width: 20px;
  height: 20px;
}
.track-code strong {
  font-size: 15px;
  font-weight: 800;
  color: #111827;
  display: block;
}
.track-code small {
  font-size: 11px;
  color: #9ca3af;
  display: block;
}
/* vertical timeline */
.route {
  display: flex;
  flex-direction: column;
  margin: 6px 0 0;
  padding: 0;
  background: transparent;
  border: 0;
}
.route-stop {
  display: flex;
  gap: 12px;
  position: relative;
  padding-bottom: 22px;
}
.route-stop:last-child {
  padding-bottom: 0;
}
.route-rail {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 0 0 auto;
}
.route-dot {
  width: 22px;
  height: 22px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  border: 2px solid #e5e7eb;
  background: #fff;
  color: #fff;
}
.route-dot svg {
  width: 12px;
  height: 12px;
}
.route-stop.done .route-dot {
  background: #22c55e;
  border-color: #22c55e;
}
.route-stop.now .route-dot {
  background: var(--coral);
  border-color: var(--coral);
  box-shadow: 0 0 0 4px rgba(240, 78, 35, 0.18);
}
.route-line {
  width: 2px;
  flex: 1;
  min-height: 14px;
  background: #e5e7eb;
  margin-top: 2px;
}
.route-line.filled {
  background: #22c55e;
}
.route-stop.now .route-line {
  background: linear-gradient(180deg, var(--coral) 0%, #e5e7eb 100%);
}
.route-text {
  display: flex;
  flex-direction: column;
  padding-top: 1px;
}
.route-label {
  font-size: 13px;
  font-weight: 700;
  color: #111827;
}
.route-stop.todo .route-label {
  color: #9ca3af;
  font-weight: 500;
}
.route-stop.now .route-label {
  color: var(--coral-deep);
}
.route-sub {
  font-size: 11px;
  color: #9ca3af;
}
.route-stop.now .route-sub {
  color: var(--coral);
  font-weight: 600;
}
.meta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 12px 0;
}
.meta-grid .k {
  margin: 0;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #9ca3af;
  font-weight: 700;
}
.meta-grid .v {
  margin: 2px 0 0;
  font-size: 13px;
  color: #111827;
  font-weight: 600;
}
.track-card .ledger {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.track-card .ledger th {
  text-align: left;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #9ca3af;
  padding: 8px 4px;
  border-bottom: 1px solid #f3f4f6;
}
.track-card .ledger td {
  padding: 9px 4px;
  border-bottom: 1px solid #f9fafb;
  color: #374151;
}
.track-card .ledger .num {
  text-align: right;
  font-weight: 600;
  color: #111827;
}
.track-card .totals {
  margin-top: 8px;
}
.cancelled-banner {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
  border-radius: 12px;
  padding: 12px;
  font-size: 12px;
  margin: 10px 0;
}
.cancelled-banner svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}
.track-card .plate {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: 4px 10px;
}
.plate-warn {
  background: #fef3c7;
  color: #b45309;
}
.plate-ok {
  background: #dcfce7;
  color: #15803d;
}
.plate-bad {
  background: #fee2e2;
  color: #dc2626;
}
.plate-ink {
  background: #ffe4d6;
  color: var(--coral-deep);
}

/* ---------- auth: Welcome back / Create account ---------- */
.auth-page {
  padding: 8px 0 30px;
  max-width: 400px;
  margin: 0 auto;
}
.auth-page .brandmark {
  margin: 18px 0 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
}
.auth-page .brandmark .brand-bag {
  display: inline-flex;
  width: 26px;
  height: 26px;
  color: var(--coral);
  flex: none;
}
.auth-page .brandmark .brand-bag svg {
  width: 100%;
  height: 100%;
}
.auth-page .brandmark .brand-word {
  font-weight: 800;
  font-size: 22px;
  letter-spacing: -0.02em;
  color: #111827;
}
.auth-page .brandmark .brand-word em {
  font-style: normal;
  color: var(--coral);
}
.auth-title {
  margin: 0;
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #111827;
  text-align: left;
}
.auth-sub {
  margin: 4px 0 20px;
  font-size: 13px;
  color: #6b7280;
  text-align: left;
}
.auth-page .utabs {
  display: flex;
  gap: 4px;
  margin: 0 0 20px;
  background: #F3F4F6;
  border-radius: 14px;
  padding: 4px;
}
.auth-page .utab {
  flex: 1;
  border: 0;
  background: transparent;
  border-radius: 11px;
  padding: 11px 8px;
  font: 600 13px/1 var(--font-sans);
  color: var(--ink-2);
  cursor: pointer;
}
.auth-page .utab.is-active {
  background: #fff;
  color: var(--brand);
  box-shadow: 0 1px 3px rgba(17,24,39,.1);
}
.auth-page form {
  display: grid;
  gap: 12px;
}
.auth-page .field {
  margin: 0;
}
.auth-page input {
  width: 100%;
  padding: 15px 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #F9FAFB;
  font-size: 14px;
  font-family: var(--font-sans);
  color: var(--ink);
}
.auth-page input:focus {
  outline: none;
  border-color: var(--brand);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(240,78,35,.12);
}
.auth-page .btn-block {
  width: 100%;
  padding: 15px;
  font-size: 15px;
  margin-top: 4px;
}
.auth-swap {
  text-align: center;
  font-size: 13px;
  color: #6b7280;
  margin: 18px 0 0;
}
.auth-swap a {
  color: var(--brand);
  font-weight: 700;
}
.errorbox {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
  font-size: 12px;
  border-radius: 12px;
  padding: 10px 12px;
}

/* ---------- account: My Account ---------- */
.acct-head {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 0 6px;
}
.acct-avatar {
  width: 56px;
  height: 56px;
  border-radius: 999px;
  background: var(--coral);
  color: #fff;
  font-size: 22px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  box-shadow: 0 4px 12px rgba(240, 78, 35, 0.35);
}
.acct-name {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  color: #111827;
}
.acct-email {
  margin: 2px 0 0;
  font-size: 12px;
  color: #9ca3af;
}
.acct-gear {
  margin-left: auto;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 0;
  background: #fff;
  color: #4b5563;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: 1px solid #f3f4f6;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
}
.acct-gear svg {
  width: 18px;
  height: 18px;
}
.acct-menu {
  display: grid;
  gap: 10px;
  margin: 14px 0 4px;
}
.acct-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  text-align: left;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 14px;
  padding: 12px 14px;
  cursor: pointer;
  font-family: var(--font-sans);
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
}
.acct-row .row-ic {
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: #fff5f2;
  color: var(--coral);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.acct-row .row-ic svg {
  width: 18px;
  height: 18px;
}
.acct-row .row-tx {
  flex: 1;
  min-width: 0;
}
.acct-row .row-tx strong {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: #111827;
}
.acct-row .row-tx span {
  display: block;
  font-size: 11px;
  color: #9ca3af;
}
.acct-row .row-chev {
  color: #d1d5db;
  display: inline-flex;
}
.acct-row .row-chev svg {
  width: 16px;
  height: 16px;
}
.acct-row.is-active {
  border-color: var(--coral);
  box-shadow: 0 0 0 3px rgba(240, 78, 35, 0.1);
}
.acct-row.is-danger .row-ic {
  background: #FEF2F2;
  color: #DC2626;
}
.acct-row.is-danger .row-tx strong {
  color: #DC2626;
}
.contact-list {
  display: grid;
  gap: 10px;
}
.contact-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  text-align: left;
  background: #F9FAFB;
  border: 1px solid #F3F4F6;
  border-radius: 14px;
  padding: 12px 14px;
  text-decoration: none;
  font-family: var(--font-sans);
}
.contact-row .row-ic {
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: #FFF5F2;
  color: var(--coral);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.contact-row .row-ic svg {
  width: 18px;
  height: 18px;
}
.contact-row .row-tx {
  flex: 1;
  min-width: 0;
}
.contact-row .row-tx strong {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: #111827;
}
.contact-row .row-tx span {
  display: block;
  font-size: 11px;
  color: #9ca3af;
}
.contact-row .row-chev {
  color: #D1D5DB;
  display: inline-flex;
}
.contact-row .row-chev svg {
  width: 16px;
  height: 16px;
}
.drawer-hint {
  font-size: 12.5px;
  color: #6B7280;
  text-align: center;
  margin: 14px 0 0;
}
.tabpane {
  margin-top: 12px;
}
.acct-panel {
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
}
.acct-panel form {
  display: grid;
  gap: 12px;
}
.order-rows {
  display: grid;
  gap: 8px;
}
.order-row {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 12px;
  padding: 10px 12px;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
}
.order-row .order-code {
  font-size: 11px;
  font-weight: 700;
  color: var(--coral-deep);
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 118px;
  flex: none;
}
.order-row .order-date {
  font-size: 10px;
  color: #9ca3af;
  white-space: nowrap;
  flex: none;
}
.order-row .plate {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: 4px 8px;
  white-space: nowrap;
  flex: none;
}
.order-row .order-total {
  margin-left: auto;
  font-size: 12px;
  font-weight: 800;
  color: #111827;
}
.order-row .icon-btn {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  border: 1px solid #f3f4f6;
  background: #fff;
  color: #6b7280;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.order-row .icon-btn svg {
  width: 14px;
  height: 14px;
}
.contact-title {
  font-size: 14px;
  font-weight: 800;
  color: #111827;
  margin: 20px 0 10px;
}
.contact-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.contact-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 14px;
  padding: 14px 6px;
  font-size: 11px;
  font-weight: 600;
  color: #374151;
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
}
.contact-card svg {
  width: 22px;
  height: 22px;
}
.contact-card.cc-wa svg {
  color: #22c55e;
}
.contact-card.cc-ig svg {
  color: #db2777;
}
.contact-card.cc-mail svg {
  color: #6b7280;
}
#logout-btn {
  margin-top: 18px;
  width: 100%;
}

/* ---------- footer: dark app menu ---------- */
.site-footer {
  background: #101828;
  color: #d1d5db;
  border-radius: 20px 20px 0 0;
  margin: 26px 0 0;
  padding: 26px 24px calc(24px + env(safe-area-inset-bottom));
  position: relative;
}
.site-footer::before {
  display: none;
}
.site-footer .wrap {
  max-width: none;
  padding: 0;
  background: none;
  min-height: 0;
  box-shadow: none;
}
.app-footer-grid {
  display: grid;
  gap: 22px;
}
.f-block h4 {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 800;
  color: #fff;
}
.f-muted {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.6;
  color: #9ca3af;
}
.f-rings {
  display: flex;
  gap: 10px;
  margin-top: 12px;
}
.f-ring {
  width: 38px;
  height: 38px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: #e5e7eb;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}
.f-ring svg {
  width: 18px;
  height: 18px;
}
.f-ring:hover {
  background: var(--coral);
  color: #fff;
}
.f-links {
  display: grid;
  gap: 6px;
}
.f-links a {
  font-size: 12.5px;
  color: #9ca3af;
  text-decoration: none;
}
.f-links a:hover {
  color: #fff;
}
.f-info {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
  font-size: 12.5px;
  color: #9ca3af;
}
.f-info strong {
  color: #e5e7eb;
  font-weight: 700;
  margin-right: 4px;
}
.f-info a {
  color: #9ca3af;
  text-decoration: none;
}
.f-info a:hover {
  color: #fff;
}
.footer-word {
  margin: 22px 0 10px;
  text-align: center;
  font-family: var(--font-display);
  font-size: clamp(28px, 9vw, 44px);
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #d9a441;
  user-select: none;
}
.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 11px;
  color: #6b7280;
  text-align: center;
}
.footer-legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 14px;
  padding: 6px 0;
}
.footer-legal a {
  color: #9ca3af;
  text-decoration: none;
  font-size: 11px;
}
.footer-legal a:hover {
  color: #f5b942;
  text-decoration: underline;
}

/* ---------- static info pages (about, terms, privacy, contact, faq) ---------- */
.page-static {
  padding: 18px 16px 48px;
  max-width: 760px;
}
.page-static h1 {
  margin: 10px 0 6px;
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #111827;
}
.page-static .lead {
  margin: 0 0 22px;
  font-size: 15px;
  line-height: 1.6;
  color: #4b5563;
}
.static-block {
  background: #fff;
  border: 1px solid #f1f2f4;
  border-radius: 16px;
  padding: 20px 18px;
  margin: 0 0 14px;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.04);
}
.static-block h2 {
  margin: 0 0 10px;
  font-size: 16px;
  font-weight: 800;
  color: #111827;
}
.static-block h3 {
  margin: 14px 0 6px;
  font-size: 14px;
  font-weight: 700;
  color: #111827;
}
.static-block p {
  margin: 0 0 10px;
  font-size: 14px;
  line-height: 1.65;
  color: #374151;
}
.static-block p:last-child {
  margin-bottom: 0;
}
.static-block a {
  color: var(--coral);
  font-weight: 600;
  text-decoration: none;
}
.static-block a:hover {
  text-decoration: underline;
}
.check-list {
  list-style: none;
  margin: 0 0 10px;
  padding: 0;
}
.check-list li {
  position: relative;
  padding-left: 26px;
  margin: 0 0 10px;
  font-size: 14px;
  line-height: 1.6;
  color: #374151;
}
.check-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--coral-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4.5 8.5l3 3 4-6' stroke='%23f04e23' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px no-repeat;
}
.value-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 12px;
}
@media (min-width: 640px) {
  .value-grid {
    grid-template-columns: 1fr 1fr;
  }
}
.value-card {
  background: #fafafa;
  border: 1px solid #f1f2f4;
  border-radius: 14px;
  padding: 16px;
}
.value-card h3 {
  margin: 0 0 6px;
  font-size: 14px;
  font-weight: 800;
  color: #111827;
}
.value-card p {
  margin: 0 0 8px;
  font-size: 13px;
  line-height: 1.6;
  color: #4b5563;
}
.value-card p:last-child {
  margin-bottom: 0;
}
.lang-note {
  margin-top: 14px;
  padding: 14px 16px;
  border-radius: 12px;
  background: #fff8f3;
  border: 1px dashed #f5c99b;
}
.lang-note h3 {
  margin: 0 0 6px;
  font-size: 13px;
  font-weight: 800;
  color: #b45309;
}
.lang-note p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.7;
  color: #57534e;
}
/* FAQ page blocks */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 14px;
}
.faq-item {
  background: #fff;
  border: 1px solid #f1f2f4;
  border-radius: 14px;
  padding: 16px 18px;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.04);
}
.faq-item h3 {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 800;
  color: #111827;
}
.faq-item p {
  margin: 0 0 8px;
  font-size: 14px;
  line-height: 1.65;
  color: #374151;
}
.faq-item p:last-child {
  margin-bottom: 0;
}
.lang-jump {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 4px;
}
.lang-jump a {
  display: inline-block;
  padding: 8px 14px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #e5e7eb;
  font-size: 13px;
  font-weight: 700;
  color: #374151;
  text-decoration: none;
}
.lang-jump a:hover {
  border-color: var(--coral);
  color: var(--coral);
}

/* ---------- rails, drawers, modals, toasts ---------- */
.rail {
  margin-top: 20px;
}
.rail-head h2,
.section-title {
  font-size: 15px;
  font-weight: 800;
  color: #111827;
  margin: 0 0 10px;
}
.rail-track {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: none;
}
.rail-track::-webkit-scrollbar {
  display: none;
}
.rail-track .shelf-tag {
  flex: 0 0 168px;
  width: 168px;
}
.mini-tag {
  flex: 0 0 150px;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 14px;
  padding: 10px;
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(17, 24, 39, 0.05);
}
.mini-tag img {
  width: 100%;
  height: 80px;
  object-fit: contain;
  background: #f9f9fb;
  border-radius: 10px;
  margin-bottom: 8px;
}
.mini-tag .mini-main {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.mini-tag .t {
  font-size: 11px;
  font-weight: 700;
  color: #111827;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.mini-tag .p {
  font-size: 11px;
  font-weight: 800;
  color: var(--coral);
}
.drawer {
  border-radius: 20px 20px 0 0;
  max-width: 480px;
  margin: 0 auto;
  left: 50%;
  transform: translateX(-50%) translateY(100%);
}
.drawer.open {
  transform: translateX(-50%) translateY(0);
}
.drawer-head {
  border-bottom: 1px solid #f3f4f6;
}
.drawer-head h2 {
  font-size: 16px;
  font-weight: 800;
  color: #111827;
}
.drawer-foot .btn {
  border-radius: 999px;
}
.modal-box {
  border-radius: 20px;
  max-width: 420px;
}
.modal-head h2 {
  font-size: 16px;
  font-weight: 800;
  color: #111827;
}
.toasts {
  bottom: calc(90px + env(safe-area-inset-bottom));
}
.toast {
  border-radius: 14px;
  background: #111827;
  color: #fff;
  box-shadow: 0 8px 24px rgba(17, 24, 39, 0.25);
}
.toast.is-ok {
  background: #15803d;
}
.toast.is-bad {
  background: #b91c1c;
}
.icon-btn {
  border-radius: 10px;
}
/* nav drawer list */
.navdrawer-list {
  display: grid;
  gap: 4px;
}
.navdrawer-list a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 8px;
  border-radius: 12px;
  text-decoration: none;
  color: #111827;
  font-size: 14px;
  font-weight: 600;
}
.navdrawer-list a:hover {
  background: #fff5f2;
}
.navdrawer-list a svg {
  width: 20px;
  height: 20px;
  color: var(--coral);
}

/* ---------- quick view / wishlist drawers ---------- */
.qv-media {
  position: relative;
  background: #f9f9fb;
  border-radius: 14px;
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin-bottom: 12px;
}
.qv-media img {
  max-width: 100%;
  max-height: 240px;
  object-fit: contain;
}
.qv-media .tag-badge {
  top: 10px;
  left: 10px;
}
.qv-name {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  color: #111827;
}
.qv-priceblock {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 8px 0 4px;
}
.qv-price {
  font-size: 18px;
  font-weight: 800;
  color: var(--coral);
}
.qv-was {
  font-size: 13px;
  color: #9ca3af;
  text-decoration: line-through;
}
.qv-row {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-top: 10px;
}
.qv-row .btn-primary {
  flex: 1;
}
.qv-specs {
  margin-top: 12px;
  border-top: 1px solid #f3f4f6;
  padding-top: 10px;
  display: grid;
  gap: 6px;
}
.qv-spec {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: #4b5563;
}
.wish-row {
  display: flex;
  gap: 10px;
  align-items: center;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 12px;
  padding: 10px;
  margin-bottom: 8px;
}
.wish-row img {
  width: 52px;
  height: 52px;
  object-fit: contain;
  background: #f9f9fb;
  border-radius: 10px;
}
.wish-main {
  flex: 1;
  min-width: 0;
}
.wish-name {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
}
.wish-name a {
  color: #111827;
  text-decoration: none;
}
.wish-meta {
  margin: 2px 0 4px;
  font-size: 10px;
  color: #9ca3af;
}
.wish-actions {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* ---------- ledger (list view) ---------- */
.ledger-list {
  display: grid;
  gap: 8px;
}
.ledger-row {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 14px;
  padding: 10px 12px;
}
.lr-thumb {
  width: 52px;
  height: 52px;
  border-radius: 10px;
  background: #f9f9fb;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex: 0 0 auto;
}
.lr-thumb img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.lr-main {
  flex: 1;
  min-width: 0;
}
.lr-name {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
}
.lr-name a {
  color: #111827;
  text-decoration: none;
}
.lr-meta {
  margin: 2px 0 0;
  font-size: 10px;
  color: #9ca3af;
}
.lr-price {
  text-align: right;
}
.lr-price .now {
  display: block;
  font-size: 12px;
  font-weight: 800;
  color: var(--coral);
}
.lr-price .was {
  font-size: 10px;
  color: #9ca3af;
  text-decoration: line-through;
}
.lr-actions {
  display: flex;
  gap: 6px;
  align-items: center;
}
.tag-stamp-inline {
  font-size: 9px;
  font-weight: 800;
  color: #9ca3af;
  letter-spacing: 0.05em;
}

/* ---------- empty / error / skeleton ---------- */
.empty {
  background: #fff;
  border: 1px solid #f3f4f6;
  border-radius: 16px;
  padding: 32px 20px;
  text-align: center;
}
.empty .ic {
  width: 52px;
  height: 52px;
  border-radius: 999px;
  background: #fff5f2;
  color: var(--coral);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}
.empty .ic svg {
  width: 24px;
  height: 24px;
}
.empty h3 {
  margin: 0 0 4px;
  font-size: 15px;
  font-weight: 800;
  color: #111827;
}
.empty p {
  margin: 0 0 14px;
  font-size: 12px;
  color: #6b7280;
}
.errorbox {
  border-radius: 12px;
}
.skel {
  border-radius: 16px;
}

/* ---------- assistant FAB above the tab bar ---------- */
.as-fab {
  bottom: calc(84px + env(safe-area-inset-bottom)) !important;
  background: var(--coral) !important;
  box-shadow: 0 10px 24px rgba(240, 78, 35, 0.4) !important;
}
.as-fab:hover {
  background: var(--coral-deep) !important;
}

/* ---------- wider screens: keep the phone column ---------- */
@media (min-width: 560px) {
  .shelf-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* checkout steps fit on 390px screens */
.steps {
  margin: 16px 0 20px;
}
.step {
  padding: 9px 6px;
  font-size: 0.7rem;
}
.step .sn {
  width: 20px;
  height: 20px;
  margin-right: 4px;
}

/* fixed tab bar clearance: content must never hide under it */
body {
  padding-bottom: calc(76px + env(safe-area-inset-bottom));
}

/* ==========================================================================
   UX+ polish layer (v7.1)
   Micro-interactions, entrance motion, press states, skeleton shimmer,
   promo carousel, sticky summary bar, field validation states, safe-area
   coverage, reduced-motion guard.
   No identity changes: same coral, same cards, same layout, same copy.
   ========================================================================== */

/* ---------- motion keyframes ---------- */
@keyframes ux-pop {
  0% { transform: scale(0.4); }
  55% { transform: scale(1.25); }
  100% { transform: scale(1); }
}
@keyframes ux-fade-up {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}
@keyframes ux-shimmer {
  from { background-position: 200% 0; }
  to { background-position: -200% 0; }
}
@keyframes ux-heart-pop {
  0% { transform: scale(0.6); }
  50% { transform: scale(1.35); }
  100% { transform: scale(1); }
}
@keyframes ux-pulse-ring {
  0% { box-shadow: 0 0 0 0 rgba(240, 78, 35, 0.35); }
  70% { box-shadow: 0 0 0 10px rgba(240, 78, 35, 0); }
  100% { box-shadow: 0 0 0 0 rgba(240, 78, 35, 0); }
}
@keyframes ux-toast-in {
  from { opacity: 0; transform: translateY(12px) scale(0.97); }
  to { opacity: 1; transform: none; }
}
@keyframes ux-slide-up {
  from { opacity: 0; transform: translate(-50%, 16px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}
@keyframes ux-grow-y {
  from { transform: scaleY(0); }
  to { transform: scaleY(1); }
}
@keyframes ux-spin {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ---------- satisfying press states everywhere ---------- */
.btn, .price-pill, .icon-btn, .tag-wish, .hd-link, .hd-menu,
.bnav a, .gal-thumb, .mini-tag, .cat-pill, .co-remove, .utab {
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.12s ease, background-color 0.15s ease,
    color 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.btn:active, .price-pill:active, .icon-btn:active, .co-remove:active {
  transform: scale(0.95);
}
.hd-link:active, .hd-menu:active, .tag-wish:active, .cat-pill:active {
  transform: scale(0.9);
}
.bnav a:active { transform: scale(0.94); }
.gal-thumb:active, .mini-tag:active { transform: scale(0.97); }
:focus-visible {
  outline: 2px solid var(--coral);
  outline-offset: 2px;
}

/* ---------- skeleton shimmer while grids load ---------- */
.skel {
  background: linear-gradient(100deg, #eef0f3 40%, #f8f9fb 50%, #eef0f3 60%);
  background-size: 200% 100%;
  animation: ux-shimmer 1.4s linear infinite;
}

/* ---------- header gains a shadow once the page scrolls ---------- */
.hd { transition: box-shadow 0.2s ease; }
.hd.is-scrolled { box-shadow: 0 4px 16px rgba(17, 24, 39, 0.1); }

/* ---------- promo carousel (auto-rotating, swipeable, honest slides) ---------- */
.promo-viewport {
  overflow: hidden;
  border-radius: 20px;
}
.promo-track {
  display: flex;
  transition: transform 0.55s cubic-bezier(0.22, 0.8, 0.3, 1);
}
.promo-slide {
  flex: 0 0 100%;
  min-width: 0;
}
.promo-slide .promo-card { height: 100%; }
.promo-dots {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 10px;
}
.promo-dot {
  width: 7px;
  height: 7px;
  border: 0;
  border-radius: 999px;
  background: #d7dbe2;
  padding: 0;
  cursor: pointer;
  transition: width 0.25s ease, background-color 0.25s ease;
}
.promo-dot.is-active {
  width: 22px;
  background: var(--coral);
}

/* ---------- rails: snap scrolling ---------- */
.rail-track { scroll-snap-type: x proximity; }
.rail-track > * { scroll-snap-align: start; }

/* ---------- product card entrance + wishlist pop ---------- */
.shelf-tag { animation: ux-fade-up 0.45s cubic-bezier(0.22, 0.8, 0.3, 1) both; }
.tag-wish.is-pop svg { animation: ux-heart-pop 0.35s ease; }

/* ---------- fly-to-cart dot ---------- */
.fly-dot {
  position: fixed;
  z-index: 200;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: var(--coral);
  box-shadow: 0 2px 8px rgba(240, 78, 35, 0.5);
  pointer-events: none;
}
.count.is-pop { animation: ux-pop 0.4s ease; }

/* ---------- product gallery: smooth swap ---------- */
.gal img { transition: opacity 0.18s ease; }
.gal img.is-swapping { opacity: 0.2; }

/* ---------- sticky add-to-cart bar entrance ---------- */
.pd-sticky-bar:not([hidden]) { animation: ux-slide-up 0.3s ease both; }

/* ---------- cart: animated row removal ---------- */
.co-row {
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.co-row.is-leaving {
  opacity: 0;
  transform: translateX(48px);
}

/* ---------- checkout sticky summary bar (mobile) ---------- */
.co-stickybar {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: calc(76px + env(safe-area-inset-bottom));
  width: calc(100% - 32px);
  max-width: 448px;
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid #f3f4f6;
  border-radius: 16px;
  box-shadow: 0 8px 28px rgba(17, 24, 39, 0.14);
  padding: 10px 10px 10px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  z-index: 64;
  animation: ux-slide-up 0.3s ease both;
}
.co-stickybar .t { display: flex; flex-direction: column; gap: 1px; }
.co-stickybar .t small { font-size: 11px; color: #6b7280; font-weight: 600; }
.co-stickybar .t strong { font-size: 17px; font-weight: 800; color: var(--coral); }
@media (min-width: 900px) {
  .co-stickybar { display: none; }
}
.co-stickybar[hidden] { display: none; }

/* ---------- inline field validation ---------- */
.field input {
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}
.field input:focus {
  outline: none;
  border-color: var(--coral);
  box-shadow: 0 0 0 3px rgba(240, 78, 35, 0.15);
}
.field.is-invalid input {
  border-color: #dc2626;
  background-color: #fef2f2;
}
.field-error {
  margin: 6px 0 0;
  font-size: 12px;
  font-weight: 600;
  color: #b91c1c;
}

/* ---------- empty cart illustration ---------- */
.empty-art {
  width: 120px;
  height: 96px;
  margin: 4px auto 16px;
  display: block;
}

/* ---------- tracking: animated progress ---------- */
.track-card { animation: ux-fade-up 0.4s ease both; }
.route-progress {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  color: var(--coral);
  background: #fff5f2;
  border-radius: 999px;
  padding: 7px 14px;
  margin: 0 0 14px;
}
.route-progress svg { width: 16px; height: 16px; }
.route-stop.now .route-dot { animation: ux-pulse-ring 2s ease-out infinite; }
.route-line.filled {
  transform-origin: top;
  animation: ux-grow-y 0.5s ease both;
}

/* ---------- auth: tab switch + loading buttons ---------- */
.utab { transition: color 0.2s ease, background-color 0.2s ease; }
#login-form:not([hidden]), #register-form:not([hidden]) {
  animation: ux-fade-up 0.3s ease both;
}
.btn.is-loading {
  position: relative;
  color: transparent !important;
  pointer-events: none;
}
.btn.is-loading::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 18px;
  height: 18px;
  margin: -9px 0 0 -9px;
  border-radius: 999px;
  border: 2.5px solid rgba(255, 255, 255, 0.4);
  border-top-color: #fff;
  animation: ux-spin 0.7s linear infinite;
}

/* ---------- toasts slide in ---------- */
.toast { animation: ux-toast-in 0.25s ease both; }

/* ---------- roomier touch targets on steppers ---------- */
.qty-stepper button {
  width: 40px;
  height: 40px;
}
.qty-stepper .qty-value {
  min-width: 34px;
  font-size: 15px;
  font-weight: 700;
}

/* ---------- confirmation ticket entrance ---------- */
.ticket { animation: ux-fade-up 0.45s cubic-bezier(0.22, 0.8, 0.3, 1) both; }

/* When a sticky bottom bar is present, lift the assistant FAB and toasts
   so they never cover the bar's buttons. */
body.has-stickybar .as-fab {
  bottom: calc(152px + env(safe-area-inset-bottom)) !important;
}
body.has-stickybar .toasts {
  bottom: calc(166px + env(safe-area-inset-bottom));
}

/* ==========================================================================
   v2 UI layer (Stitch reference): trust strip, departments, featured rail,
   gallery dots, save chip, dark buy button, COD line, cart milestone,
   track help actions, auth extras, account count chips, footer accordions.
   ========================================================================== */

/* ---------- v2: home trust strip ---------- */
.trust-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 4px 0 18px;
}
.trust-chip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: #fff;
  border: 1px solid #f1f3f5;
  border-radius: 14px;
  padding: 10px 6px;
  font-size: 11.5px;
  font-weight: 700;
  color: #374151;
  text-align: center;
  box-shadow: 0 1px 6px rgba(17, 24, 39, 0.04);
}
.trust-chip svg {
  width: 16px;
  height: 16px;
  flex: none;
  color: var(--coral);
}

/* ---------- v2: shop by department ---------- */
.depts { margin: 26px 0; }
.rail-link {
  font-size: 13px;
  font-weight: 700;
  color: var(--coral);
  text-decoration: none;
  white-space: nowrap;
}
.rail-link:hover { color: var(--coral-deep); }
.dept-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.dept-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  border-radius: 18px;
  padding: 12px;
  text-decoration: none;
  box-shadow: 0 2px 10px rgba(17, 24, 39, 0.05);
  border: 1px solid #f1f3f5;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.dept-card:active { transform: scale(0.97); }
.dept-thumb {
  width: 46px;
  height: 46px;
  flex: none;
  border-radius: 13px;
  overflow: hidden;
  background: var(--coral-soft, #FFF1ED);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--coral);
}
.dept-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dept-thumb svg { width: 26px; height: 26px; }
.dept-tx { display: grid; gap: 2px; min-width: 0; }
.dept-tx strong {
  font-size: 13px;
  font-weight: 800;
  color: #111827;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dept-count { font-size: 11.5px; color: #9ca3af; font-weight: 600; }
.dept-hot {
  position: static;
  margin-left: auto;
  align-self: flex-start;
  flex: none;
  font-size: 10px;
  font-weight: 800;
  color: #fff;
  background: var(--coral);
  border-radius: 999px;
  padding: 2px 8px;
}
.dept-chev { display: none; }

/* ---------- v2: product gallery dots + save chip + COD line ---------- */
.gal { position: relative; }
.gal-dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 10px;
  display: flex;
  justify-content: center;
  gap: 6px;
}
.gal-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: 0;
  padding: 0;
  background: rgba(17, 24, 39, 0.18);
  cursor: pointer;
  transition: width 0.2s ease, background 0.2s ease;
}
.gal-dot.is-active { width: 22px; background: var(--coral); }
.save-chip {
  font-size: 12px;
  font-weight: 800;
  color: var(--coral-deep);
  background: var(--coral-soft, #FFF1ED);
  border-radius: 999px;
  padding: 4px 10px;
  white-space: nowrap;
}
.cod-line {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  color: #166534;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 12px;
  padding: 10px 12px;
  margin: 0 0 14px;
}
.cod-line svg { width: 18px; height: 18px; flex: none; }
.pd-ctas { display: grid; gap: 10px; margin: 18px 0; }
.btn-dark {
  background: #111827;
  border-color: #111827;
  color: #fff;
}
.btn-dark:hover:not(:disabled) {
  background: #1f2937;
  border-color: #1f2937;
  color: #fff;
}

/* ---------- v2: cart free-delivery milestone ---------- */
.fd-card {
  background: #fff;
  border: 1px solid #f1f3f5;
  border-radius: 18px;
  padding: 14px;
  margin-bottom: 14px;
  box-shadow: 0 2px 10px rgba(17, 24, 39, 0.05);
}
.fd-top { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; }
.fd-ic {
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: 12px;
  background: var(--coral-soft, #FFF1ED);
  color: var(--coral);
  display: flex;
  align-items: center;
  justify-content: center;
}
.fd-ic svg { width: 20px; height: 20px; }
.fd-title { margin: 0; font-size: 13.5px; font-weight: 800; color: #111827; }
.fd-sub { margin: 2px 0 0; font-size: 12px; font-weight: 600; color: var(--coral-deep); }
.fd-bar {
  height: 8px;
  border-radius: 999px;
  background: #f3f4f6;
  overflow: hidden;
}
.fd-fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--coral), var(--coral-deep));
  transition: width 0.5s ease;
}
.fd-note { margin: 8px 0 0; font-size: 11px; color: #9ca3af; }

/* ---------- v2: track order help actions ---------- */
.track-help { margin-top: 18px; padding-top: 16px; border-top: 1px dashed #e5e7eb; }
.track-help-title { margin: 0 0 10px; font-size: 13px; font-weight: 800; color: #111827; }
.track-help-btns { display: flex; gap: 10px; }
.track-help-btns .btn { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.track-help-btns .btn svg { width: 16px; height: 16px; }

/* ---------- v2: auth extras ---------- */
.auth-page { position: relative; }
.auth-tagline {
  margin: 6px 0 0;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--coral);
}
.strength { height: 6px; border-radius: 999px; background: #f3f4f6; margin-top: 8px; overflow: hidden; }
.strength-fill { display: block; height: 100%; width: 0; border-radius: 999px; background: #d1d5db; transition: width 0.25s ease, background 0.25s ease; }
.strength-fill.s1 { background: #ef4444; }
.strength-fill.s2 { background: #f59e0b; }
.strength-fill.s3 { background: #84cc16; }
.strength-fill.s4 { background: #16a34a; }
.strength-label { margin: 4px 0 0; font-size: 11.5px; font-weight: 700; color: #6b7280; min-height: 16px; }
.terms-row {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 12.5px;
  color: #4b5563;
  margin: 12px 0;
  cursor: pointer;
}
.terms-row input { margin-top: 2px; accent-color: var(--coral); width: 16px; height: 16px; flex: none; }
.terms-row a { color: var(--coral); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.terms-row a:hover { color: var(--coral-deep); }
.auth-trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 18px 0 0;
  font-size: 12.5px;
  font-weight: 700;
  color: #6b7280;
}
.auth-trust svg { width: 16px; height: 16px; color: var(--coral); }

/* ---------- v2: account header + count chips ---------- */
.acct-head {
  background: linear-gradient(135deg, var(--coral) 0%, var(--coral-deep) 100%);
  border-radius: 22px;
  padding: 22px 18px;
  margin: 18px 0;
  display: flex;
  align-items: center;
  gap: 14px;
  color: #fff;
  box-shadow: 0 10px 26px -8px rgba(240, 78, 35, 0.45);
}
.acct-head .acct-avatar {
  width: 58px;
  height: 58px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
  font-size: 24px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid rgba(255, 255, 255, 0.55);
  flex: none;
}
.acct-head .acct-name { color: #fff; font-size: 20px; font-weight: 800; margin: 0; }
.acct-head .acct-email { color: rgba(255, 255, 255, 0.85); font-size: 12.5px; margin: 2px 0 0; }
.acct-head .acct-gear {
  margin-left: auto;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 0;
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.acct-head .acct-gear svg { width: 18px; height: 18px; }
.row-count {
  margin-left: auto;
  font-size: 11px;
  font-weight: 800;
  color: var(--coral-deep);
  background: var(--coral-soft, #FFF1ED);
  border-radius: 999px;
  padding: 3px 10px;
  white-space: nowrap;
}
.acct-row .row-chev { margin-left: 0; }
.acct-row:has(.row-count) .row-chev { margin-left: 4px; }

/* ---------- v2: footer dark accordions ---------- */
.app-footer-head { margin-bottom: 6px; }
.app-footer-head .brandmark { display: flex; align-items: center; gap: 10px; }
.app-footer-head .brand-bag {
  width: 32px;
  height: 32px;
  flex: none;
  border-radius: 10px;
  background: var(--coral);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.app-footer-head .brand-bag svg { width: 18px; height: 18px; }
.app-footer-head .brand-word { color: #fff; font-size: 18px; }
.brandmark.light .brand-word { color: #fff; }
.f-tagline {
  margin: 8px 0 0;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--coral);
}
.f-acc { border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.f-acc-head {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 2px;
  font-size: 14px;
  font-weight: 800;
  color: #fff;
}
.f-acc-head::-webkit-details-marker { display: none; }
.f-acc-chev {
  width: 10px;
  height: 10px;
  border-right: 2px solid #9ca3af;
  border-bottom: 2px solid #9ca3af;
  transform: rotate(45deg);
  transition: transform 0.2s ease;
}
.f-acc[open] .f-acc-chev { transform: rotate(225deg); }
.f-acc-body { padding: 0 2px 18px; display: grid; gap: 4px; }
.f-acc-body a {
  font-size: 13px;
  color: #9ca3af;
  text-decoration: none;
  padding: 5px 0;
}
.f-acc-body a:hover { color: #fff; }
.f-contact-card {
  margin-top: 18px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.f-contact-title { margin: 0 0 2px; font-size: 14px; font-weight: 800; color: #fff; }
.f-contact-card .f-muted { font-size: 12px; }
.f-contact-btns { display: flex; gap: 8px; flex: none; }
.f-contact-btns .btn { display: inline-flex; align-items: center; gap: 6px; }
.f-contact-btns .btn svg { width: 15px; height: 15px; }
.btn-outline-light {
  background: transparent;
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  color: #fff;
}
.btn-outline-light:hover:not(:disabled) { border-color: #fff; color: #fff; }

/* ---------- v2: premium promo hero ---------- */
.promo-card {
  background: linear-gradient(120deg, #fff7f3 0%, #ffe9dd 55%, #ffd9c4 100%);
  border: 1px solid #ffe3d3;
}
.promo-card .promo-title { color: #1a1a1a; letter-spacing: 0.01em; }
.promo-card .promo-off { color: var(--coral-deep); }

/* ---------- v2: wider screens ---------- */
@media (min-width: 768px) {
  .dept-grid { grid-template-columns: repeat(3, 1fr); }
  .trust-strip { gap: 12px; }
  .trust-chip { font-size: 13px; padding: 12px; }
}

/* ==========================================================================
   Reviews (Avis clients) — BRICO AMGOUN v2
   ========================================================================== */
.reviews { margin: 40px 0 8px; }
.rv-summary { display: flex; gap: 28px; align-items: center; background: #fff; border: 1px solid var(--line, #eee); border-radius: 16px; padding: 22px; margin: 18px 0 8px; flex-wrap: wrap; }
.rv-score { text-align: center; min-width: 120px; }
.rv-avg { font-size: 44px; font-weight: 800; color: var(--ink, #1c1b1a); line-height: 1; }
.rv-score .rv-stars { display: inline-flex; gap: 2px; margin: 8px 0 4px; }
.rv-count { font-size: 13px; color: var(--muted, #8a7a72); }
.rv-dist { flex: 1; min-width: 220px; display: flex; flex-direction: column; gap: 8px; }
.rv-dist-row { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--muted, #8a7a72); }
.rv-dist-bar { flex: 1; height: 8px; border-radius: 99px; background: #f1ece7; overflow: hidden; }
.rv-dist-fill { height: 100%; border-radius: 99px; background: #F04E23; transition: width .6s ease; }
.rv-dist-n { min-width: 24px; text-align: right; }
.rv-cta { margin: 16px 0; }
.rv-note { font-size: 13px; color: var(--muted, #8a7a72); background: #faf7f4; border-radius: 10px; padding: 10px 14px; }
.rv-list { display: flex; flex-direction: column; gap: 14px; margin-top: 8px; }
.rv-card { background: #fff; border: 1px solid var(--line, #eee); border-radius: 16px; padding: 18px; }
.rv-card-head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.rv-avatar { width: 40px; height: 40px; border-radius: 50%; background: #F04E23; color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 17px; flex-shrink: 0; }
.rv-who { flex: 1; min-width: 0; }
.rv-name { font-weight: 700; font-size: 14px; }
.rv-city { font-weight: 400; color: var(--muted, #8a7a72); }
.rv-meta { display: flex; align-items: center; gap: 8px; margin-top: 2px; }
.rv-stars { display: inline-flex; gap: 1px; }
.rv-date { font-size: 12px; color: var(--muted, #8a7a72); }
.rv-verified { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 700; color: #1d7a3a; background: #e7f6ec; border-radius: 99px; padding: 5px 10px; white-space: nowrap; }
.rv-verified svg { width: 12px; height: 12px; }
.rv-title { font-weight: 700; font-size: 14px; margin-bottom: 4px; }
.rv-body { font-size: 14px; color: #3d3835; line-height: 1.55; margin: 0 0 12px; white-space: pre-wrap; }
.rv-helpful { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--muted, #8a7a72); background: #faf7f4; border: 1px solid var(--line, #eee); border-radius: 99px; padding: 7px 14px; cursor: pointer; }
.rv-helpful.is-on, .rv-helpful:disabled { color: #F04E23; border-color: #F04E23; }
.rv-empty { text-align: center; color: var(--muted, #8a7a72); padding: 28px; background: #faf7f4; border-radius: 16px; font-size: 14px; }
/* modal */
#rv-modal { position: fixed; inset: 0; z-index: 200; display: flex; align-items: flex-end; justify-content: center; }
@media (min-width: 640px) { #rv-modal { align-items: center; padding: 20px; } }
.rv-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.45); }
.rv-modal { position: relative; background: #fff; width: 100%; max-width: 520px; max-height: 92vh; overflow-y: auto; border-radius: 20px 20px 0 0; padding: 22px; animation: rvUp .25s ease; }
@media (min-width: 640px) { .rv-modal { border-radius: 20px; } }
@keyframes rvUp { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }
.rv-modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.rv-modal-head h3 { margin: 0 0 4px; font-size: 19px; }
.rv-modal-head p { margin: 0; font-size: 13px; color: var(--muted, #8a7a72); }
.rv-picker { display: flex; gap: 6px; justify-content: center; margin: 8px 0 4px; }
.rv-picker button { background: none; border: none; padding: 6px; cursor: pointer; transition: transform .12s ease; }
.rv-picker button:active { transform: scale(1.25); }
.rv-picker button svg { width: 38px; height: 38px; }
.rv-picker-label { text-align: center; font-size: 13px; font-weight: 700; color: #F04E23; margin-bottom: 12px; min-height: 18px; }
.rv-field { display: block; margin-bottom: 12px; }
.rv-field span { display: block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--muted, #8a7a72); margin-bottom: 6px; }
.rv-field input, .rv-field textarea { width: 100%; border: 1px solid var(--line, #e5e0da); border-radius: 12px; padding: 11px 13px; font-size: 15px; font-family: inherit; }
.rv-field input:focus, .rv-field textarea:focus { outline: none; border-color: #F04E23; box-shadow: 0 0 0 3px rgba(240,78,35,.12); }
.rv-err { background: #fdeceb; color: #b3261e; border-radius: 10px; padding: 10px 14px; font-size: 13px; margin-bottom: 12px; }
.rv-fineprint { font-size: 12px; color: var(--muted, #8a7a72); text-align: center; margin: 12px 0 0; }
.rv-order-items { display: flex; flex-direction: column; gap: 10px; }
.rv-order-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #faf7f4; border-radius: 12px; padding: 12px 14px; }
.rv-order-item-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rv-order-item-main strong { font-size: 14px; }
.btn-sm { height: 36px; padding: 0 14px; font-size: 13px; }
/* account: review button on delivered orders */
.order-review-btn { margin-top: 8px; }
