/* ==========================================================================
   smartprix theme · utilities.css
   原站工具类（index.3b4ef80b.css）+ 主题补充；最后加载，可安全覆盖
   ========================================================================== */

/* ---------- 文本截断 ---------- */
.clamp-1,.clamp-2,.clamp-3,.clamp-4,.clamp-5{display:-webkit-box!important;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}
.clamp-1{-webkit-line-clamp:1;max-height:1.5em}
.clamp-2{-webkit-line-clamp:2;max-height:3em}
.clamp-3{-webkit-line-clamp:3;max-height:4.5em}
.clamp-4{-webkit-line-clamp:4;max-height:6em}
.clamp-5{-webkit-line-clamp:5;max-height:7.5em}
.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- 对齐 / 布局 ---------- */
.c-t{text-align:center}
.c-h{display:flex;justify-content:center}
.c-v{display:flex;align-items:center}
.c-b{display:flex;align-items:center;justify-content:center}
.h-100{display:flex;flex-direction:column;flex:1;height:100%}
.wh-100{display:flex;flex-direction:column;flex:1;width:100%;height:100%}
.flex{display:flex}
.flex-1{flex:1;min-width:0}
.flex-col{display:flex;flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.between{display:flex;align-items:center;justify-content:space-between}
.grid{display:grid}
.rel{position:relative}
.scroll{overflow:auto;-webkit-overflow-scrolling:touch}
.scroll::-webkit-scrollbar{display:none}

/* ---------- 颜色 / 背景 ---------- */
/* 注：.dim 已移入 components.css（原站 index.css 中 .dim 在 .sm-btn 之前，
   放在最后加载的 utilities.css 会反过来压掉 .sm-btn 的白色文字）。
   原站也没有全局 .price{color} 规则，价格色由 .sm-product>.price 等自带。 */
.white-bg{background:#fff}
.muted{color:var(--color-text-semi-light)}
.link{color:var(--color-link)}
.bold{font-weight:700}
.medium{font-weight:500}
.upper{text-transform:uppercase}
.nowrap{white-space:nowrap}

/* ---------- 间距 ---------- */
.m-0.m-0{margin:0}
.mt-0{margin-top:0}
.mb-0{margin-bottom:0}
.p-0{padding:0}
.p-h{padding-left:var(--ph);padding-right:var(--ph)}
.p-v{padding-top:var(--pv);padding-bottom:var(--pv)}

/* ---------- rank 色（Spec Score 五档） ---------- */
.rank-0{color:var(--sp-rank-0)!important}
.rank-1{color:var(--color-rank1)!important}
.rank-2{color:var(--color-rank2)!important}
.rank-3{color:var(--color-rank3)!important}
.rank-4{color:var(--color-rank4)!important}
.rank-5{color:var(--color-rank5)!important}
.rank-0-bg{background:var(--sp-rank-0)!important;color:#fff}
.rank-1-bg{background:var(--color-rank1)!important;color:#fff}
.rank-2-bg,.success-bg{background:var(--color-rank2)!important;color:#fff}
.rank-3-bg,.warning-bg{background:var(--color-rank3)!important;color:#fff}
.rank-4-bg,.error-bg{background:var(--color-rank4)!important;color:#fff}
.rank-5-bg{background:var(--color-rank5)!important;color:#fff}

/* ---------- 可见性 ---------- */
.screen-reader-text,.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.screen-reader-text:focus{position:static!important;width:auto;height:auto;clip:auto;clip-path:none;margin:0;padding:8px 12px;background:#fff;color:var(--color-link);z-index:var(--z-toast)}
@media (max-width:750px){
  .only-desktop{display:none!important}
}
@media (min-width:750px){
  .only-mobile{display:none!important}
}
@media (min-width:750px) and (max-width:960px){
  .no-tablet{display:none!important}
}

/* ---------- 美国站（.sm-smc-us）差异 ---------- */
.sm-smc-us .sm-pdrop{display:none!important}
