/* Shared cross affordance: rotate only the glyph; never move the hit area.
   All React X icons and Lucide x icons opt into this same owner. */
button > :is(.senntoc-cross-glyph, .lucide-x, [data-lucide="x"]) {
  transform: rotate(0deg);
  transform-origin: center;
  transition: transform 180ms ease;
}
/* Cross-only controls own their pointer appearance here, including legacy
   high-specificity hover rules. Keep border width/hit area and keyboard focus.
   Labelled business actions use cross-action and retain their button styling. */
button:has(> :is(.senntoc-cross-glyph, .lucide-x, [data-lucide="x"]):not(.senntoc-cross-action)) {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
button:has(> :is(.senntoc-cross-glyph, .lucide-x, [data-lucide="x"]):not(.senntoc-cross-action)):focus:not(:focus-visible) {
  outline: none;
}
button:has(> :is(.senntoc-cross-glyph, .lucide-x, [data-lucide="x"]):not(.senntoc-cross-action)):focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
/* A text cross needs its own transformable box, independent of button layout. */
span.senntoc-cross-glyph { display: inline-block; }
@media (hover: hover) and (pointer: fine) {
  button:enabled:hover > :is(.senntoc-cross-glyph, .lucide-x, [data-lucide="x"]) {
    transform: rotate(12deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  button > :is(.senntoc-cross-glyph, .lucide-x, [data-lucide="x"]),
  button:enabled:hover > :is(.senntoc-cross-glyph, .lucide-x, [data-lucide="x"]) {
    transition: none;
    transform: none;
  }
}

/* Editing keeps the field's resting appearance; the native caret marks focus.
   Do not reset borders, backgrounds or shadows here: validation and disabled
   states, and intentional expanding editors, retain their own presentation. */
:where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]),
  textarea,
  select,
  .custom-select-trigger,
  [contenteditable="true"],
  [contenteditable=""]
):focus { outline: none; }

/* ============================================================
   手机配件站 — 前台样式
   设计语言沿用外配站：直角 / Inter / 卡片悬浮 / reveal 动画
   主色：浅蓝 + 浅灰 + 黑
   ============================================================ */

/* ===== CSS 变量 ===== */
:root {
  --color-black: #000000;
  --color-black-2: #1a1a1a;
  --color-black-3: #2a2a2a;
  --color-accent: #7db3e0;
  --color-accent-dark: #4a86c2;
  --color-accent-light: #eef5fb;
  --color-accent-soft: #d4e5f3;
  --color-gray: #e6e6e6;
  --color-gray-2: #f5f6f7;
  --color-gray-3: #999999;
  --color-white: #ffffff;
  --color-text: #222222;
  --color-text-light: #666666;

  --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --radius-sm: 0px;
  --radius-md: 0px;
  --radius-lg: 0px;

  --spacing-xs: 8px;
  --spacing-sm: 12px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --spacing-xl: 48px;
  --spacing-xxl: 80px;

  --transition-fast: 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --transition-base: 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);

  --header-height: 110px;
}

/* ===== 重置与基础 ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; scrollbar-gutter: stable; }

body {
  font-family: var(--font-primary);
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-text);
  background: var(--color-white);
  padding-top: var(--header-height);
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { font-family: inherit; cursor: pointer; background: none; border: none; }
input, select, textarea { font-family: inherit; font-size: 1rem; }

.container { max-width: 1400px; margin: 0 auto; padding: 0 var(--spacing-lg); }

.bg-neutral { background: var(--color-gray-2); }

.icon-sm { width: 14px; height: 14px; }
.lucide { vertical-align: middle; }

/* ===== 按钮系统 ===== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-xs);
  padding: 10px 22px;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  border: 1px solid var(--color-gray);
  background: var(--color-white);
  color: var(--color-text);
  border-radius: var(--radius-sm);
  transition: var(--transition-fast);
}
.btn:hover { border-color: var(--color-black); }
.btn:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--color-accent-soft); }

.btn-primary { border-color: var(--color-accent); color: var(--color-accent-dark); }
.btn-primary:hover { background: var(--color-accent-light); border-color: var(--color-accent-dark); }

.btn-primary-solid {
  background: var(--color-accent-dark);
  border-color: var(--color-accent-dark);
  color: var(--color-white);
}
.btn-primary-solid:hover { background: var(--color-black-2); border-color: var(--color-black-2); }

.btn-ghost { border-color: transparent; color: var(--color-text-light); }
.btn-ghost:hover { color: var(--color-black); border-color: transparent; }

.btn-lg { padding: 14px 32px; font-size: 1rem; }
.btn-sm { padding: 6px 14px; font-size: 0.8125rem; }
.btn-full { width: 100%; }
.btn[disabled] { opacity: 0.5; cursor: not-allowed; }

/* ===== 表单控件 ===== */
.form-select {
  appearance: none;
  padding: 10px 36px 10px 14px;
  border: 1px solid var(--color-gray);
  background: var(--color-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;
  font-size: 0.875rem;
  color: var(--color-text);
  border-radius: var(--radius-sm);
  transition: var(--transition-fast);
}
.form-select:hover { border-color: var(--color-accent); outline: none; }

/* 自定义下拉菜单：避免使用浏览器系统下拉样式 */
.custom-select { position: relative; min-width: 0; }
.custom-select-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.custom-select-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: 42px;
  padding: 9px 12px 9px 14px;
  border: 1px solid var(--color-gray);
  border-radius: var(--radius-sm);
  background: var(--color-white);
  color: var(--color-text);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: var(--transition-fast);
}
.custom-select-trigger .lucide { width: 16px; height: 16px; color: var(--color-text-light); transition: transform 180ms ease; }
.custom-select.open .custom-select-trigger .lucide { transform: rotate(180deg); color: var(--color-accent-dark); }
.custom-select.is-disabled .custom-select-trigger { color: var(--color-gray-3); background: var(--color-gray-2); cursor: not-allowed; box-shadow: none; }
.custom-select-menu {
  position: absolute;
  top: calc(100% + 7px);
  left: 0;
  right: 0;
  z-index: 80;
  display: grid;
  gap: 3px;
  max-height: 260px;
  padding: 6px;
  overflow-y: auto;
  border: 1px solid var(--color-gray);
  border-radius: var(--radius-sm);
  background: var(--color-white);
  box-shadow: 0 14px 30px rgba(10, 28, 42, 0.16);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-5px);
  transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}
.custom-select.open .custom-select-menu { opacity: 1; visibility: visible; transform: translateY(0); transition: opacity 160ms ease, transform 160ms ease; }
.custom-select-menu [role="option"] {
  width: 100%;
  padding: 10px 11px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: var(--color-text);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.custom-select-menu [role="option"]:hover, .custom-select-menu [role="option"].active { background: var(--color-accent-light); color: var(--color-accent-dark); }
.products-sort .custom-select { min-width: 190px; }

/* ===== 提示消息 toast ===== */
.toast {
  position: fixed;
  right: var(--spacing-lg);
  bottom: var(--spacing-lg);
  z-index: 1000;
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
  padding: 14px 22px;
  background: var(--color-black-2);
  color: var(--color-white);
  font-size: 0.875rem;
  font-weight: 500;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  opacity: 0;
  transform: translateY(100px);
  transition: var(--transition-base);
  pointer-events: none;
}
.toast.show { opacity: 1; transform: translateY(0); pointer-events: auto; }
.toast .lucide { width: 18px; height: 18px; color: var(--color-accent); }

/* ===== 主导航栏 ===== */
.main-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 200;
  background: var(--color-white);
  border-bottom: 1px solid var(--color-gray);
  transition: var(--transition-base);
}
.main-header.scrolled { box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); }

.header-inner {
  display: grid;
  /* Equal side tracks keep account hydration independent of search position. */
  grid-template-columns: minmax(0, 1fr) minmax(0, min(560px, 46vw)) minmax(0, 1fr);
  align-items: center;
  gap: var(--spacing-md);
  height: 66px;
}

.header-left { display: flex; min-width: 0; align-items: center; gap: var(--spacing-md); }

.menu-toggle {
  display: none;
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  color: var(--color-text);
}
.menu-toggle .lucide { width: 22px; height: 22px; }

.logo { display: flex; align-items: center; gap: 10px; }
.logo-mark {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  background: var(--color-accent-dark);
  color: var(--color-white);
  font-weight: 800;
  font-size: 1.125rem;
}
.logo-text { font-weight: 800; font-size: 1.25rem; letter-spacing: -0.02em; color: var(--color-black); }
.logo-text em { font-style: normal; color: var(--color-accent-dark); }

.header-search {
  display: flex;
  min-width: 0;
  max-width: 560px;
  margin: 0 auto;
  width: 100%;
}
.header-search input {
  flex: 1;
  height: 42px;
  padding: 0 16px;
  border: 1px solid var(--color-black);
  border-right: none;
  font-size: 0.875rem;
  outline: none;
}
.search-btn {
  width: 52px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-accent-dark);
  color: var(--color-white);
  transition: var(--transition-fast);
}
.search-btn:hover { background: var(--color-black-2); }
.search-btn .lucide { width: 18px; height: 18px; }

.header-actions { display: flex; min-width: 0; align-items: center; justify-content: flex-end; gap: var(--spacing-lg); }
.header-action {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--color-text);
  transition: var(--transition-fast);
  position: relative;
}
.header-action:hover { color: var(--color-accent-dark); }
.header-action .lucide { width: 20px; height: 20px; }
.header-action[hidden] { display: none !important; }
.header-action [data-user-name] { max-width: min(160px, 12vw); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.cart-count {
  position: absolute;
  top: -6px;
  right: 2px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  background: var(--color-accent-dark);
  color: var(--color-white);
  font-size: 0.625rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ===== 分类导航 ===== */
.category-nav {
  border-top: 1px solid var(--color-gray-2);
  background: var(--color-white);
}
.category-menu {
  display: flex;
  gap: 2px;
  overflow-x: visible;
  scrollbar-width: none;
  height: 44px;
}
.category-menu::-webkit-scrollbar { display: none; }
.category-menu li { flex-shrink: 0; position: relative; }
.category-menu li.has-submenu > a .lucide { width: 12px; height: 12px; margin-left: 4px; color: var(--color-gray-3); transition: var(--transition-fast); }
.category-menu li.has-submenu:hover > a .lucide { transform: rotate(180deg); color: var(--color-accent-dark); }

/* hover 品牌子菜单 */
.submenu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 220;
  min-width: 400px;
  padding: var(--spacing-sm) 0;
  background: var(--color-white);
  border: 1px solid var(--color-gray);
  border-top: 2px solid var(--color-accent-dark);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: var(--transition-fast);
}
.category-menu li.has-submenu:hover .submenu,
.category-menu li.has-submenu:focus-within .submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.submenu-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: 0 var(--spacing-sm);
}
.submenu-grid a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: auto;
  padding: 8px 10px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--color-text-light);
  white-space: nowrap;
  transition: var(--transition-fast);
}
.submenu-grid a::after { display: none; }
.submenu-grid a:hover { color: var(--color-accent-dark); background: var(--color-accent-light); }
.submenu-grid a .count { font-size: 0.6875rem; color: var(--color-gray-3); margin-left: 12px; }
.submenu-all {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 6px var(--spacing-sm) 0;
  padding: 10px 10px 4px;
  border-top: 1px solid var(--color-gray-2);
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--color-accent-dark);
  height: auto;
  white-space: nowrap;
}
.submenu-all::after { display: none; }
.submenu-all .lucide { width: 13px; height: 13px; }
.submenu-all:hover { gap: 10px; }
/* 靠右的菜单项子菜单右对齐，避免溢出屏幕 */
.category-menu li.has-submenu.submenu-right .submenu { left: auto; right: 0; }
.category-menu a {
  position: relative;
  display: flex;
  align-items: center;
  height: 44px;
  padding: 0 14px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-text);
  white-space: nowrap;
  transition: var(--transition-fast);
}
.category-menu a::after {
  content: '';
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 0;
  height: 2px;
  background: var(--color-accent-dark);
  transform: scaleX(0);
  transform-origin: left;
  transition: var(--transition-fast);
}
.category-menu a:hover, .category-menu a.active { color: var(--color-accent-dark); }
.category-menu a:hover::after, .category-menu a.active::after { transform: scaleX(1); }

/* 中等桌面宽度：菜单压缩或换行，配合 header 高度变量 */
@media (min-width: 993px) and (max-width: 1340px) {
  :root { --header-height: 144px; }
  .category-menu { flex-wrap: wrap; height: auto; }
  .category-menu a { height: 36px; padding: 0 9px; font-size: 0.75rem; }
  .category-menu a::after { left: 9px; right: 9px; }
}
@media (min-width: 1341px) and (max-width: 1450px) {
  .category-menu a { padding: 0 9px; font-size: 0.75rem; }
  .category-menu a::after { left: 9px; right: 9px; }
}

/* ===== 移动端菜单抽屉 ===== */
.mobile-drawer {
  position: fixed;
  inset: 0;
  z-index: 300;
  visibility: hidden;
  pointer-events: none;
}
.mobile-drawer.open { visibility: visible; pointer-events: auto; }
body.mobile-menu-open { overflow: hidden; }
.mobile-drawer-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  transition: var(--transition-base);
}
.mobile-drawer.open .mobile-drawer-overlay { opacity: 1; }
.mobile-drawer-panel {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: min(320px, 85vw);
  background: var(--color-white);
  transform: translateX(-100%);
  transition: var(--transition-base);
  display: flex;
  flex-direction: column;
}
.mobile-drawer.open .mobile-drawer-panel { transform: translateX(0); }
.mobile-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacing-md) var(--spacing-lg);
  border-bottom: 1px solid var(--color-gray);
  font-weight: 700;
}
.mobile-drawer-head .lucide { width: 20px; height: 20px; }
.mobile-drawer nav { overflow-y: auto; padding: var(--spacing-sm) 0; }
.mobile-drawer nav a {
  display: block;
  padding: 12px var(--spacing-lg);
  font-size: 0.9375rem;
  font-weight: 500;
  border-bottom: 1px solid var(--color-gray-2);
}
.mobile-drawer nav a:hover { background: var(--color-accent-light); color: var(--color-accent-dark); }

/* ===== 购物车侧边抽屉：结构与外配站一致，颜色归手机配件站主题所有 ===== */
body.cart-drawer-open { overflow: hidden; }
.cart-drawer {
  position: fixed;
  z-index: 1200;
  inset: 0;
  visibility: hidden;
  pointer-events: none;
  transition: visibility 0s linear 0.42s;
}
.cart-drawer.is-open { visibility: visible; pointer-events: auto; transition-delay: 0s; }
.cart-drawer-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: rgba(18, 32, 45, 0.44);
  opacity: 0;
  transition: opacity 0.36s ease;
}
.cart-drawer.is-open .cart-drawer-backdrop { opacity: 1; }
.cart-drawer-panel {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  flex-direction: column;
  width: min(320px, 100vw);
  height: 100%;
  overflow: hidden;
  background: var(--color-white);
  border-left: 1px solid var(--color-gray);
  box-shadow: -18px 0 42px rgba(26, 58, 83, 0.16);
  transform: translateX(100%);
  transition: transform 0.42s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.cart-drawer.is-open .cart-drawer-panel { transform: translateX(0); }
.cart-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 19.5px 18px;
  border-bottom: 1px solid var(--color-gray);
}
.cart-drawer-header > div > span {
  display: block;
  margin-bottom: 5px;
  color: var(--color-accent-dark);
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: 0.11em;
}
.cart-drawer-header h2 { margin: 0; color: var(--color-text); font-size: 1.45rem; line-height: 1.2; letter-spacing: -0.04em; }
.cart-drawer-header small { display: block; margin-top: 6px; color: var(--color-text-light); font-size: 0.76rem; }
.cart-drawer-close {
  display: grid;
  width: 27px;
  height: 27px;
  flex: 0 0 auto;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--color-text-light);
  transition: color var(--transition-fast), background var(--transition-fast);
}
.cart-drawer-close:hover { background: var(--color-accent-light); color: var(--color-accent-dark); }
.cart-drawer-close:focus-visible,
.cart-drawer-qty button:focus-visible,
.cart-drawer-remove:focus-visible { outline: 2px solid var(--color-accent-dark); outline-offset: 2px; }
.cart-drawer-close .lucide { width: 15px; height: 15px; }
.cart-drawer-body { width: 100%; min-width: 0; flex: 1; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; padding: 0 18px; }
.cart-drawer-item {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) minmax(52px, auto);
  gap: 10px;
  padding: 16px 0;
  border-bottom: 1px solid var(--color-gray);
}
.cart-drawer-item > img { width: 54px; height: 54px; object-fit: contain; background: var(--color-gray-2); }
.cart-drawer-item-main { min-width: 0; overflow: hidden; }
.cart-drawer-item-brand { display: block; max-width: 100%; margin-bottom: 3px; overflow: hidden; color: var(--color-accent-dark); font-size: 0.58rem; font-weight: 900; letter-spacing: 0.08em; text-overflow: ellipsis; white-space: nowrap; }
.cart-drawer-item-main > strong {
  display: -webkit-box;
  overflow: hidden;
  color: var(--color-text);
  font-size: 0.8rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.cart-drawer-item-main small { display: block; margin-top: 3px; overflow: hidden; color: var(--color-text-light); font-size: 0.66rem; text-overflow: ellipsis; white-space: nowrap; }
.cart-drawer-item-controls { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 9px; }
.cart-drawer-qty { display: inline-grid; grid-template-columns: 27px 27px 27px; align-items: center; border: 1px solid var(--color-gray); }
.cart-drawer-qty button {
  display: grid;
  width: 27px;
  height: 26px;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: var(--color-white);
  color: var(--color-text);
  font-size: 0.95rem;
  line-height: 1;
  transition: background var(--transition-fast), color var(--transition-fast);
}
.cart-drawer-qty button:hover { background: var(--color-accent-light); color: var(--color-accent-dark); }
.cart-drawer-qty span { border-right: 1px solid var(--color-gray); border-left: 1px solid var(--color-gray); color: var(--color-text); font-size: 0.72rem; font-weight: 700; line-height: 26px; text-align: center; }
.cart-drawer-remove { display: grid; width: 22px; height: 22px; place-items: center; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--color-text-light); transition: background var(--transition-fast), color var(--transition-fast); }
.cart-drawer-remove .lucide { width: 15px; height: 15px; }
.cart-drawer-remove:hover { background: var(--color-accent-light); color: var(--color-accent-dark); }
.cart-drawer-item-total { min-width: 0; max-width: 82px; align-self: start; overflow: hidden; color: var(--color-text); font-size: 0.8rem; text-overflow: ellipsis; white-space: nowrap; }
.cart-drawer-footer { padding: 16px 18px 18px; border-top: 1px solid var(--color-gray); background: var(--color-white); }
.cart-drawer-total { display: flex; align-items: baseline; justify-content: center; gap: 5px; margin-bottom: 16px; }
.cart-drawer-total span { color: var(--color-text); font-size: 0.78rem; font-weight: 600; }
.cart-drawer-total strong { color: var(--color-text); font-size: 0.84rem; font-weight: 700; }
.cart-drawer-actions { display: grid; gap: 10px; }
.cart-drawer-action-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cart-drawer-actions .btn { min-height: 44px; padding: 9px 10px; border-color: var(--color-text); color: var(--color-text); font-size: 0.76rem; font-weight: 500; justify-content: center; white-space: nowrap; }
.cart-drawer-actions .btn:hover { border-color: var(--color-accent-dark); background: var(--color-accent-light); color: var(--color-accent-dark); }
.cart-drawer-footer.is-empty { display: none; }
.cart-drawer-empty { display: grid; min-height: 100%; align-content: center; justify-items: center; gap: 9px; padding: 36px 20px; color: var(--color-text-light); text-align: center; }
.cart-drawer-empty .lucide { width: 31px; height: 31px; margin-bottom: 4px; color: var(--color-accent-dark); }
.cart-drawer-empty strong { color: var(--color-text); font-size: 0.96rem; }
.cart-drawer-empty span { max-width: 235px; font-size: 0.76rem; line-height: 1.5; }
.cart-drawer-empty .btn { margin-top: 8px; }
.cart-drawer-loading { display: grid; min-height: 100%; place-items: center; color: var(--color-text-light); font-size: 0.8rem; }
.cart-drawer.is-loading .cart-drawer-panel { cursor: progress; }
.cart-drawer.is-loading [data-cart-drawer-action] { opacity: 0.5; cursor: progress; }
@media (prefers-reduced-motion: reduce) {
  .cart-drawer, .cart-drawer-backdrop, .cart-drawer-panel { transition-duration: 0.01ms; }
}
@media (max-width: 560px) {
  .cart-drawer-panel { width: 100vw; }
  .cart-drawer-header { padding: 19.5px 19px; }
  .cart-drawer-body { padding: 0 19px; }
  .cart-drawer-footer { padding: 17px 19px 20px; }
  .cart-drawer-item { grid-template-columns: 59px minmax(0, 1fr) auto; }
  .cart-drawer-item > img { width: 59px; height: 59px; }
}

/* ===== 主视觉 Hero ===== */
.hero-selector {
  position: relative;
  padding: var(--spacing-xxl) 0;
  background: linear-gradient(160deg, var(--color-accent-light) 0%, var(--color-gray-2) 55%, var(--color-white) 100%);
  overflow: hidden;
}
.hero-selector::before {
  content: '';
  position: absolute;
  top: -120px;
  right: -120px;
  width: 480px;
  height: 480px;
  background: radial-gradient(circle, rgba(125, 179, 224, 0.35) 0%, transparent 70%);
  animation: heroGlow 8s ease-in-out infinite;
}
@keyframes heroGlow {
  0%, 100% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.15); opacity: 1; }
}

.selector-box { position: relative; max-width: 860px; margin: 0 auto; text-align: center; }
.selector-title {
  font-size: clamp(2rem, 4.5vw, 3.25rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--color-black);
  line-height: 1.15;
}
.selector-title em { font-style: normal; color: var(--color-accent-dark); }
.selector-subtitle {
  margin: var(--spacing-md) auto var(--spacing-xl);
  max-width: 560px;
  color: var(--color-text-light);
  font-size: 1.0625rem;
}

.selector-row {
  display: grid;
  grid-template-columns: 1fr 220px auto;
  background: var(--color-white);
  border: 1px solid var(--color-gray);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
}
.selector-field { display: flex; align-items: center; border-right: 1px solid var(--color-gray); }
.selector-field input, .selector-field select {
  width: 100%;
  height: 56px;
  padding: 0 18px;
  border: none;
  outline: none;
  background: transparent;
  font-size: 0.9375rem;
}
.selector-field select { appearance: none; cursor: pointer; color: var(--color-text-light); }
.selector-btn {
  display: flex;
  align-items: center;
  gap: var(--spacing-xs);
  padding: 0 32px;
  height: 56px;
  background: var(--color-accent-dark);
  color: var(--color-white);
  font-weight: 700;
  font-size: 0.9375rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  transition: var(--transition-fast);
}
.selector-btn:hover { background: var(--color-black-2); }
.selector-btn .lucide { width: 18px; height: 18px; }

.hero-tags {
  margin-top: var(--spacing-lg);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--spacing-xs);
  font-size: 0.8125rem;
}
.hero-tags span { color: var(--color-gray-3); margin-right: 4px; }
.hero-tags a {
  padding: 4px 12px;
  background: var(--color-white);
  border: 1px solid var(--color-gray);
  color: var(--color-text-light);
  transition: var(--transition-fast);
}
.hero-tags a:hover { border-color: var(--color-accent); color: var(--color-accent-dark); }

/* ===== 区块通用头 ===== */
.section-header-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--spacing-md);
  margin-bottom: var(--spacing-xl);
}
.section-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-accent-dark);
  margin-bottom: var(--spacing-xs);
}
.section-title {
  font-size: clamp(1.5rem, 3vw, 2.125rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--color-black);
}
.section-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-text-light);
  white-space: nowrap;
  transition: var(--transition-fast);
}
.section-more:hover { color: var(--color-accent-dark); gap: 10px; }
.section-more .lucide { width: 16px; height: 16px; }

/* ===== 首页分类区块 ===== */
.category-blocks { padding: var(--spacing-xxl) 0 var(--spacing-xl); }
.category-blocks-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-md);
}
.cat-block {
  position: relative;
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--color-black-2);
  transition: var(--transition-base);
}
.cat-block:hover { transform: translateY(-6px); }
.cat-block-icon {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.16);
  transition: var(--transition-base);
}
.cat-block-icon .lucide { width: 96px; height: 96px; stroke-width: 1; }
.cat-block:hover .cat-block-icon { transform: scale(1.08); color: rgba(125, 179, 224, 0.3); }
.cat-block-content {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: var(--spacing-lg);
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.82));
  color: var(--color-white);
}
.cat-block-content h3 { font-size: 1.25rem; font-weight: 700; }
.cat-block-count { font-size: 0.75rem; color: #bdbdbd; margin-top: 2px; }
.cat-block-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: var(--spacing-sm);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-accent);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.cat-block-link .lucide { width: 14px; height: 14px; }

/* ===== 产品区块（首页横滑） ===== */
.products-section { padding: var(--spacing-xl) 0; }
.products-section.section-light { background: var(--color-gray-2); }

.products-scroll-wrap { position: relative; }
.products-scroll {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 4 * var(--spacing-md)) / 5);
  gap: var(--spacing-md);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding-bottom: 4px;
}
.products-scroll::-webkit-scrollbar { display: none; }
.products-scroll > * { scroll-snap-align: start; }

.scroll-nav {
  display: flex;
  gap: var(--spacing-xs);
}
.scroll-nav button {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-gray);
  background: var(--color-white);
  transition: var(--transition-fast);
}
.scroll-nav button:hover { border-color: var(--color-accent-dark); color: var(--color-accent-dark); }
.scroll-nav button .lucide { width: 18px; height: 18px; }

/* ===== 产品卡片 ===== */
.product-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--color-white);
  border: 1px solid var(--color-gray);
  transition: var(--transition-base);
}
.product-card:hover {
  transform: translateY(-8px);
  border-color: var(--color-accent);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.10), 0 6px 16px rgba(125, 179, 224, 0.18);
}

.product-badges {
  position: absolute;
  top: var(--spacing-sm);
  left: var(--spacing-sm);
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.product-badge {
  padding: 3px 8px;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-white);
  background: var(--color-black);
  width: fit-content;
}
.badge-sale { background: var(--color-accent-dark); }
.badge-new { background: var(--color-black); }
.badge-low { background: var(--color-white); color: var(--color-accent-dark); border: 1px solid var(--color-accent); }
.badge-out { background: var(--color-gray-3); }

.product-image {
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--color-gray-2);
}
.product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.product-card:hover .product-image img { transform: scale(1.08); }

.product-info { display: flex; flex-direction: column; flex: 1; padding: 12px; }

.product-brand {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-gray-3);
}
.product-name {
  margin-top: 2px;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.4;
  min-height: 40px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.product-name a:hover { color: var(--color-accent-dark); }

.product-spec-line {
  margin-top: 6px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.spec-chip {
  padding: 2px 7px;
  font-size: 0.6875rem;
  font-weight: 600;
  background: var(--color-accent-light);
  color: var(--color-accent-dark);
  border: 1px solid var(--color-accent-soft);
}
.spec-chip.spec-chip-neutral { background: var(--color-gray-2); color: var(--color-text-light); border-color: var(--color-gray); }

.product-sku {
  margin-top: 6px;
  font-size: 0.6875rem;
  color: var(--color-gray-3);
}

.product-price-row {
  margin-top: auto;
  padding-top: var(--spacing-sm);
  display: flex;
  align-items: baseline;
  gap: var(--spacing-xs);
}
.product-price { font-size: 1.125rem; font-weight: 800; color: var(--color-black); }
.product-old-price { font-size: 0.875rem; color: var(--color-gray-3); text-decoration: line-through; }

.product-stock-line {
  margin-top: 4px;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  font-weight: 600;
}
.stock-dot { width: 8px; height: 8px; background: var(--color-accent-dark); }
.stock-dot.out { background: var(--color-gray-3); }
.stock-dot.low { background: var(--color-accent); }
.product-stock-line.out { color: var(--color-gray-3); }
.product-stock-line.low { color: var(--color-accent-dark); }
.product-stock-line.in { color: var(--color-text-light); }

.product-card-actions { padding: 0; }

.product-login-hint {
  display: block;
  margin-bottom: 8px;
  color: var(--color-gray-3);
  font-size: 0.75rem;
  text-align: center;
}

.product-card-qty {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 116px;
  height: 36px;
  margin: 0 auto var(--spacing-sm);
  border: 1px solid var(--color-gray);
  background: var(--color-white);
}
.qty-btn {
  width: 34px;
  height: 34px;
  font-size: 1rem;
  color: var(--color-text-light);
  transition: var(--transition-fast);
}
.qty-btn:hover { color: var(--color-accent-dark); }
.qty-input {
  width: 40px;
  height: 34px;
  text-align: center;
  border: none;
  border-left: 1px solid var(--color-gray);
  border-right: 1px solid var(--color-gray);
  font-size: 0.875rem;
  font-weight: 600;
  outline: none;
  -moz-appearance: textfield;
}
.qty-input::-webkit-outer-spin-button, .qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }

.add-cart-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(100% - 32px);
  min-height: 40px;
  margin: 0 var(--spacing-md) var(--spacing-md);
  padding: 12px;
  background: var(--color-black);
  color: var(--color-white);
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  transition: var(--transition-fast);
}
.add-cart-btn:hover { background: var(--color-accent-dark); }
.add-cart-btn--outline {
  background: var(--color-white);
  color: var(--color-black);
  border: 1px solid var(--color-black);
}
.add-cart-btn--outline:hover { background: var(--color-black); color: var(--color-white); }
.add-cart-btn[disabled] { background: var(--color-gray-2); color: var(--color-gray-3); cursor: not-allowed; }

/* ===== 首页促销区 ===== */
.deals-section { padding: var(--spacing-xl) 0; }
.deals-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-md);
}

/* ===== 服务优势 ===== */
.features-section { padding: var(--spacing-xxl) 0; background: var(--color-black-2); }
.features-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-xl);
}
.feature-item { color: var(--color-white); }
.feature-icon {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-black-3);
  color: var(--color-accent);
  margin-bottom: var(--spacing-md);
}
.feature-icon .lucide { width: 24px; height: 24px; }
.feature-item h3 { font-size: 1.0625rem; font-weight: 700; margin-bottom: 6px; }
.feature-item p { font-size: 0.875rem; color: #a8a8a8; line-height: 1.6; }

/* ===== 邮件订阅 ===== */
.newsletter-section { padding: var(--spacing-xxl) 0; background: var(--color-accent-light); }
.newsletter-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-xl);
  max-width: 960px;
  margin: 0 auto;
}
.newsletter-text h2 { font-size: 1.625rem; font-weight: 800; letter-spacing: -0.02em; color: var(--color-black); }
.newsletter-text p { color: var(--color-text-light); margin-top: 4px; }
.newsletter-form { display: flex; flex: 1; max-width: 440px; }
.newsletter-form input {
  flex: 1;
  height: 50px;
  padding: 0 16px;
  border: 1px solid var(--color-gray);
  border-right: none;
  outline: none;
  font-size: 0.9375rem;
  background: var(--color-white);
}
.newsletter-form button {
  height: 50px;
  padding: 0 26px;
  background: var(--color-black);
  color: var(--color-white);
  font-weight: 700;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  transition: var(--transition-fast);
}
.newsletter-form button:hover { background: var(--color-accent-dark); }

/* ===== 页脚 ===== */
.main-footer { background: var(--color-black-2); color: #b5b5b5; }
.footer-top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  gap: var(--spacing-xl);
  padding: var(--spacing-xxl) 0 var(--spacing-xl);
}
.footer-brand .logo-text { color: var(--color-white); }
.footer-brand p { margin-top: var(--spacing-md); font-size: 0.875rem; line-height: 1.7; }
.footer-links h4, .footer-contact h4 {
  color: var(--color-white);
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: var(--spacing-md);
}
.footer-links li { margin-bottom: 10px; }
.footer-links a { font-size: 0.875rem; transition: var(--transition-fast); }
.footer-links a:hover { color: var(--color-accent); }
.footer-contact p { font-size: 0.875rem; margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.footer-contact .lucide { width: 15px; height: 15px; color: var(--color-accent); }
.footer-whatsapp {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: var(--spacing-sm);
  padding: 10px 18px;
  border: 1px solid var(--color-accent-dark);
  color: var(--color-accent);
  font-size: 0.875rem;
  font-weight: 600;
  transition: var(--transition-fast);
}
.footer-whatsapp:hover { background: var(--color-accent-dark); color: var(--color-white); }
.footer-bottom {
  border-top: 1px solid var(--color-black-3);
  padding: var(--spacing-lg) 0;
  font-size: 0.8125rem;
  color: #8a8a8a;
  display: flex;
  justify-content: space-between;
  gap: var(--spacing-md);
  flex-wrap: wrap;
}

/* ===== 面包屑 ===== */
.breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  padding: var(--spacing-lg) 0 0;
  font-size: 0.8125rem;
  color: var(--color-gray-3);
}
.breadcrumb a { color: var(--color-text-light); transition: var(--transition-fast); }
.breadcrumb a:hover { color: var(--color-accent-dark); }
.breadcrumb .lucide { width: 13px; height: 13px; }
.breadcrumb .current { color: var(--color-black); font-weight: 600; }

/* ===== 产品列表页 ===== */
.products-page { padding-bottom: var(--spacing-xxl); }
.products-page-header { padding: var(--spacing-lg) 0 var(--spacing-xl); }
.products-page-header h1 {
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--color-black);
}
.products-page-header .result-count { color: var(--color-text-light); font-size: 0.9375rem; margin-top: 4px; }

.products-layout {
  position: relative;
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: var(--spacing-xl);
  min-height: clamp(560px, 64vh, 720px);
  align-items: start;
  visibility: visible;
  opacity: 1;
}

/* One catalogue state machine owns the initial frame: booting -> revealing -> normal. */
.catalog-soft-focus {
  position: absolute;
  z-index: 8;
  inset: 0;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(0);
}
.catalog-soft-focus::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.28);
  opacity: 0.22;
}
.catalog-booting .catalog-soft-focus {
  visibility: visible;
  opacity: 1;
  backdrop-filter: blur(18px);
}
.catalog-booting .catalog-soft-focus::before {
  animation: catalogSoftFocusBreath 2.4s ease-in-out infinite alternate;
}
.catalog-revealing .catalog-soft-focus {
  visibility: visible;
  opacity: 0;
  backdrop-filter: blur(0);
  animation: catalogSoftFocusReveal 1.8s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes catalogSoftFocusBreath {
  from { opacity: 0.12; }
  to { opacity: 0.46; }
}
@keyframes catalogSoftFocusReveal {
  from { opacity: 1; backdrop-filter: blur(18px); }
  to { opacity: 0; backdrop-filter: blur(0); }
}

/* Homepage product modules reuse the catalogue's single soft-focus reveal.
   The veil exists in the initial HTML, before API data or product images. */
.home-products-stage {
  position: relative;
  min-height: clamp(560px, 64vh, 720px);
}
.home-catalog-booting .home-catalog-soft-focus {
  visibility: visible;
  opacity: 1;
  backdrop-filter: blur(18px);
}
.home-catalog-booting .home-catalog-soft-focus::before {
  animation: catalogSoftFocusBreath 2.4s ease-in-out infinite alternate;
}
.home-catalog-revealing .home-catalog-soft-focus {
  visibility: visible;
  opacity: 0;
  backdrop-filter: blur(0);
  animation: catalogSoftFocusReveal 1.8s cubic-bezier(0.22, 1, 0.36, 1);
}
body:not(.home-catalog-booting):not(.home-catalog-revealing) .home-products-stage {
  min-height: 0;
}

/* --- 侧栏筛选 --- */
.products-sidebar { position: sticky; top: calc(var(--header-height) + 16px); }

.sidebar-block {
  background: var(--color-white);
  border: 1px solid var(--color-gray);
  margin-bottom: var(--spacing-md);
}
.sidebar-block-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px var(--spacing-md);
  border-bottom: 1px solid var(--color-gray-2);
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-black);
}
.sidebar-block-head .lucide { width: 15px; height: 15px; color: var(--color-accent-dark); }
.sidebar-block-body { padding: var(--spacing-md); }

.products-sidebar-search { position: relative; margin-bottom: var(--spacing-md); }
.products-sidebar-search input {
  width: 100%;
  height: 46px;
  padding: 0 44px 0 16px;
  border: 1px solid var(--color-gray);
  font-size: 0.875rem;
  outline: none;
  background: var(--color-white);
  transition: var(--transition-fast);
}
.products-sidebar-search .lucide {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 17px;
  height: 17px;
  color: var(--color-gray-3);
}

/* 分类浏览器：类型 → 品牌 → 机型 */
.category-browser-path {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  padding: 10px var(--spacing-md);
  background: var(--color-accent-light);
  border-bottom: 1px solid var(--color-accent-soft);
  font-size: 0.8125rem;
}
.category-browser-path button {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-accent-dark);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.category-browser-path button:hover { text-decoration: underline; }
.category-browser-path .sep { color: var(--color-gray-3); }
.category-back-btn { font-weight: 700; }

.category-browser-list { display: flex; flex-direction: column; }
.category-browser-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 11px var(--spacing-md);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-text);
  text-align: left;
  border-bottom: 1px solid var(--color-gray-2);
  transition: var(--transition-fast);
}
.category-browser-item:last-child { border-bottom: none; }
.category-browser-item:hover { background: var(--color-accent-light); color: var(--color-accent-dark); }
.category-browser-item .count { font-size: 0.75rem; color: var(--color-gray-3); font-weight: 400; }
.category-browser-item .lucide { width: 14px; height: 14px; color: var(--color-gray-3); }
.category-browser-item:hover .lucide { color: var(--color-accent-dark); }
.category-browser-item.active { background: var(--color-accent-light); color: var(--color-accent-dark); font-weight: 700; }

/* 复选筛选组 */
.filter-group { display: flex; flex-direction: column; gap: 2px; max-height: 240px; overflow-y: auto; }
.filter-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 4px;
  font-size: 0.875rem;
  color: var(--color-text);
  cursor: pointer;
  transition: var(--transition-fast);
}
.filter-option:hover { color: var(--color-accent-dark); }
.filter-option input { display: none; }
.filter-checkbox {
  width: 16px;
  height: 16px;
  border: 1px solid var(--color-gray);
  background: var(--color-white);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: var(--transition-fast);
}
.filter-checkbox .lucide { width: 11px; height: 11px; color: var(--color-white); opacity: 0; }
.filter-option input:checked + .filter-checkbox { background: var(--color-accent-dark); border-color: var(--color-accent-dark); }
.filter-option input:checked + .filter-checkbox .lucide { opacity: 1; }
.filter-option .count { margin-left: auto; font-size: 0.75rem; color: var(--color-gray-3); }

.filter-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.filter-chip {
  padding: 6px 12px;
  border: 1px solid var(--color-gray);
  background: var(--color-white);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--color-text);
  transition: var(--transition-fast);
}
.filter-chip:hover { border-color: var(--color-accent); color: var(--color-accent-dark); }
.filter-chip.active { background: var(--color-accent-dark); border-color: var(--color-accent-dark); color: var(--color-white); }

.sidebar-clear {
  width: 100%;
  margin-top: 4px;
}

/* --- 主区工具栏 --- */
.products-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-md);
  padding: var(--spacing-sm) var(--spacing-md);
  background: var(--color-white);
  border: 1px solid var(--color-gray);
  margin-bottom: var(--spacing-md);
  flex-wrap: wrap;
}
.toolbar-left { display: flex; align-items: center; gap: var(--spacing-md); flex-wrap: wrap; }
.toolbar-search { position: relative; }
.toolbar-search input {
  width: 260px;
  height: 40px;
  padding: 0 36px 0 14px;
  border: 1px solid var(--color-gray);
  font-size: 0.875rem;
  outline: none;
}
.toolbar-search .lucide {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 15px;
  height: 15px;
  color: var(--color-gray-3);
}
.products-sort { display: flex; align-items: center; gap: var(--spacing-xs); font-size: 0.875rem; color: var(--color-text-light); }

.active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: var(--spacing-md);
}
.active-filter-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  background: var(--color-accent-light);
  border: 1px solid var(--color-accent-soft);
  color: var(--color-accent-dark);
  font-size: 0.8125rem;
  font-weight: 600;
}
.active-filter-tag button { display: flex; color: inherit; }
.active-filter-tag .lucide { width: 12px; height: 12px; }
.active-filter-tag:hover { border-color: var(--color-accent); }

/* --- 网格与状态 --- */
.products-page-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-sm);
}
.products-page-grid.hidden { display: none; }

.products-empty {
  padding: var(--spacing-xxl) var(--spacing-lg);
  text-align: center;
  background: var(--color-white);
  border: 1px solid var(--color-gray);
}
.products-empty .lucide { width: 48px; height: 48px; color: var(--color-gray); margin-bottom: var(--spacing-md); }
.products-empty h3 { font-size: 1.25rem; font-weight: 700; margin-bottom: var(--spacing-xs); }
.products-empty p { color: var(--color-text-light); margin-bottom: var(--spacing-lg); }
.products-empty.hidden { display: none; }

.catalog-facets-pending .catalog-deferred-filter { display: none; }
@media (prefers-reduced-motion: reduce) {
  .catalog-booting .catalog-soft-focus::before { animation: none; }
  .catalog-revealing .catalog-soft-focus { animation: none; }
  .home-catalog-booting .home-catalog-soft-focus::before { animation: none; }
  .home-catalog-revealing .home-catalog-soft-focus { animation: none; }
}

/* --- 分页 --- */
.products-pagination {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: var(--spacing-xl);
}
.page-btn {
  min-width: 42px;
  height: 42px;
  padding: 0 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-gray);
  background: var(--color-white);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-text);
  transition: var(--transition-fast);
}
.page-btn:hover:not([disabled]) { border-color: var(--color-accent-dark); color: var(--color-accent-dark); }
.page-btn.active { background: var(--color-black); border-color: var(--color-black); color: var(--color-white); }
.page-btn[disabled] { opacity: 0.4; cursor: not-allowed; }
.page-btn .lucide { width: 15px; height: 15px; }
.pagination-ellipsis { display: flex; align-items: center; padding: 0 6px; color: var(--color-gray-3); }

/* 移动端筛选开关按钮 */
.filters-toggle {
  display: none;
  width: 100%;
  margin-bottom: var(--spacing-md);
}

/* ===== 产品详情页 ===== */
.product-detail-main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--spacing-xl);
  padding: var(--spacing-xl) 0;
}

.product-detail-gallery { position: sticky; top: calc(var(--header-height) + 16px); align-self: start; }
.product-detail-image-main {
  position: relative;
  aspect-ratio: 1;
  background: var(--color-white);
  border: 1px solid var(--color-gray);
  overflow: hidden;
}
.product-detail-image-main img { width: 100%; height: 100%; object-fit: contain; padding: var(--spacing-xl); }
.product-detail-image-main img.is-pending { opacity: 0; }
.product-detail-image-main:has(img.is-pending)::after {
  position: absolute;
  inset: var(--spacing-xl);
  background: var(--color-neutral);
  content: '';
}
.product-detail-badges { position: absolute; top: var(--spacing-md); left: var(--spacing-md); display: flex; gap: 6px; }

.product-detail-thumbs {
  display: flex;
  gap: var(--spacing-sm);
  margin-top: var(--spacing-sm);
}
.product-thumb {
  width: 80px;
  height: 80px;
  border: 1px solid var(--color-gray);
  background: var(--color-white);
  padding: 6px;
  transition: var(--transition-fast);
}
.product-thumb img { width: 100%; height: 100%; object-fit: contain; }
.product-thumb.active, .product-thumb:hover { border-color: var(--color-accent-dark); }

.product-detail-info { display: flex; flex-direction: column; }
.product-detail-brand {
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-accent-dark);
}
.product-detail-title {
  margin-top: 6px;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--color-black);
}
.product-detail-model-line {
  margin-top: var(--spacing-sm);
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.model-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  background: var(--color-accent-light);
  border: 1px solid var(--color-accent-soft);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-accent-dark);
}
.model-chip .lucide { width: 13px; height: 13px; }
.model-chip.model-chip-dark { background: var(--color-black-2); border-color: var(--color-black-2); color: var(--color-white); }

.product-detail-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--spacing-md);
  margin-top: var(--spacing-md);
  padding: var(--spacing-sm) 0;
  border-top: 1px solid var(--color-gray-2);
  border-bottom: 1px solid var(--color-gray-2);
  font-size: 0.8125rem;
}
.product-detail-sku { color: var(--color-gray-3); }
.product-detail-stock { display: flex; align-items: center; gap: 6px; font-weight: 600; }
.product-detail-stock.in-stock { color: var(--color-accent-dark); }
.product-detail-stock.out-of-stock { color: var(--color-gray-3); }

.product-detail-price { display: flex; align-items: baseline; gap: var(--spacing-sm); margin-top: var(--spacing-md); }
.product-detail-price-current { font-size: 2.25rem; font-weight: 800; letter-spacing: -0.02em; color: var(--color-black); }
.product-detail-price-old { font-size: 1.125rem; color: var(--color-gray-3); text-decoration: line-through; }
.product-detail-price-note { font-size: 0.75rem; color: var(--color-gray-3); margin-top: 2px; }

.product-detail-short-desc { margin-top: var(--spacing-md); color: var(--color-text-light); line-height: 1.7; }

.product-detail-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--spacing-md);
  margin-top: var(--spacing-lg);
}
.product-detail-qty {
  display: flex;
  align-items: center;
  height: 36px;
  flex-shrink: 0;
  border: 1px solid var(--color-gray);
  background: var(--color-white);
}
.product-detail-qty .qty-btn { width: 34px; height: 34px; font-size: 1rem; }
.product-detail-qty .qty-input { width: 60px; height: 34px; font-size: 0.875rem; }
.product-detail-add {
  flex: 1;
  width: auto;
  min-width: 200px;
  height: 36px;
  min-height: 36px;
  margin: 0;
  padding: 0 20px;
  font-size: 0.75rem;
}
.product-detail-add .lucide { width: 16px; height: 16px; }
.product-detail-actions > .add-cart-btn {
  flex: 1;
  width: auto;
  min-width: 200px;
  min-height: 36px;
  margin: 0;
  padding: 9px 20px;
}

.product-detail-minorder {
  margin-top: var(--spacing-sm);
  font-size: 0.8125rem;
  color: var(--color-text-light);
  display: flex;
  align-items: center;
  gap: 6px;
}
.product-detail-minorder .lucide { width: 14px; height: 14px; color: var(--color-accent-dark); }

.product-detail-notes {
  margin-top: var(--spacing-lg);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-sm);
}
.product-detail-note {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px;
  background: var(--color-gray-2);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-text-light);
  line-height: 1.4;
}
.product-detail-note .lucide { width: 18px; height: 18px; color: var(--color-accent-dark); flex-shrink: 0; }

.product-detail-categories { margin-top: var(--spacing-lg); font-size: 0.8125rem; color: var(--color-text-light); }
.product-detail-categories a { color: var(--color-accent-dark); font-weight: 600; }
.product-detail-categories a:hover { text-decoration: underline; }

/* 规格速览表 */
.product-spec-quick {
  margin-top: var(--spacing-lg);
  border: 1px solid var(--color-gray);
  background: var(--color-white);
}
.product-spec-quick-row {
  display: grid;
  grid-template-columns: 160px 1fr;
  border-bottom: 1px solid var(--color-gray-2);
  font-size: 0.875rem;
}
.product-spec-quick-row:last-child { border-bottom: none; }
.product-spec-quick-row dt {
  padding: 10px var(--spacing-md);
  background: var(--color-gray-2);
  font-weight: 600;
  color: var(--color-text-light);
}
.product-spec-quick-row dd { padding: 10px var(--spacing-md); font-weight: 500; }

/* ===== 详情标签页 ===== */
.product-detail-tabs { padding-bottom: var(--spacing-xl); }
.detail-tabs-header {
  display: flex;
  gap: var(--spacing-xs);
  border-bottom: 1px solid var(--color-gray);
}
.detail-tab-btn {
  padding: 14px 26px;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--color-text-light);
  border-bottom: 3px solid transparent;
  margin-bottom: -1px;
  transition: var(--transition-fast);
}
.detail-tab-btn:hover { color: var(--color-black); }
.detail-tab-btn.active { color: var(--color-accent-dark); border-bottom-color: var(--color-accent-dark); }
.detail-tabs-content { padding: var(--spacing-xl) 0; }
.detail-tab-panel { display: none; }
.detail-tab-panel.active { display: block; animation: tabFadeIn 0.35s ease; }
@keyframes tabFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
.detail-tab-panel p { color: var(--color-text-light); line-height: 1.8; max-width: 780px; }

.detail-info-table { width: 100%; max-width: 780px; border-collapse: collapse; border: 1px solid var(--color-gray); }
.detail-info-table th, .detail-info-table td {
  padding: 12px var(--spacing-md);
  text-align: left;
  font-size: 0.875rem;
  border-bottom: 1px solid var(--color-gray-2);
}
.detail-info-table th {
  width: 220px;
  background: var(--color-gray-2);
  font-weight: 600;
  color: var(--color-text-light);
}
.detail-info-table td { font-weight: 500; }
.detail-info-table tr:last-child th, .detail-info-table tr:last-child td { border-bottom: none; }

/* ===== 相关产品 ===== */
.related-products { padding: var(--spacing-xl) 0 var(--spacing-xxl); }

/* Product detail resource-state owner keeps unavailable and empty views readable. */
main[data-resource-state="empty"] .product-detail-main,
main[data-resource-state="error"] .product-detail-main { grid-template-columns: minmax(0, 1fr); }
main[data-resource-state="empty"] .product-detail-gallery,
main[data-resource-state="error"] .product-detail-gallery,
main[data-resource-state="empty"] .product-detail-tabs,
main[data-resource-state="error"] .product-detail-tabs,
main[data-resource-state="empty"] .related-products,
main[data-resource-state="error"] .related-products,
main[data-resource-state="empty"] .product-detail-model-line,
main[data-resource-state="error"] .product-detail-model-line,
main[data-resource-state="empty"] .product-detail-meta,
main[data-resource-state="error"] .product-detail-meta,
main[data-resource-state="empty"] .product-detail-price,
main[data-resource-state="error"] .product-detail-price,
main[data-resource-state="empty"] .product-detail-price-note,
main[data-resource-state="error"] .product-detail-price-note,
main[data-resource-state="empty"] .product-detail-minorder,
main[data-resource-state="error"] .product-detail-minorder,
main[data-resource-state="empty"] .product-detail-notes,
main[data-resource-state="error"] .product-detail-notes,
main[data-resource-state="empty"] .product-detail-categories,
main[data-resource-state="error"] .product-detail-categories,
main[data-resource-state="empty"] .product-spec-quick,
main[data-resource-state="error"] .product-spec-quick,
main[data-resource-state="empty"] .compat-chips,
main[data-resource-state="error"] .compat-chips { display: none; }

/* 首页横向商品区保留卡片入场；目录页只使用 products-layout 的单层首帧渐显。 */
.products-scroll .product-card { animation: cardPop 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) backwards; }
@keyframes cardPop {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-selector::before, .products-scroll .product-card { animation: none; }
}

/* ===== 响应式 ===== */
@media (max-width: 1200px) {
  .products-scroll { grid-auto-columns: calc((100% - 3 * var(--spacing-md)) / 4); }
  .products-page-grid { grid-template-columns: repeat(3, 1fr); }
  .category-blocks-grid, .deals-grid { grid-template-columns: repeat(3, 1fr); }
  .features-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 992px) {
  :root { --header-height: 110px; }
  .menu-toggle { display: flex; }
  .header-inner { grid-template-columns: minmax(0, 1fr) auto; gap: var(--spacing-md); height: 50px; min-width: 0; }
  .header-left { grid-column: 1; min-width: 0; }
  .header-actions { grid-column: 2; min-width: 0; gap: 4px; }
  .header-search { order: 3; grid-column: 1 / -1; max-width: none; min-width: 0; width: 100%; padding-bottom: 10px; }
  .header-search input { min-width: 0; width: 100%; }
  .main-header .header-inner { flex-wrap: wrap; }
  .header-inner { grid-template-rows: auto auto; padding-top: 8px; }
  .category-nav { display: none; }
  .header-action span:not(.cart-count) { display: none; }
  /* Mobile touch targets: keep the 20px icon visuals but guarantee a 44px
     transparent hit area for every header action. */
  .header-action { min-width: 44px; min-height: 44px; justify-content: center; padding: 0 4px; }
  .selector-row { grid-template-columns: 1fr; }
  .selector-field { border-right: none; border-bottom: 1px solid var(--color-gray); }
  .selector-btn { justify-content: center; }
  .product-detail-main { grid-template-columns: 1fr; }
  .product-detail-gallery { position: static; }
  .newsletter-box { flex-direction: column; text-align: center; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: var(--spacing-lg); }
}

@media (max-width: 768px) {
  .container { padding: 0 var(--spacing-md); }
  .header-inner { column-gap: 6px; }
  .header-left { gap: 6px; }
  .menu-toggle { width: 36px; flex: 0 0 36px; }
  .logo { gap: 6px; min-width: 0; }
  .logo-mark { width: 30px; height: 30px; flex: 0 0 30px; }
  .logo-text { font-size: 1rem; white-space: nowrap; }
  .header-actions { gap: 0; }
  .header-action { min-width: 40px; width: 40px; flex: 0 0 40px; padding: 0; }
  .header-search input { flex: 1 1 0; }
  .products-layout { grid-template-columns: 1fr; }
  .products-sidebar {
    position: static;
    display: none;
  }
  .products-sidebar.open { display: block; }
  .filters-toggle { display: flex; }
  .products-scroll { grid-auto-columns: calc((100% - var(--spacing-md)) / 2); }
  .products-page-grid { grid-template-columns: repeat(2, 1fr); }
  .category-blocks-grid, .deals-grid { grid-template-columns: repeat(2, 1fr); }
  .products-toolbar { flex-direction: column; align-items: stretch; }
  .toolbar-search input { width: 100%; }
  .products-sort { justify-content: space-between; }
  .products-sort .form-select { flex: 1; }
  .features-grid { grid-template-columns: 1fr; gap: var(--spacing-lg); }
  .product-detail-notes { grid-template-columns: 1fr; }
  .product-detail-actions { flex-direction: column; }
  .product-detail-qty { justify-content: center; }
  .detail-tabs-header { flex-direction: column; gap: 0; }
  .detail-tab-btn { text-align: left; border-bottom: 1px solid var(--color-gray-2); border-left: 3px solid transparent; margin-bottom: 0; padding: 12px 16px; }
  .detail-tab-btn.active { border-left-color: var(--color-accent-dark); border-bottom-color: var(--color-gray-2); }
}

@media (max-width: 576px) {
  .products-page-grid { grid-template-columns: 1fr; }
  .category-blocks-grid, .deals-grid { grid-template-columns: 1fr; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; gap: 4px; }
  .product-spec-quick-row { grid-template-columns: 1fr; }
  .product-spec-quick-row dt { padding-bottom: 0; background: var(--color-white); }
  .hero-tags { justify-content: flex-start; }
}

/* ===== 手机配件站结构（区别于外配站营销型布局） ===== */

/* --- 机型检索带：品牌 → 机型 → 查配件 --- */
.finder-band {
  background: var(--color-black-2);
  color: var(--color-white);
  padding: var(--spacing-xl) 0;
}
.finder-inner {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--spacing-xl);
  align-items: center;
}
.finder-text h1 {
  font-size: clamp(1.375rem, 2.5vw, 1.875rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.finder-text h1 em { font-style: normal; color: var(--color-accent); }
.finder-text p { margin-top: 6px; font-size: 0.875rem; color: #a8a8a8; }

.finder-form {
  display: grid;
  grid-template-columns: 2fr 1fr auto;
  gap: var(--spacing-md);
  background: var(--color-white);
  padding: var(--spacing-md);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}
.finder-field {
  min-width: 0;
  text-align: left;
}
.finder-field label {
  display: block;
  margin-bottom: 6px;
  color: var(--color-text-light);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.finder-field input,
.finder-field .custom-select-trigger {
  width: 100%;
  height: 42px;
  padding: 0 var(--spacing-md);
  border: 1px solid var(--color-gray);
  border-radius: 0;
  outline: none;
  background-color: var(--color-white);
  font-size: 14px;
  color: var(--color-text);
  cursor: pointer;
}
.finder-field input::placeholder { color: #777; opacity: 1; }
.finder-field .custom-select {
  width: 100%;
  height: 42px;
}
.finder-field .custom-select-trigger > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.finder-field .custom-select-menu [role="option"] {
  padding: 8px 11px;
  font-size: 13px;
  line-height: 1.3;
}
.finder-btn {
  display: flex;
  align-items: center;
  align-self: end;
  gap: var(--spacing-xs);
  padding: 0 28px;
  height: 42px;
  margin-top: 17px;
  background: var(--color-accent-dark);
  color: var(--color-white);
  font-weight: 700;
  font-size: 15px;
  white-space: nowrap;
  box-shadow: 0 4px 16px rgba(75, 134, 183, 0.28);
  transition: var(--transition-base);
}
.finder-btn:hover { background: var(--color-black-2); color: var(--color-white); transform: none; box-shadow: 0 8px 24px rgba(75, 134, 183, 0.4); }
.finder-btn:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
.finder-btn .lucide { flex: 0 0 auto; width: 20px; height: 20px; }
.finder-btn > span { white-space: nowrap; }

.finder-popular {
  margin-top: var(--spacing-md);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 0.8125rem;
}
.finder-popular span { color: #8a8a8a; }
.finder-popular a { color: #cfcfcf; text-decoration: underline; text-underline-offset: 3px; transition: color var(--transition-fast); }
.finder-popular a:hover { color: var(--color-accent); }

/* --- 首页区块通用 --- */
.parts-section { padding: var(--spacing-xl) 0; }
.parts-section + .parts-section { padding-top: 0; }

/* --- 快捷专区（特价 / 新品 / 清仓 / 售后，横排） --- */
.zone-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-md);
}
.zone-card {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  padding: var(--spacing-md) var(--spacing-lg);
  background: var(--color-white);
  border: 1px solid var(--color-gray);
  border-left: 3px solid var(--color-accent-dark);
  transition: var(--transition-base);
}
.zone-card:hover {
  transform: translateX(4px);
  border-color: var(--color-accent);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.07);
}
.zone-card .lucide { width: 26px; height: 26px; color: var(--color-accent-dark); flex-shrink: 0; }
.zone-card strong { display: block; font-size: 0.9375rem; color: var(--color-black); }
.zone-card span { font-size: 0.75rem; color: var(--color-text-light); }
.zone-card.zone-dark { background: var(--color-black-2); border-color: var(--color-black-2); }
.zone-card.zone-dark strong { color: var(--color-white); }
.zone-card.zone-dark span { color: #a8a8a8; }

/* --- 商品密集网格区块（首页用） --- */
.dense-section { padding: var(--spacing-xl) 0; }
.dense-section.section-light { background: var(--color-gray-2); }

/* --- 紧凑服务条 --- */
.service-bar {
  border-top: 1px solid var(--color-gray);
  border-bottom: 1px solid var(--color-gray);
  background: var(--color-white);
}
.service-bar-inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.service-bar-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  padding: var(--spacing-md) var(--spacing-lg);
  font-size: 0.8125rem;
  border-right: 1px solid var(--color-gray-2);
}
.service-bar-item:last-child { border-right: none; }
.service-bar-item .lucide { width: 22px; height: 22px; color: var(--color-accent-dark); flex-shrink: 0; }
.service-bar-item strong { display: block; font-size: 0.8125rem; color: var(--color-black); }
.service-bar-item span { color: var(--color-text-light); font-size: 0.75rem; }

/* --- 质量等级色签（全站统一，浅蓝色系区分） --- */
.quality-tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  border: 1px solid transparent;
}
.qt-originale { background: var(--color-accent-dark); color: var(--color-white); }
.qt-service-pack { background: var(--color-black-2); color: var(--color-white); }
.qt-originale-smontato { background: var(--color-white); color: var(--color-accent-dark); border-color: var(--color-accent-dark); }
.qt-originale-rigenerato { background: var(--color-accent); color: var(--color-black-2); }
.qt-premium-aftermarket { background: var(--color-accent-light); color: var(--color-accent-dark); border-color: var(--color-accent-soft); }
.qt-compatible { background: var(--color-white); color: var(--color-text-light); border-color: var(--color-gray); }

/* --- 详情页适配机型 chips --- */
.compat-chips { margin-top: var(--spacing-lg); }
.compat-chips-label {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-gray-3);
  margin-bottom: var(--spacing-xs);
}
.compat-chips-list { display: flex; flex-wrap: wrap; gap: 6px; }
.compat-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  background: var(--color-white);
  border: 1px solid var(--color-gray);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--color-text);
  transition: var(--transition-fast);
}
.compat-chip:hover { border-color: var(--color-accent); color: var(--color-accent-dark); }
.compat-chip .lucide { width: 13px; height: 13px; color: var(--color-accent-dark); }

/* --- 新结构响应式 --- */
@media (max-width: 1200px) {
  .dir-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 992px) {
  .finder-inner { grid-template-columns: 1fr; gap: var(--spacing-lg); }
  .finder-form { grid-template-columns: 1fr; }
  .finder-btn { justify-content: center; margin-top: 0; }
  .dir-layout { grid-template-columns: 1fr; }
  .zone-strip { display: grid; grid-template-columns: repeat(2, 1fr); }
  .service-bar-inner { grid-template-columns: repeat(2, 1fr); }
  .service-bar-item { border-bottom: 1px solid var(--color-gray-2); }
}

@media (max-width: 576px) {
  .dir-grid { grid-template-columns: 1fr; }
  .zone-strip { grid-template-columns: 1fr; }
  .service-bar-inner { grid-template-columns: 1fr; }
  .service-bar-item { border-right: none; }
}
/* Server-owned phone-parts commerce. */
.commerce-page{min-height:70vh;padding:42px 0 80px}.commerce-head{padding:28px 0;border-bottom:1px solid #101b26}.commerce-head>span,.commerce-shell>span{color:#4b86b7;font-size:10px;font-weight:800;letter-spacing:.16em}.commerce-head h1{margin:8px 0;font-size:46px;letter-spacing:-.05em}.commerce-head p{margin:0;color:#607080}.commerce-shell{margin-top:18px;border:1px solid #101b26;background:#fff}.commerce-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px}.commerce-grid>section{padding:28px}.commerce-grid>aside{padding:28px;border-left:1px solid #101b26;background:#edf5fa}.commerce-grid h2{margin:0 0 18px;font-size:20px}.commerce-line{min-height:108px;display:grid;grid-template-columns:64px minmax(0,1fr) 82px 112px 34px;align-items:center;column-gap:18px;border-top:1px solid #d7e0e8}.commerce-line-image{display:block;width:58px;height:58px;padding:4px;border:1px solid #e1e7ec;background:#fff;object-fit:contain}.commerce-line-copy{min-width:0;display:grid;gap:6px}.commerce-line-copy strong{font-size:14px;font-weight:750;line-height:1.35}.commerce-line-copy small{color:#708090;font-size:12px;line-height:1.25}.commerce-line-quantity{display:grid;justify-items:center;gap:6px;color:#263849;font-size:9px;font-weight:750;line-height:1;letter-spacing:.04em;text-transform:uppercase;transform:translateY(-3px)}.commerce-line-quantity input{box-sizing:border-box;width:72px;height:36px;margin:0;padding:0;border:1px solid #aebfca;border-radius:0;background:#fff;color:#101b26;font-family:inherit;font-size:14px;font-weight:700;line-height:36px;text-align:center;font-variant-numeric:tabular-nums;-moz-appearance:textfield}.commerce-line-quantity input::-webkit-inner-spin-button,.commerce-line-quantity input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.commerce-line-total{justify-self:end;font-size:14px;line-height:1.2;font-variant-numeric:tabular-nums;white-space:nowrap}.commerce-line-remove{display:grid;width:30px;height:30px;padding:0;place-items:center;border:1px solid #c7d3dc;border-radius:0;background:#fff;color:#101b26;font-family:inherit;font-size:14px;font-weight:500;line-height:1}.commerce-grid>aside>div{margin:24px 0;display:flex;justify-content:space-between;font-size:22px}.commerce-grid>aside p{color:#607080;font-size:12px;line-height:1.6}.commerce-primary{width:100%;min-height:46px;margin-top:20px;padding:0 16px;display:flex;align-items:center;justify-content:center;border:1px solid #0e1a25;background:#0e1a25;color:#fff;text-decoration:none;font-weight:700}.commerce-primary:disabled{opacity:.5}.commerce-addresses{display:grid;gap:8px;margin-bottom:28px}.commerce-addresses label{padding:14px;display:flex;gap:12px;border:1px solid #c9d6df}.commerce-addresses span{display:grid;gap:5px}.commerce-addresses small{color:#657481}.commerce-payments{display:grid;gap:10px}.commerce-note{margin-top:20px;display:grid;gap:8px}.commerce-note textarea{min-height:90px;border:1px solid #b8c7d2}.commerce-empty,.commerce-success{min-height:300px;padding:50px;display:grid;place-items:center;align-content:center;gap:12px;text-align:center}@media(max-width:760px){.commerce-grid{grid-template-columns:1fr}.commerce-grid>aside{border-left:0;border-top:1px solid #101b26}.commerce-grid>section{padding:20px}.commerce-line{grid-template-columns:54px minmax(0,1fr) 30px;grid-template-areas:"image copy remove" "image quantity total";gap:12px 14px;padding:16px 0}.commerce-line-image{grid-area:image;width:50px;height:50px}.commerce-line-copy{grid-area:copy}.commerce-line-quantity{grid-area:quantity;justify-self:start;grid-template-columns:auto 60px;align-items:center;transform:none}.commerce-line-quantity input{width:60px}.commerce-line-total{grid-area:total}.commerce-line-remove{grid-area:remove}.commerce-head h1{font-size:36px}}
.commerce-coupon{display:grid!important;gap:7px;margin:20px 0!important;font-size:11px!important}.commerce-coupon>label{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.commerce-coupon>div{display:grid!important;grid-template-columns:minmax(0,1fr) auto;margin:0!important}.commerce-coupon input{min-width:0;height:40px;padding:0 10px;border:1px solid #aebfca;background:#fff;text-transform:uppercase}.commerce-coupon button{width:auto!important;height:40px!important;padding:0 13px;border:1px solid #0e1a25;background:#fff;color:#0e1a25;font-weight:700}.commerce-coupon small{min-height:16px;color:#607080}.commerce-coupon small.valid{color:#397f73}.commerce-coupon small.invalid{color:#a64539}
.commerce-invoice-summary{margin:0 0 28px;padding:18px;border:1px solid #c9d6df;background:#f8fafb}.commerce-invoice-summary>div>span{font-size:9px;font-weight:800;letter-spacing:.14em;color:#5d7790}.commerce-invoice-summary h3{margin:6px 0 14px;font-size:17px}.commerce-invoice-summary dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}.commerce-invoice-summary dl>div:last-child{grid-column:1/-1}.commerce-invoice-summary dt{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#73818d}.commerce-invoice-summary dd{margin:5px 0 0;font-size:12px;line-height:1.5}.commerce-invoice-summary>a{display:inline-block;margin-top:14px;color:#285f8b;font-size:12px;font-weight:700;text-underline-offset:3px}.commerce-payments label{padding:13px 14px;border:1px solid #c9d6df;background:#fff}.commerce-bank-details{margin:10px 0 0!important;padding:12px;display:grid!important;gap:8px;border:1px solid #b9cbd7;background:#f5f9fc}.commerce-bank-details[hidden]{display:none!important}.commerce-bank-details article{display:grid;gap:4px}.commerce-bank-details code{font-size:13px;font-weight:750;letter-spacing:.04em}.commerce-bank-details small{color:#607080}.commerce-checkout-summary{margin:20px 0 0;padding-top:10px;border-top:1px solid #c7d6df}.commerce-checkout-summary>div{display:flex;justify-content:space-between;gap:16px;padding:6px 0}.commerce-checkout-summary dt,.commerce-checkout-summary dd{margin:0;font-size:12px}.commerce-checkout-summary .is-credit dd{color:#28715e;font-weight:750}.commerce-checkout-summary .is-total{margin-top:5px;padding-top:12px;border-top:1px solid #9db0bc}.commerce-checkout-summary .is-total dt,.commerce-checkout-summary .is-total dd{font-size:15px;font-weight:800}.commerce-grid>aside>label{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.45}

/* S.Ricambio shared information, legal and confirmation surfaces. */
.footer-delivery{display:flex;align-items:center;gap:9px;margin:14px 0 0;color:#d9e9f4;font-size:.875rem;font-weight:650}.footer-delivery svg{width:18px;height:18px;color:var(--color-accent)}
.privacy-notice{position:fixed;z-index:1300;right:0;bottom:0;left:0;border-top:1px solid var(--color-accent-soft);background:#f8fbfe;box-shadow:0 -10px 32px rgba(16,27,38,.12);animation:privacyNoticeEnter .38s cubic-bezier(.2,.8,.2,1) both}.privacy-notice.is-leaving{pointer-events:none;animation:privacyNoticeLeave .22s ease both}.privacy-notice-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:26px;width:min(100% - 48px,1240px);min-height:88px;margin:0 auto;padding:16px 0}.privacy-notice-copy{min-width:0}.privacy-notice-eyebrow{display:block;margin-bottom:5px;color:var(--color-accent-dark);font-size:9px;font-weight:800;letter-spacing:.13em}.privacy-notice-copy p{margin:0;color:#586b7b;font-size:12px;line-height:1.55}.privacy-notice-copy a{color:#2f6fa8;font-weight:700;text-decoration:underline;text-underline-offset:3px}.privacy-notice-actions{display:flex;flex-shrink:0;gap:9px}.privacy-btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 15px;border:1px solid #9ebbd3;background:#fff;color:#263849;font-family:inherit;font-size:11px;font-weight:750;box-shadow:none;white-space:nowrap;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,color .2s ease}.privacy-btn:hover{border-color:var(--color-accent-dark);background:var(--color-accent-light)}.privacy-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.privacy-btn:active{border-color:#326fa9;background:#e2eef8}.privacy-btn-primary{border-color:var(--color-accent-dark);background:var(--color-accent-dark);color:#fff}.privacy-btn-primary:hover{border-color:#3978b5;background:#3978b5;color:#fff}.privacy-btn-primary:active{border-color:#326fa9;background:#326fa9;color:#fff}
@keyframes privacyNoticeEnter{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}
@keyframes privacyNoticeLeave{to{opacity:0;transform:translateY(100%)}}
@media(prefers-reduced-motion:reduce){.privacy-notice,.privacy-notice.is-leaving{animation:none}}
.legal-page{min-height:70vh;padding:42px 0 80px}.legal-shell{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,1.5fr);gap:34px;align-items:start}.legal-hero{position:sticky;top:112px;padding:32px;border-top:4px solid #4b86b7;background:#101b26;color:#fff}.legal-kicker{display:block;color:#75a8d1;font-size:.625rem;font-weight:800;letter-spacing:.16em}.legal-hero h1{margin:12px 0 14px;font-size:clamp(2rem,4vw,3.5rem);line-height:.98;letter-spacing:-.055em}.legal-hero p{margin:0;color:#bcc8d1;line-height:1.65}.legal-content{border:1px solid #c9d4dc;background:#fff}.legal-content section{padding:28px 32px;border-bottom:1px solid #dbe3e9}.legal-content h2{margin:0 0 10px;font-size:1.08rem}.legal-content p{margin:0;color:#536574;line-height:1.75}.legal-content a{color:#286eaa;text-decoration:underline;text-underline-offset:3px}.legal-updated{padding:20px 32px!important;font-size:.75rem!important;background:#edf5fa}.support-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;grid-column:2}.support-grid>a{min-height:130px;padding:22px;display:grid;align-content:center;gap:7px;border:1px solid #c9d4dc;background:#fff}.support-grid .lucide{width:22px;height:22px;color:#397aa9}.support-grid strong{font-size:1rem}.support-grid span{font-size:.78rem;color:#657481}.support-grid+.legal-content{grid-column:2}
/* Order completion: external-store structure with restrained phone-store accents.
   Tokens stay page-scoped; shared catalogue/header owners remain unchanged. */
.order-completion { --color-accent:#89a7bd; --color-accent-dark:#617f99; --color-accent-soft:#dbe4e9; --color-accent-light:#f4f7f8; background:#fff; }
.order-completion .main-footer { border-top:1px solid #e1e3e2; background:#f5f5f4; color:#686f73; }
.order-completion .footer-top { padding:40px 0 28px; }
.order-completion .footer-brand .logo-text, .order-completion .footer-links h4, .order-completion .footer-contact h4 { color:#191e20; }
.order-completion .footer-whatsapp { border-color:#b9bfc2; color:#617f99; }
.order-completion .footer-whatsapp:hover { color:#fff; }
.order-completion .footer-bottom { border-top-color:#e1e3e2; }
.order-completion .footer-delivery { color:#686f73; }
.order-completion .footer-contact .lucide { color:#617f99; }
.order-success-page { --order-ink:#191e20; --order-muted:#686f73; --order-rule:#e1e3e2; min-height:70vh; padding:48px 0 80px; color:var(--order-ink); }
.order-success-page [hidden] { display:none !important; }
.order-success-hero { display:flex; align-items:center; gap:16px; margin-bottom:32px; }
.order-success-hero > svg { width:28px; height:28px; flex:none; color:#617f99; stroke-width:1.6; }
.order-success-hero h1 { margin:0 0 4px; font-size:28px; font-weight:700; line-height:1.2; letter-spacing:-.025em; overflow-wrap:anywhere; }
.order-success-hero p { color:var(--order-muted); font-size:13px; }
.order-success-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:24px; }
.order-success-main, .order-success-side { min-width:0; }
.order-success-main { display:grid; align-content:start; gap:24px; }
.order-success-panel, .order-success-notice { padding:24px; border:1px solid var(--order-rule); background:#fff; box-shadow:0 3px 12px rgba(25,30,32,.025); }
.order-success-panel h2 { margin:0 0 18px; padding-bottom:12px; border-bottom:1px solid var(--order-rule); font-size:15px; font-weight:650; line-height:1.5; }
.order-success-item { display:grid; grid-template-columns:48px minmax(0,1fr) 42px 66px 74px; align-items:center; gap:12px; padding:12px 0 18px; border-bottom:1px solid var(--order-rule); font-size:13px; }
.order-success-item + .order-success-item { padding-top:18px; }
.order-success-item-icon { display:grid; place-items:center; width:48px; height:48px; border:1px solid var(--order-rule); color:#858d91; background:#fafafa; }
.order-success-item-icon svg { width:22px; height:22px; stroke-width:1.3; }
.order-success-item-info { min-width:0; overflow-wrap:anywhere; }
.order-success-item-info p { margin:0 0 3px; font-weight:500; line-height:1.5; }
.order-success-item-info span { color:var(--order-muted); font-size:11px; }
.order-success-item-quantity, .order-success-item-unit { color:var(--order-muted); white-space:nowrap; text-align:right; }
.order-success-item-total { font-weight:650; white-space:nowrap; text-align:right; }
.order-success-totals { margin:16px 0 0; }
.order-success-totals > div { display:flex; justify-content:space-between; gap:16px; padding:4px 0; font-size:13px; }
.order-success-totals dd { margin:0; white-space:nowrap; }
.order-success-totals .is-total { margin-top:12px; padding:10px 0 0; border-top:1px solid var(--order-ink); font-size:16px; font-weight:700; }
.order-success-addresses { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.order-success-addresses > div { min-width:0; }
.order-success-addresses > div + div { padding-left:24px; border-left:1px solid var(--order-rule); }
.order-success-addresses h3 { margin:0 0 8px; font-size:10px; font-weight:650; text-transform:uppercase; color:var(--order-muted); }
.order-success-addresses p { margin:0; font-size:13px; line-height:1.7; white-space:pre-line; overflow-wrap:anywhere; }
.order-success-status { margin:0; }
.order-success-status > div { display:flex; align-items:baseline; justify-content:space-between; gap:20px; padding:10px 0; border-bottom:1px solid var(--order-rule); font-size:13px; }
.order-success-status > div:last-child { border-bottom:0; }
.order-success-status dt { color:var(--order-muted); flex:none; }
.order-success-status dd { margin:0; text-align:right; overflow-wrap:anywhere; }
.order-success-status [data-order-state] { font-size:12px; font-weight:600; }
.order-success-status [data-state="unpaid"], .order-success-status [data-state="processing"] { color:#996b30; }
.order-success-status [data-state="completed"] { color:#617f99; }
.order-success-actions { display:grid; gap:8px; margin-top:24px; }
.order-success-button { display:flex; align-items:center; justify-content:center; min-height:42px; padding:9px 16px; border:1px solid #172126; background:#172126; color:#fff; font-size:13px; font-weight:600; text-align:center; line-height:1.5; transition:background-color .18s ease, color .18s ease; }
.order-success-button:hover { background:#2b383e; }
.order-success-button--outline { border-color:#b9bfc2; background:#fff; color:#617f99; }
.order-success-button--outline:hover { background:#f4f7f8; color:#435f75; }
.order-success-button:focus-visible, .order-success-notice a:focus-visible { outline:2px solid #617f99; outline-offset:3px; }
.order-success-notice h1 { margin:8px 0; font-size:28px; line-height:1.2; }
.order-success-notice p, .order-success-empty { color:var(--order-muted); font-size:13px; }
.order-success-notice a { display:inline-block; margin-top:18px; color:#617f99; font-size:13px; text-decoration:underline; text-underline-offset:3px; }
@media (max-width:800px) {
  .order-success-page { padding:32px 0 48px; }
  .order-success-grid { grid-template-columns:minmax(0,1fr); }
  .order-success-hero h1 { font-size:24px; }
}
@media (max-width:540px) {
  .order-success-page > .container { padding:0 16px; }
  .order-success-hero { gap:12px; margin-bottom:24px; align-items:flex-start; }
  .order-success-hero > svg { width:24px; height:24px; margin-top:2px; }
  .order-success-panel, .order-success-notice { padding:18px; }
  .order-success-main, .order-success-grid { gap:18px; }
  .order-success-item { grid-template-columns:48px minmax(0,1fr) auto; gap:8px 12px; }
  .order-success-item-icon { grid-column:1; grid-row:1; }
  .order-success-item-info { grid-column:2 / 4; grid-row:1; }
  .order-success-item-quantity { grid-column:1; grid-row:2; text-align:left; }
  .order-success-item-unit { grid-column:2; grid-row:2; }
  .order-success-item-total { grid-column:3; grid-row:2; }
  .order-success-addresses { grid-template-columns:1fr; gap:18px; }
  .order-success-addresses > div + div { padding:16px 0 0; border-left:0; border-top:1px solid var(--order-rule); }
  .order-success-button { min-height:44px; }
}
.commerce-legal{padding-top:14px;border-top:1px solid #cad6df}.commerce-legal a{text-decoration:underline}.commerce-warning{padding:14px;border:1px solid #d9a243;background:#fff8e8;color:#755617}.auth-options a,.auth-register-checkbox a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:800px){.legal-shell{grid-template-columns:1fr}.legal-hero{position:static}.support-grid,.support-grid+.legal-content{grid-column:1}.support-grid{grid-template-columns:1fr}.footer-top{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.privacy-notice-inner{grid-template-columns:1fr;gap:13px;width:min(100% - 28px,620px);min-height:0;padding:15px 0}.privacy-notice-actions{justify-content:flex-end}}
@media(max-width:420px){.privacy-notice-actions{display:grid;grid-template-columns:1fr 1fr}.privacy-btn{width:100%;padding:0 8px}}
@media(max-width:540px){.footer-top{grid-template-columns:1fr}.legal-content section,.legal-hero{padding:24px}}
/* Shared, non-interactive tooltip for icon-only controls. */
.senntoc-icon-tooltip {
  position: fixed;
  z-index: 2147483000;
  max-width: min(180px, calc(100vw - 16px));
  padding: 5px 8px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 3px;
  background: #242827;
  color: #fff;
  box-shadow: 0 5px 14px rgba(0, 0, 0, .18);
  font-family: inherit;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: .01em;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-2px);
  transition: opacity 170ms ease, transform 170ms ease, visibility 0s linear 170ms;
}
.senntoc-icon-tooltip[data-visible="measuring"] {
  display: block;
  visibility: hidden;
}
.senntoc-icon-tooltip[data-visible="true"] {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition-delay: 0s;
}
@media (prefers-reduced-motion: reduce) {
  .senntoc-icon-tooltip { transition-duration: .01ms; }
}

/* Semantic per-control tooltip and CSS fallback for browsers that suppress hover events. */
[data-tooltip]:not([data-tooltip="off"]) { position: relative; }
.senntoc-inline-tooltip {
  display: none !important;
  position: absolute; z-index: 2147482999; top: calc(100% + 8px); left: 50%;
  width: max-content; max-width: min(240px, calc(100vw - 16px)); height: auto;
  padding: 5px 8px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
  border: 1px solid rgba(255,255,255,.12); border-radius: 3px; background: #242827; color: #fff;
  box-shadow: 0 5px 14px rgba(0,0,0,.18); font-family: inherit; font-size: 11px; font-weight: 600;
  line-height: 1.35; letter-spacing: .01em; text-align: center; white-space: nowrap; pointer-events: none;
  opacity: 0; transform: translate(-50%, -2px); transition: opacity 170ms ease 500ms, transform 170ms ease 500ms;
}
[data-tooltip]:not([data-tooltip="off"]):hover > .senntoc-inline-tooltip,
[data-tooltip]:not([data-tooltip="off"]):focus-visible > .senntoc-inline-tooltip {
  overflow: visible; clip: auto; clip-path: none; opacity: 1; transform: translate(-50%, 0);
}
body:has(.senntoc-icon-tooltip[data-visible="true"]) .senntoc-inline-tooltip {
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); opacity: 0;
}
@media (prefers-reduced-motion: reduce) { .senntoc-inline-tooltip { transition-duration: .01ms; } }
/* Optical alignment: centre the quantity box on the cart-row midline while its label sits above. */
@media (min-width: 761px) { .commerce-line-quantity { transform: translateY(-8px); } }
/* Carrello: feedback visibile per l'aggiornamento della quantità. */
.commerce-cart-flash{margin:20px 20px 0;padding:10px 14px;border:1px solid #101b26;background:#edf5fa;color:#101b26;font-size:13px;font-weight:600}
.commerce-cart-flash[data-kind="ok"]{border-color:#2e7d32;background:#eaf6eb;color:#2e5c30}
.commerce-cart-flash[data-kind="error"]{border-color:#b3261e;background:#fbeeec;color:#8c1d16}
.commerce-cart-flash[data-kind="pending"]{border-color:#4b86b7;background:#e8f1f8;color:#2d5b85}
.commerce-line.is-saving{opacity:.6}
.commerce-line.is-saving .commerce-line-quantity input{border-color:#4b86b7;background:#e8f1f8}

/* Checkout: structural parity with the Accessore storefront, using S.Ricambio blue. */
.pp-checkout-page{min-height:70vh;padding:34px 0 80px}.pp-checkout-header{margin-bottom:48px}.pp-checkout-header h1{margin:0 0 4px;color:var(--color-black);font-size:clamp(24px,3vw,36px);font-weight:800;letter-spacing:-.035em}.pp-checkout-root{border:0;background:transparent}.pp-checkout-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:start}.pp-checkout-main,.pp-checkout-side{min-width:0}.pp-checkout-card{margin-bottom:24px;padding:28px;border:1px solid var(--color-gray);background:#fff;box-shadow:0 2px 12px rgba(18,46,69,.045)}.pp-checkout-card-header{display:flex;align-items:center;gap:10px;margin-bottom:20px}.pp-checkout-card-header>svg{width:20px;height:20px;flex:0 0 auto;color:var(--color-accent-dark)}.pp-checkout-card-header h2{min-width:0;flex:1;margin:0;color:var(--color-black);font-size:16px;font-weight:700;line-height:1.3}.pp-checkout-card-header>button,.pp-checkout-card-header>a{display:inline-flex;min-height:34px;padding:0 10px;align-items:center;justify-content:center;gap:6px;border:1px solid var(--color-accent-soft);background:var(--color-accent-light);color:var(--color-accent-dark);font-size:11px;font-weight:700;line-height:1}.pp-checkout-card-header>button svg,.pp-checkout-card-header>a svg{width:14px;height:14px}.pp-checkout-card-header>button:hover,.pp-checkout-card-header>a:hover{border-color:var(--color-accent-dark);background:var(--color-accent-dark);color:#fff}.pp-checkout-card-header>button:focus-visible,.pp-checkout-card-header>a:focus-visible{outline:2px solid var(--color-accent-dark);outline-offset:2px}.pp-checkout-address-display{padding:18px 19px;border:1px solid var(--color-accent-soft);background:var(--color-accent-light)}.pp-checkout-address-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--color-accent-soft)}.pp-checkout-address-label span{color:var(--color-accent-dark);font-size:10px;font-weight:800;letter-spacing:.1em}.pp-checkout-address-label strong{font-size:14px}.pp-checkout-address-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:20px;font-size:13px}.pp-checkout-address-grid>div>*{display:block}.pp-checkout-address-grid b{margin-bottom:5px;font-size:14px}.pp-checkout-address-grid>div:first-child span{color:var(--color-text-light);line-height:1.6}.pp-checkout-address-grid>div:last-child{display:grid;align-content:start;gap:8px;padding-left:18px;border-left:1px solid var(--color-accent-soft);color:var(--color-text-light)}.pp-checkout-address-grid>div:last-child span{display:flex;align-items:center;gap:7px;overflow-wrap:anywhere}.pp-checkout-address-grid svg{width:14px;height:14px;flex:0 0 auto;color:var(--color-accent-dark)}.pp-checkout-address-empty{display:flex;align-items:center;gap:12px;padding:8px 2px;color:var(--color-text-light)}.pp-checkout-address-empty>svg{width:22px;height:22px;color:var(--color-accent-dark)}.pp-checkout-address-empty strong,.pp-checkout-address-empty span{display:block}.pp-checkout-address-empty span{margin-top:3px;font-size:12px}.pp-checkout-billing .pp-checkout-card-header>svg{color:#667581}.pp-checkout-billing-display{padding:18px 19px;border:1px solid #dce4ea;background:#fbfcfd}.pp-checkout-billing-top{display:grid;grid-template-columns:.83fr 1.17fr;border-bottom:1px solid #e2e8ed}.pp-checkout-billing-top>div{min-width:0;padding:0 15px 14px}.pp-checkout-billing-top>div:first-child{padding-left:0;border-right:1px solid #e2e8ed}.pp-checkout-billing-top>div:last-child{padding-right:0}.pp-checkout-billing-display span{display:block;color:#6f7e89;font-size:9px;font-weight:800;letter-spacing:.09em}.pp-checkout-billing-display strong{display:block;color:#253441;font-size:14px;line-height:1.55}.pp-checkout-billing-top strong{margin-top:8px}.pp-checkout-billing-top p{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 7px;margin:8px 0 0;color:#516270;font-size:12px;line-height:1.5}.pp-checkout-billing-top p b{color:#687783;font-size:10px}.pp-checkout-billing-top p i{width:1px;height:12px;margin:0 3px;background:#d8e0e6}.pp-checkout-billing-address{padding:14px 0;border-bottom:1px solid #e2e8ed}.pp-checkout-billing-address strong{margin-top:7px;font-size:13px}.pp-checkout-billing-contact{display:flex;flex-wrap:wrap;gap:10px 20px;padding-top:13px;color:#687783;font-size:11px}.pp-checkout-billing-contact span{display:flex;align-items:center;gap:6px;color:#687783;font-size:11px;font-weight:500;letter-spacing:0}.pp-checkout-billing-contact svg{width:13px;height:13px;color:var(--color-accent-dark)}.pp-checkout-items{margin-bottom:16px}.pp-checkout-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--color-gray-2)}.pp-checkout-item:last-child{border-bottom:0}.pp-checkout-item>img{width:56px;height:56px;flex:0 0 auto;padding:3px;border:1px solid var(--color-gray);background:var(--color-gray-2);object-fit:contain}.pp-checkout-item>div{min-width:0;display:flex;flex:1;flex-direction:column;gap:2px}.pp-checkout-item>div small{color:var(--color-accent-dark);font-size:10px;font-weight:700;letter-spacing:.04em}.pp-checkout-item>div strong{overflow:hidden;color:var(--color-text);font-size:13px;font-weight:500;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.pp-checkout-item>div span{color:var(--color-text-light);font-size:12px}.pp-checkout-item>p{flex:0 0 auto;margin:0;text-align:right}.pp-checkout-item>p strong,.pp-checkout-item>p small{display:block}.pp-checkout-item>p strong{font-size:14px}.pp-checkout-item>p small{color:var(--color-text-light);font-size:11px}.pp-checkout-totals{margin:0;padding-top:16px;border-top:1px solid var(--color-gray)}.pp-checkout-totals>div{display:flex;justify-content:space-between;gap:18px;padding:5px 0}.pp-checkout-totals dt,.pp-checkout-totals dd{margin:0;font-size:13px}.pp-checkout-totals .is-credit dd{color:var(--color-accent-dark);font-weight:700}.pp-checkout-totals .is-total{margin-top:8px;padding-top:12px;border-top:2px solid var(--color-black)}.pp-checkout-totals .is-total dt,.pp-checkout-totals .is-total dd{font-size:16px;font-weight:700}.pp-checkout-buono{display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding:13px 14px;border:1px solid var(--color-accent-soft);background:var(--color-accent-light);font-size:12px}.pp-checkout-buono input{margin-top:3px;accent-color:var(--color-accent-dark)}.pp-checkout-buono span,.pp-checkout-buono strong,.pp-checkout-buono small{display:block}.pp-checkout-buono small{margin-top:2px;color:var(--color-text-light)}.pp-checkout-coupon>p{margin:-7px 0 14px;color:var(--color-text-light);font-size:12px;line-height:1.45}.pp-checkout-coupon>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.pp-checkout-coupon input{min-width:0;height:40px;padding:0 12px;border:1px solid var(--color-gray);background:#fff;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.pp-checkout-coupon button{min-height:40px;padding:0 15px;border:1px solid var(--color-accent-dark);background:#fff;color:var(--color-accent-dark);font-size:11px;font-weight:750}.pp-checkout-coupon button:hover{background:var(--color-accent-light)}.pp-checkout-coupon>small{display:block;min-height:16px;margin-top:10px;color:var(--color-text-light);font-size:11px}.pp-checkout-coupon>small.valid{color:#28715e}.pp-checkout-coupon>small.invalid{color:#a64539}.pp-checkout-payments{display:grid;gap:10px}.pp-checkout-payment{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid var(--color-gray);cursor:pointer}.pp-checkout-payment:hover,.pp-checkout-payment:has(input:checked){border-color:var(--color-accent-dark);background:var(--color-accent-light)}.pp-checkout-payment input{margin-top:4px;accent-color:var(--color-accent-dark)}.pp-checkout-payment span,.pp-checkout-payment strong,.pp-checkout-payment small{display:block}.pp-checkout-payment strong{font-size:14px;font-weight:600}.pp-checkout-payment small{margin-top:2px;color:var(--color-text-light);font-size:12px;line-height:1.4}.pp-checkout-notes{display:block;width:100%;min-height:80px;padding:12px 14px;resize:vertical;border:1px solid var(--color-gray);background:#fff;color:var(--color-text);font-size:13px}.pp-checkout-submit{display:flex;width:100%;height:52px;margin-bottom:10px;align-items:center;justify-content:center;gap:10px;border:0;background:var(--color-black);color:#fff;font-size:15px;font-weight:700}.pp-checkout-submit svg{width:18px;height:18px}.pp-checkout-submit:hover{background:var(--color-black-3);transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,.15)}.pp-checkout-submit:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.pp-checkout-submit:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.pp-checkout-disclaimer{margin:0;color:var(--color-text-light);font-size:11px;line-height:1.45;text-align:center}.pp-checkout-disclaimer a{text-decoration:underline;text-underline-offset:2px}.pp-checkout-error{min-height:20px;margin:10px 0 0;color:#a64539;font-size:12px;text-align:center}.pp-checkout-address-dialog{width:min(880px,calc(100% - 32px));max-height:82vh;padding:0;border:1px solid #263b4d;background:#fff;color:var(--color-text);box-shadow:0 30px 90px rgba(10,31,48,.28)}.pp-checkout-address-dialog::backdrop{background:rgba(15,30,43,.52);backdrop-filter:blur(2px)}.pp-checkout-address-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:28px 32px 23px;border-bottom:1px solid #dce5ec}.pp-checkout-address-dialog>header span{display:block;margin-bottom:7px;color:var(--color-accent-dark);font-size:10px;font-weight:800;letter-spacing:.14em}.pp-checkout-address-dialog>header h2{margin:0;font-size:24px;letter-spacing:-.045em}.pp-checkout-address-dialog>header button{display:grid;width:38px;height:38px;place-items:center;border:1px solid #d5e0e8;background:#fff}.pp-checkout-address-dialog>header button:hover{border-color:var(--color-accent-dark);background:var(--color-accent-light)}.pp-checkout-address-dialog>header svg{width:17px;height:17px}.pp-checkout-address-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:26px 32px}.pp-checkout-address-option{min-height:170px;padding:20px;border:1px solid #dce5ec;background:#fff;color:var(--color-text);text-align:left}.pp-checkout-address-option:hover,.pp-checkout-address-option.is-selected{border-color:var(--color-accent-dark);background:var(--color-accent-light)}.pp-checkout-address-option:focus-visible{outline:2px solid var(--color-accent-dark);outline-offset:2px}.pp-checkout-address-option>span{display:flex;align-items:center;gap:8px;margin-bottom:12px}.pp-checkout-address-option>span strong{font-size:15px}.pp-checkout-address-option em{padding:4px 7px;background:#dcecf8;color:#356f9f;font-size:9px;font-style:normal;font-weight:800;text-transform:uppercase}.pp-checkout-address-option>b{display:block;margin-bottom:6px;font-size:13px}.pp-checkout-address-option>small{display:block;color:var(--color-text-light);font-size:12px;line-height:1.55}.pp-checkout-address-dialog>footer{padding:0 32px 26px;text-align:center}.pp-checkout-address-dialog>footer a{display:inline-flex;min-height:38px;padding:0 14px;align-items:center;border:1px solid var(--color-accent-dark);color:var(--color-accent-dark);font-size:11px;font-weight:700}.pp-checkout-address-dialog>footer a:hover{background:var(--color-accent-light)}
@media(max-width:980px){.pp-checkout-layout{grid-template-columns:1fr;gap:0}.pp-checkout-header{margin-bottom:28px}.pp-checkout-side{display:flex;flex-direction:column}.pp-checkout-summary-card{order:0}}
@media(max-width:620px){.pp-checkout-page{padding:24px 0 60px}.pp-checkout-card{padding:20px}.pp-checkout-card-header{align-items:flex-start;flex-wrap:wrap}.pp-checkout-card-header h2{min-width:calc(100% - 32px)}.pp-checkout-card-header>button,.pp-checkout-card-header>a{margin-left:30px}.pp-checkout-address-grid,.pp-checkout-billing-top{grid-template-columns:1fr}.pp-checkout-address-grid>div:last-child{margin-top:14px;padding:14px 0 0;border-top:1px solid var(--color-accent-soft);border-left:0}.pp-checkout-billing-top>div{padding:0 0 13px}.pp-checkout-billing-top>div:first-child{margin-bottom:13px;border-right:0;border-bottom:1px solid #e2e8ed}.pp-checkout-item>div strong{white-space:normal}.pp-checkout-address-options{grid-template-columns:1fr;padding:20px}.pp-checkout-address-dialog>header{padding:22px 20px 18px}.pp-checkout-address-dialog>footer{padding:0 20px 22px}}
/* Exact Accessore checkout geometry; only the inherited accent palette differs. */
.checkout-page{padding-top:65px;padding-bottom:var(--spacing-xxl)}.checkout-page>.container{padding-right:var(--spacing-md);padding-left:var(--spacing-md)}.checkout-page .pp-checkout-header{margin-bottom:var(--spacing-xl)}.checkout-page .pp-checkout-layout{grid-template-columns:1.4fr 1fr;gap:var(--spacing-xl)}.checkout-page .pp-checkout-card{padding:28px;margin-bottom:var(--spacing-lg);box-shadow:0 2px 12px rgba(0,0,0,.04)}.pp-checkout-payment.is-disabled{opacity:.5;cursor:not-allowed}.pp-checkout-payment.is-disabled:hover{border-color:var(--color-gray);background:#fff}.pp-checkout-payment.is-selected{border-color:var(--color-accent-dark);background:var(--color-accent-light)}
@media(max-width:992px){.checkout-page .pp-checkout-layout{grid-template-columns:1fr}}
@media(max-width:576px){.checkout-page{padding-bottom:52px}.checkout-page .pp-checkout-header{margin-bottom:24px}.checkout-page .pp-checkout-card{padding:20px 16px;margin-bottom:16px}.checkout-page .pp-checkout-card-header{margin-bottom:16px}.checkout-page .pp-checkout-address-display,.checkout-page .pp-checkout-billing-display{padding:15px}.checkout-page .pp-checkout-address-grid{grid-template-columns:1fr;gap:12px}.checkout-page .pp-checkout-address-grid>div:last-child{padding-top:12px;padding-left:0;border-top:1px solid var(--color-accent-soft);border-left:0}}
.checkout-page .pp-checkout-header h1{line-height:1.2}

/* Checkout address/profile dialogs share Accessore geometry; blue is inherited from the phone-shop palette. */
:is(.shipping-address-modal,.billing-address-modal){position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;visibility:hidden;opacity:0;transition:opacity .24s ease,visibility 0s linear .24s}.shipping-address-modal{z-index:1200}.billing-address-modal{z-index:1210}.shipping-address-modal.is-open,.billing-address-modal.is-open{visibility:visible;opacity:1;transition:opacity .24s ease}.shipping-address-modal-backdrop,.billing-address-modal-backdrop{position:absolute;inset:0;background:rgba(15,30,43,.52);backdrop-filter:blur(3px)}
.shipping-address-dialog{position:relative;display:flex;flex-direction:column;width:min(1020px,100%);min-height:510px;max-height:min(84vh,820px);overflow:auto;border:1px solid #263b4d;background:#f8fbfd;box-shadow:0 30px 92px rgba(10,31,48,.3);transform:translateY(18px) scale(.985);transition:transform .32s cubic-bezier(.2,.8,.2,1)}.shipping-address-modal.is-open .shipping-address-dialog,.billing-address-modal.is-open .billing-address-dialog{transform:translateY(0) scale(1)}
.shipping-address-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:29px 36px;border-bottom:1px solid #dce5ec;background:#fff}
.shipping-address-dialog-head > div { min-width:0; }.shipping-address-dialog-head span{display:block;margin-bottom:7px;color:var(--color-accent-dark);font-size:10px;font-weight:800;letter-spacing:.15em}.shipping-address-dialog-head h2{margin:0;font-size:27px;letter-spacing:-.055em}.shipping-address-close{flex:0 0 38px;padding:0;display:grid;width:38px;height:38px;place-items:center;border:1px solid #d5e0e8;background:#fff}.shipping-address-close:hover{color:var(--color-accent-dark);border-color:var(--color-accent);background:var(--color-accent-light)}
.shipping-address-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:30px 36px 0}.shipping-address-item{display:flex;flex-direction:column;min-height:242px;position:relative;overflow:hidden;border:1px solid #dce5ec;background:#fff;box-shadow:0 5px 16px rgba(10,31,48,.035);transition:border-color .22s,background .22s,box-shadow .22s,transform .22s}.shipping-address-item:hover{border-color:#9fc7e8;box-shadow:0 14px 28px rgba(10,60,100,.09);transform:translateY(-2px)}.shipping-address-item.is-selected{border-color:var(--color-accent-dark);background:#fbfdff;box-shadow:inset 0 4px 0 var(--color-accent-dark),0 12px 28px rgba(10,60,100,.08)}
.shipping-address-select{min-width:0;flex:1;padding:24px 25px 18px;border:0;background:transparent;color:var(--color-text);text-align:left}.shipping-address-select>span,.shipping-address-select>small{display:block}.shipping-address-item-top{display:flex!important;align-items:center;gap:8px;margin-bottom:7px}.shipping-address-item-top strong{font-size:15px;letter-spacing:-.025em}.shipping-address-item-top em{padding:4px 7px;color:#356f9f;background:#dcecf8;font-size:9px;font-style:normal;font-weight:800;letter-spacing:.065em;text-transform:uppercase}.shipping-address-recipient{margin-bottom:6px;font-size:13px;font-weight:700}.shipping-address-lines{color:#5f7180;font-size:13px;line-height:1.62}.shipping-address-select small{margin-top:11px;color:#71818e;font-size:11px}.shipping-address-select small b{color:#b8c5cf}
.shipping-address-item-actions{display:flex;align-items:center;gap:7px;min-height:54px;padding:9px 14px;position:relative;overflow:hidden;border-top:1px solid #e8eef3;background:#f9fbfd}.shipping-address-item-actions>button{display:inline-flex;align-items:center;justify-content:center;min-height:33px;padding:0 11px;border:1px solid #d4e2ed;background:#fff;color:#356f9f;font:750 10px Inter,sans-serif;white-space:nowrap}.shipping-address-item-actions>button:hover{background:var(--color-accent-light);border-color:#8dbbe0}.shipping-address-current{display:inline-flex;align-items:center;justify-content:center;min-height:33px;margin-left:auto;padding:0 11px;border:0;background:transparent;color:#356f9f;font:750 10px Inter,sans-serif;white-space:nowrap}.shipping-address-delete-trigger{margin-left:auto!important;color:#a75a52!important;border-color:#e8cbc7!important}.shipping-address-confirm{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:9px 14px;background:#fffdfc;color:#91534c;font-size:11px;font-weight:700;transform:translateX(100%);opacity:0;pointer-events:none;transition:transform .24s cubic-bezier(.2,.8,.2,1),opacity .18s}.shipping-address-item.is-confirming .shipping-address-confirm{transform:translateX(0);opacity:1;pointer-events:auto}.shipping-address-confirm button{padding:7px 9px;border:1px solid #d9b6b0;background:#fff;color:#9b514a;font:800 10px Inter,sans-serif}.shipping-address-confirm button:first-of-type{border-color:#9b514a;background:#9b514a;color:#fff}
.shipping-address-empty{display:grid;grid-column:1/-1;justify-items:center;gap:6px;padding:38px 20px;color:var(--color-text-light)}.shipping-address-add-trigger{display:flex;align-items:center;justify-content:center;width:max-content;margin:19px auto 25px;padding:0 17px;min-height:38px;gap:7px;border:1px solid #9fc3df;background:#fff;color:#356f9f;font:750 11px Inter,sans-serif}.shipping-address-add-trigger:hover{background:var(--color-accent-light);border-color:var(--color-accent-dark)}.shipping-address-add-trigger svg{width:15px;height:15px}.shipping-address-dialog.is-editing{min-height:0}.shipping-address-dialog.is-editing .shipping-address-list,.shipping-address-dialog.is-editing .shipping-address-add-trigger{display:none}
.shipping-address-form{display:none;margin:27px 36px 34px;padding:25px 28px 23px;border:1px solid #dce5ec;background:#fff;box-shadow:0 10px 26px rgba(10,31,48,.045)}.shipping-address-form.is-open{display:block}.shipping-address-form-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 21px;padding-bottom:16px;border-bottom:1px solid #dce5ec}.shipping-address-form-head strong{display:flex;align-items:center;gap:9px;font-size:18px;letter-spacing:-.04em}.shipping-address-form-head strong::before{content:'DATI DI CONSEGNA';color:var(--color-accent-dark);font-size:9px;font-weight:800;letter-spacing:.12em}.shipping-address-form-head button{min-height:29px;padding:0 10px;border:1px solid #dce5ec;background:#fff;color:#6f7e89;font:700 10px Inter,sans-serif}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.form-group{margin-bottom:16px}.shipping-address-form .form-group{margin-bottom:13px}.shipping-address-form .form-group label,.billing-address-form .form-group label{display:block;margin:0 0 6px;color:#657684;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.checkout-input{width:100%;height:44px;padding:0 14px;border:1px solid var(--color-gray);font:13px Inter,sans-serif;background:#fff;color:var(--color-text);outline:0}.shipping-address-form .checkout-input,.billing-address-form .checkout-input{min-height:40px;height:40px;border-color:#d7e2ea}.checkout-select{appearance:none;background:#fff;padding-right:36px}.shipping-address-default-choice{display:inline-flex!important;align-items:center;gap:8px;margin:4px 0 0!important;padding:9px 11px;border:1px solid #dce5ec;background:#fff;color:#536777!important;font-size:10px!important;font-weight:700!important;letter-spacing:0!important;text-transform:none!important}.shipping-address-default-choice input{accent-color:var(--color-accent-dark)}.shipping-address-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:19px;padding-top:17px;border-top:1px solid #dce5ec}
.billing-address-dialog{position:relative;width:min(760px,100%);max-height:min(84vh,740px);overflow:auto;border:1px solid #263b4d;background:#fff;box-shadow:0 30px 90px rgba(10,31,48,.28);transform:translateY(16px) scale(.987);transition:transform .3s cubic-bezier(.2,.8,.2,1)}.billing-address-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:26px 32px;border-bottom:1px solid #dce5ec;background:#fbfcfd}
.billing-address-dialog-head > div { min-width:0; }.billing-address-dialog-head span{display:block;margin-bottom:8px;color:var(--color-accent-dark);font-size:10px;font-weight:800;letter-spacing:.13em}.billing-address-dialog-head h2{margin:0;color:#253441;font-size:24px;letter-spacing:-.05em}.billing-address-dialog-head p{margin:8px 0 0;color:#6f7e89;font-size:12px;line-height:1.5}.billing-address-form{padding:26px 32px 28px}.billing-address-form .form-group{margin-bottom:15px}.billing-address-form .checkout-input[readonly]{color:#748390;background:#f7f9fb}.billing-address-form-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding-top:18px;border-top:1px solid #dce5ec}.billing-address-form-actions>span{display:flex;align-items:center;gap:7px;color:#657684;font-size:10px;font-weight:600}.billing-address-form-actions>span svg{width:13px;height:13px;color:var(--color-accent-dark)}.billing-address-form-actions>div{display:flex;align-items:center;gap:9px}.billing-address-form-actions .btn,.shipping-address-form-actions .btn{min-height:38px;padding:0 15px;font-size:11px}.address-modal-open,.billing-modal-open{overflow:hidden}
@media(max-width:576px){.shipping-address-modal,.billing-address-modal{align-items:flex-end;padding:8px}.shipping-address-dialog,.billing-address-dialog{width:100%;max-height:calc(100dvh - 16px)}.shipping-address-dialog{min-height:0}.shipping-address-dialog-head,.billing-address-dialog-head{padding:19.5px 18px}.shipping-address-dialog-head h2,.billing-address-dialog-head h2{font-size:22px}.shipping-address-list{grid-template-columns:1fr;gap:12px;padding:16px 18px 0}.shipping-address-item{min-height:0}.shipping-address-select{padding:18px 18px 14px}.shipping-address-form{margin:16px 18px 22px;padding:18px}.billing-address-form{padding:21px 20px 22px}.form-row-2,.form-row-3{grid-template-columns:1fr}.billing-address-form-actions{align-items:flex-end;flex-direction:column}.billing-address-form-actions>span{align-self:flex-start}.billing-address-form-actions>div{width:100%;justify-content:flex-end}}

/* Close/remove crosses: cross only, transparent hit area, no standing box. */
.shipping-address-close, .commerce-line-remove, .cart-drawer-close, .pp-modal .pp-modal-close {
  border-color: transparent !important;
  background: transparent;
}
.shipping-address-close:hover, .commerce-line-remove:hover, .cart-drawer-close:hover, .pp-modal .pp-modal-close:hover {
  background: rgba(16, 24, 32, .08);
  border-color: transparent !important;
}

.products-page-header { scroll-margin-top: calc(var(--header-height) + 16px); }
.breadcrumb-step { display: inline-flex; align-items: baseline; gap: 6px; max-width: 100%; min-width: 0; }
.breadcrumb-step > i, .breadcrumb-step > svg { flex: none; }
.breadcrumb-step .current { min-width: 0; overflow-wrap: anywhere; }
.custom-select-menu [role="option"]:focus-visible { outline: 2px solid var(--color-accent-dark); outline-offset: 2px; }

/* Keep the current disclosure visible until its close owner finishes. */
@keyframes storefront-disclosure-enter { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
@keyframes storefront-disclosure-exit { from { opacity:1; transform:translateY(0); } to { opacity:0; transform:translateY(4px); } }

.shipping-address-form.is-open { animation:storefront-disclosure-enter 220ms cubic-bezier(.2,.8,.2,1) both; }
.shipping-address-form.is-disclosure-closing { animation:storefront-disclosure-exit 200ms cubic-bezier(.4,0,.2,1) both; pointer-events:none; }
@media(max-width:768px) {
  .products-sidebar.open { animation:storefront-disclosure-enter 220ms cubic-bezier(.2,.8,.2,1) both; }
  .products-sidebar.open.is-disclosure-closing { animation:storefront-disclosure-exit 200ms cubic-bezier(.4,0,.2,1) both; pointer-events:none; }
}
@media(prefers-reduced-motion:reduce) { .shipping-address-form.is-open, .shipping-address-form.is-disclosure-closing, .products-sidebar.open, .products-sidebar.open.is-disclosure-closing { animation:none; } }
.cart-count[hidden] { display: none; }

/* Availability belongs to the cart row and uses the active site theme. */
.cart-page-product-copy .cart-stock-issue, .cart-drawer-item-main .cart-stock-issue, .checkout-item-info .cart-stock-issue, .pp-checkout-item .cart-stock-issue { display:block; margin-top:6px; color:var(--color-primary); font-weight:600; line-height:1.45; }
.cart-stock-status, [data-cart-stock-status] { margin:0; padding:10px 0; font-size:12px; line-height:1.5; }
.cart-stock-status:empty, [data-cart-stock-status]:empty { display:none; }
.cart-stock-retry { display:block; margin:0 0 12px; padding:6px 0; border:0; background:transparent; color:var(--color-primary); font:inherit; font-size:12px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.cart-page-checkout[aria-disabled="true"], [data-cart-drawer-checkout][aria-disabled="true"] { opacity:.55; cursor:not-allowed; }

/* User-selected catalogue results keep one short local veil. Cards and their
   containing grid keep their normal geometry and never acquire a transform. */
#productsGrid, #productsEmpty { position: relative; }
.catalog-result-veil { position: absolute; inset: 0; z-index: 2; background: var(--color-white, #fff); pointer-events: none; }

/* Selected storefront cart layout. Site tokens own the green/blue palette;
   cart pages share geometry, never authorization, prices or cart state. */
body.storefront-cart-page { background:#fff; }
.storefront-cart { --cart-rule:#d9e0e5; --cart-muted:#6c7886; --cart-ink:#10191c; padding:28px 0 56px; color:var(--cart-ink); }
.storefront-cart .container { max-width:1440px; padding-inline:40px; }
.storefront-cart .breadcrumb { display:flex; gap:10px; margin:0 0 20px; padding:0; color:var(--cart-muted); font-size:14px; }
.storefront-cart .breadcrumb a:hover { color:var(--color-accent-dark); }
.storefront-cart .cart-page-hero { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:0 0 24px; border:0; }
.storefront-cart .cart-page-eyebrow { display:block; color:var(--color-accent-dark); font-size:10px; font-weight:700; letter-spacing:.14em; }
.storefront-cart .cart-page-hero h1 { margin:12px 0 4px; color:var(--cart-ink); font-size:clamp(30px,3vw,40px); font-weight:700; line-height:1.1; letter-spacing:-.045em; }
.storefront-cart .cart-page-hero p { margin:0; color:var(--cart-muted); font-size:15px; font-weight:400; line-height:1.5; }
.storefront-cart .cart-page-count { display:flex; align-items:center; gap:10px; flex:0 0 auto; font-size:16px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.storefront-cart .cart-page-count svg { width:22px; height:22px; color:var(--color-accent-dark); stroke-width:1.6; }
.storefront-cart .cart-page-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.41fr); gap:0; align-items:stretch; border-top:1px solid var(--cart-rule); }
.storefront-cart .cart-page-ledger { min-width:0; padding:12px 20px 0 0; }
.storefront-cart .cart-ledger-table,.storefront-cart .cart-ledger-table thead,.storefront-cart .cart-ledger-table tbody { display:block; width:100%; border:0; background:transparent; }
.storefront-cart .cart-ledger-head,.storefront-cart .cart-ledger-row { display:grid; grid-template-columns:minmax(0,1fr) 112px 108px 34px; align-items:center; column-gap:20px; }
.storefront-cart .cart-ledger-head { min-height:38px; border-bottom:1px solid var(--cart-rule); color:var(--cart-muted); font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.storefront-cart .cart-ledger-head th { padding:0; text-align:left; font:inherit; }
.storefront-cart .cart-ledger-head>:nth-child(2) { text-align:center; }
.storefront-cart .cart-ledger-head>:nth-child(3) { text-align:right; }
.storefront-cart .cart-ledger-row { min-height:88px; margin:0; padding:12px 0; border:0; border-bottom:1px solid var(--cart-rule); background:transparent; box-shadow:none; }
.storefront-cart .cart-ledger-row>td { min-width:0; padding:0; border:0; vertical-align:middle; }
.storefront-cart .cart-page-product { display:flex; align-items:center; gap:18px; min-width:0; }
.storefront-cart .cart-page-product img { width:60px; height:60px; flex:0 0 60px; padding:5px; border:1px solid var(--cart-rule); background:#fff; object-fit:contain; box-shadow:none; }
.storefront-cart .cart-page-product-copy { display:grid; gap:4px; min-width:0; }
.storefront-cart .cart-page-product-copy strong { color:var(--cart-ink); font-size:14px; font-weight:600; line-height:1.4; overflow-wrap:anywhere; }
.storefront-cart .cart-page-product-copy small { color:var(--cart-muted); font-size:12px; font-weight:400; line-height:1.4; overflow-wrap:anywhere; }
.storefront-cart .cart-page-quantity { position:relative; justify-self:center; }
.storefront-cart .cart-page-stepper { display:grid; grid-template-columns:32px minmax(0,1fr) 32px; width:104px; height:34px; align-items:stretch; border:1px solid var(--cart-rule); }
.storefront-cart .cart-page-stepper button { display:grid; min-width:0; padding:0; place-items:center; border:0; background:#fff; color:var(--cart-ink); }
.storefront-cart .cart-page-stepper button svg { width:16px; height:16px; stroke-width:1.5; pointer-events:none; }
.storefront-cart .cart-page-stepper button:hover:not(:disabled) { background:var(--color-accent-light); }
.storefront-cart .cart-page-stepper button:disabled { opacity:.4; cursor:default; }
.storefront-cart .cart-page-stepper input { min-width:0; width:100%; height:100%; margin:0; padding:0; border:0; border-inline:1px solid var(--cart-rule); border-radius:0; background:#fff; color:var(--cart-ink); font:500 14px/1 var(--font-primary); font-variant-numeric:tabular-nums; text-align:center; appearance:textfield; }
.storefront-cart .cart-page-stepper input::-webkit-inner-spin-button,.storefront-cart .cart-page-stepper input::-webkit-outer-spin-button { appearance:none; margin:0; }
.storefront-cart .qty-limit-note { position:absolute; top:calc(100% + 4px); left:50%; width:150px; transform:translateX(-50%); color:var(--cart-muted); font-size:9px; line-height:1.2; text-align:center; }
.storefront-cart .cart-page-amount { justify-self:end; white-space:nowrap; font-size:15px; font-weight:600; font-variant-numeric:tabular-nums; }
.storefront-cart .cart-page-remove { display:grid; width:34px; height:34px; padding:0; place-items:center; border:0; background:transparent; color:var(--cart-ink); }
.storefront-cart .cart-page-remove svg { width:18px; height:18px; stroke-width:1.5; }
.storefront-cart .cart-page-remove:hover { color:#a13e35; }
.storefront-cart .cart-page-actions { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 0 0; }
.storefront-cart .cart-page-link { display:inline-flex; align-items:center; gap:9px; padding:4px 0; border:0; background:transparent; color:var(--color-accent-dark); font-size:13px; font-weight:400; line-height:1.4; }
.storefront-cart .cart-page-link svg { width:18px; height:18px; flex:0 0 auto; stroke-width:1.5; }
.storefront-cart a.cart-page-link span { text-decoration:underline; text-underline-offset:4px; }
.storefront-cart .cart-page-link:hover { color:var(--cart-ink); }
.storefront-cart .cart-page-summary { min-width:0; padding:12px 0 20px 20px; border-left:1px solid var(--cart-rule); background:transparent; }
.storefront-cart .cart-page-summary-title { display:flex; align-items:center; min-height:40px; margin:0 0 12px; padding:10px 16px; border:0; background:var(--color-accent-light); color:var(--color-accent-dark); font-size:12px; font-weight:650; letter-spacing:.12em; text-transform:uppercase; }
.storefront-cart .cart-page-summary-body { padding:0 16px; }
.storefront-cart .cart-page-subtotal { margin:0; }
.storefront-cart .cart-page-subtotal dt { color:var(--cart-muted); font-size:15px; font-weight:400; }
.storefront-cart .cart-page-subtotal dd { margin:0; color:var(--cart-ink); font-size:clamp(28px,2.3vw,32px); font-weight:700; line-height:1.25; letter-spacing:-.035em; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.storefront-cart .cart-page-summary-note { margin:14px 0 18px; color:var(--cart-muted); font-size:13px; line-height:1.6; }
.storefront-cart .cart-page-coupon { margin:0 0 16px; }
.storefront-cart .cart-page-coupon label { display:block; margin-bottom:6px; color:var(--cart-muted); font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.storefront-cart .cart-page-coupon-fields { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:stretch; }
.storefront-cart .cart-page-coupon-fields input { min-width:0; width:100%; height:36px; padding:0 0 0 2px; border:0; border-bottom:1px solid var(--cart-rule); border-radius:0; background:#fff; color:var(--cart-ink); font-size:13px; }
.storefront-cart .cart-page-coupon-fields input::placeholder { color:#8a96a3; }
.storefront-cart .cart-page-coupon-fields button { min-width:72px; height:36px; padding:0 12px; border:1px solid var(--color-accent-soft); background:#fff; color:var(--color-accent-dark); font-size:12px; font-weight:500; }
.storefront-cart .cart-page-coupon-fields button:hover:not(:disabled) { border-color:var(--color-accent-dark); background:var(--color-accent-light); }
.storefront-cart .cart-page-coupon-feedback { display:block; margin-top:8px; font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
.storefront-cart .cart-page-coupon-feedback:empty { display:none; }
.storefront-cart .cart-page-coupon-feedback.valid { color:var(--color-accent-dark); }
.storefront-cart .cart-page-coupon-feedback.invalid { color:#a13e35; }
.storefront-cart .cart-page-checkout { display:flex; width:100%; min-height:42px; margin:12px 0 0; padding:10px 16px; align-items:center; justify-content:center; gap:18px; border:1px solid var(--cart-checkout-fill,var(--color-accent)); background:var(--cart-checkout-fill,var(--color-accent)); color:#fff; font-size:14px; font-weight:600; text-decoration:none; transition:background .2s ease; }
.storefront-cart .cart-page-checkout svg { width:18px; height:18px; stroke-width:1.5; }
.storefront-cart .cart-page-checkout:hover { background:var(--cart-checkout-hover,var(--color-accent-dark)); }
.storefront-cart button:focus-visible,.storefront-cart a:focus-visible,.storefront-cart summary:focus-visible { outline:2px solid var(--color-accent-dark); outline-offset:3px; }
.storefront-cart [aria-busy="true"] { cursor:progress; }
.storefront-cart .cart-page-breakdown { margin-top:18px; color:var(--cart-muted); font-size:12px; }
.storefront-cart .cart-page-breakdown summary { width:fit-content; cursor:pointer; }
.storefront-cart .cart-page-breakdown .cart-total-row { display:flex; justify-content:space-between; gap:12px; margin-top:8px; font-size:12px; }
.storefront-cart .cart-page-breakdown .cart-total-grand { padding-top:10px; border-top:1px solid var(--cart-rule); font-weight:600; }
.storefront-cart .cart-page-discount { display:flex; justify-content:space-between; gap:12px; margin:12px 0; color:var(--color-accent-dark); font-size:13px; }
.storefront-cart .cart-page-discount[hidden] { display:none; }
.storefront-cart .sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.storefront-cart .commerce-shell { margin:0; border:0; background:transparent; }
.storefront-cart .commerce-cart-flash { position:fixed; z-index:1100; right:24px; bottom:24px; max-width:calc(100vw - 48px); margin:0; }
.storefront-cart .commerce-cart-flash:empty { display:none; }
.storefront-cart[data-site="phone-parts"] { --cart-checkout-fill:#102129; --cart-checkout-hover:#233a45; --color-accent-dark:#0059b8; --color-accent-soft:#c5d7e8; --color-accent-light:#eef5fb; --cart-rule:#d5e1ed; --cart-muted:#6c7e96; }
.storefront-cart[data-site="phone-parts"] .cart-page-count svg { color:var(--cart-ink); }
.storefront-cart[data-site="phone-parts"] .cart-page-coupon-fields button { color:var(--cart-ink); }
@media(max-width:1100px) {
  .storefront-cart .container { padding-inline:28px; }
  .storefront-cart .cart-page-layout { grid-template-columns:minmax(0,1fr) 290px; }
  .storefront-cart .cart-ledger-head,.storefront-cart .cart-ledger-row { grid-template-columns:minmax(0,1fr) 110px 88px 30px; gap:14px; }
  .storefront-cart .cart-page-stepper { grid-template-columns:34px minmax(0,1fr) 34px; width:104px; height:34px; }
  .storefront-cart .cart-page-product { gap:14px; }
  .storefront-cart .cart-page-product img { width:60px; height:60px; flex-basis:60px; }
  .storefront-cart .cart-page-amount { font-size:15px; }
}
@media(max-width:850px) {
  .storefront-cart .cart-page-layout { grid-template-columns:1fr; }
  .storefront-cart .cart-page-ledger { padding:10px 0 24px; }
  .storefront-cart .cart-page-summary { padding:18px 0 0; border-left:0; border-top:1px solid var(--cart-rule); }
  .storefront-cart .cart-page-summary-body { padding:0 16px 20px; }
}
@media(max-width:600px) {
  .storefront-cart { padding:24px 0 48px; }
  .storefront-cart .container { padding-inline:20px; }
  .storefront-cart .breadcrumb { margin-bottom:20px; font-size:12px; }
  .storefront-cart .cart-page-hero { display:grid; gap:14px; padding-bottom:22px; }
  .storefront-cart .cart-page-hero h1 { margin-top:9px; font-size:30px; }
  .storefront-cart .cart-page-hero p { font-size:14px; }
  .storefront-cart .cart-page-count { font-size:14px; }
  .storefront-cart .cart-page-count svg { width:20px; height:20px; }
  .storefront-cart .cart-ledger-head { grid-template-columns:1fr; min-height:38px; }
  .storefront-cart .cart-ledger-head>:not(:first-child) { display:none; }
  .storefront-cart .cart-ledger-row { grid-template-columns:minmax(0,1fr) 34px; grid-template-areas:"product remove" "quantity amount"; row-gap:14px; min-height:0; padding:18px 0; }
  .storefront-cart .cart-page-product { grid-area:product; gap:12px; }
  .storefront-cart .cart-page-product img { width:58px; height:58px; flex-basis:58px; }
  .storefront-cart .cart-page-product-copy strong { font-size:13px; }
  .storefront-cart .cart-page-product-copy small { font-size:11px; }
  .storefront-cart .cart-page-quantity { grid-area:quantity; justify-self:start; padding-left:70px; }
  .storefront-cart .cart-ledger-row>td.cart-page-quantity { padding-left:70px; }
  .storefront-cart .cart-page-stepper { grid-template-columns:32px minmax(0,1fr) 32px; width:104px; height:36px; }
  .storefront-cart .cart-page-amount { grid-area:amount; justify-self:end; font-size:15px; }
  .storefront-cart .cart-page-remove-cell,.storefront-cart .cart-page-remove { grid-area:remove; }
  .storefront-cart .qty-limit-note { position:static; display:block; width:auto; margin-top:4px; transform:none; text-align:left; }
  .storefront-cart .cart-page-actions { gap:14px; flex-wrap:wrap; }
  .storefront-cart .cart-page-link { font-size:12px; }
  .storefront-cart .cart-page-subtotal dd { font-size:32px; }
  .storefront-cart .cart-page-checkout { min-height:44px; font-size:14px; }
}
