diff --git a/scripts/build-icons.mjs b/scripts/build-icons.mjs
index 3a53209..91cbad0 100644
--- a/scripts/build-icons.mjs
+++ b/scripts/build-icons.mjs
@@ -55,6 +55,14 @@ const STROKE_ICONS = {
food: '',
bed: '',
peak: '',
+ table:
+ '',
+ hotspring:
+ '',
+ fuel:
+ '',
+ cart:
+ '',
people:
'',
};
@@ -90,6 +98,10 @@ const MATRIX = {
food: ["brandDeep", "accent", "white", "brand"],
bed: ["accent", "brand", "white", "brandDeep"],
peak: ["accent", "brand", "white"],
+ table: ["white", "accent", "brandDeep"],
+ hotspring: ["white", "accent", "brandDeep"],
+ fuel: ["white", "accent", "brandDeep"],
+ cart: ["white", "accent", "brandDeep"],
people: ["ink3", "brand", "white", "brandDeep"],
wx: ["white"],
};
diff --git a/src/components/BenefitCard/index.vue b/src/components/BenefitCard/index.vue
index ab507c7..35b3d02 100644
--- a/src/components/BenefitCard/index.vue
+++ b/src/components/BenefitCard/index.vue
@@ -4,10 +4,11 @@
* 使用位置:权益中心 / 我的权益 / 详情页「到店权益」
* 四行固定顺序:类型 / 价格 / 规格·适用 / 有效期·名额
* 价格两形态互斥:金额型 = 优惠价大字 + 划线原价 + 右端折扣标;折扣型(price.rate)= 折扣大字。
- * ①行=类型短名(2 字,`BENEFIT_TYPE_SHORT`)+ 右端商家名胶囊(`merchant_name`,超 8 字截断),详情页不加胶囊。
+ * ①行=类型名(权益 `type_label` → 商家 `type_label` → 板块 2 字短名)+ 类型图标(`type_icon` → `type_label` 反查 → 板块图标)
+ * + 右端商家名胶囊(`merchant_name`,超 8 字截断),详情页不加胶囊。
*/
import { computed } from "vue";
-import { BENEFIT_STATUS, BENEFIT_TYPE_ICON, BENEFIT_TYPE_SHORT } from "@/constant";
+import { BENEFIT_ICON_ALIAS, BENEFIT_LABEL_ICON, BENEFIT_STATUS, BENEFIT_TYPE_ICON, BENEFIT_TYPE_SHORT } from "@/constant";
import { discountLabel, dotDate, rateText, yuanText } from "@/utils";
import { goDetail } from "@/utils/nav";
@@ -15,6 +16,8 @@ const props = defineProps({
benefit: { type: Object, required: true },
/** center 权益中心 | mine 我的权益 | detail 详情页到店权益 */
mode: { type: String, default: "center" },
+ /** 所属商家的 type_label(详情页由 merchant 传入,优先于板块短名) */
+ typeLabel: { type: String, default: "" },
});
const emit = defineEmits(["action", "tap"]);
@@ -29,14 +32,39 @@ const isClaimed = computed(() => status.value === BENEFIT_STATUS.CLAIMED);
/** 权益类型键:详情页走接口的 section_key,权益中心仍是本地 type,两者取其一 */
const typeKey = computed(() => b.value.section_key || b.value.type || "");
-const typeLabel = computed(() => BENEFIT_TYPE_SHORT[typeKey.value] || "权益");
-const typeIcon = computed(() => BENEFIT_TYPE_ICON[typeKey.value] || "gift");
+/**
+ * ①行类型名:权益自带 type_label 最优先 —— 同一商家下权益类型可能不同
+ * (如云从朵花既有「住宿」又有「温泉」),不能只跟商家的分类走;
+ * 其次回落商家 type_label(详情页传入)、板块 2 字短名。
+ */
+const typeLabel = computed(() => {
+ const own = String(b.value.type_label || "").trim();
+ if (own) return own;
+ const fromMerchant = String(props.typeLabel || "").trim();
+ return fromMerchant || BENEFIT_TYPE_SHORT[typeKey.value] || "权益";
+});
+/** ①行图标:type_icon → 权益 type_label → 商家 type_label → 板块兜底 */
+const typeIcon = computed(() => {
+ const byIcon = BENEFIT_ICON_ALIAS[String(b.value.type_icon || "").trim().toLowerCase()];
+ if (byIcon) return byIcon;
+ for (const label of [b.value.type_label, props.typeLabel]) {
+ const hit = BENEFIT_LABEL_ICON[String(label || "").trim()];
+ if (hit) return hit;
+ }
+ return BENEFIT_TYPE_ICON[typeKey.value] || "gift";
+});
const deal = computed(() => yuanText(b.value.price?.deal));
const original = computed(() => yuanText(b.value.price?.original));
const pct = computed(() => discountLabel(b.value.price?.deal, b.value.price?.original));
const rate = computed(() => rateText(b.value.price));
const isRate = computed(() => !!rate.value);
+/** 折扣型文案偏长(如「每升优惠0.20元」)时降字号,避免溢出信息区 */
+const rateCls = computed(() =>
+ rate.value.length > 5
+ ? "text-[17px] font-bold tracking-[-0.3px]"
+ : "text-display font-extrabold tracking-[-1px]"
+);
const spec = computed(() => b.value.price?.spec || "");
const hasPrice = computed(() => isRate.value || !!deal.value);
@@ -147,7 +175,7 @@ const onTap = () => {
-
+ {{ rate }}
¥
diff --git a/src/constant/index.js b/src/constant/index.js
index fc13a5f..aa04235 100644
--- a/src/constant/index.js
+++ b/src/constant/index.js
@@ -56,7 +56,7 @@ export const BENEFIT_TYPE_SHORT = {
general: "通用",
};
-/** 权益类型 → 卡片类型行图标 */
+/** 权益类型 → 卡片类型行图标(板块级兜底) */
export const BENEFIT_TYPE_ICON = {
scenic: "peak",
stay: "bed",
@@ -65,6 +65,73 @@ export const BENEFIT_TYPE_ICON = {
general: "gift",
};
+/**
+ * 权益 `type_label`(中文,接口字段)→ 卡片类型行图标
+ * 同一商家下权益类型可能不同(如云从朵花既有「住宿」又有「温泉」),故按权益自己的标签取图标。
+ */
+export const BENEFIT_LABEL_ICON = {
+ 住宿: "bed",
+ 美食: "food",
+ 餐饮: "food",
+ 宴席: "table",
+ 景区: "peak",
+ 温泉: "hotspring",
+ 加油: "fuel",
+ 商超: "cart",
+ 特产: "ticket",
+ 通用: "gift",
+};
+
+/** 权益 `type_icon`(英文,接口字段)→ 本地图标名,兼容常见写法 */
+export const BENEFIT_ICON_ALIAS = {
+ bed: "bed",
+ hotel: "bed",
+ room: "bed",
+ stay: "bed",
+ sleep: "bed",
+ lodging: "bed",
+ food: "food",
+ meal: "food",
+ restaurant: "food",
+ dining: "food",
+ eat: "food",
+ table: "table",
+ banquet: "table",
+ feast: "table",
+ dinner: "table",
+ peak: "peak",
+ scenic: "peak",
+ mountain: "peak",
+ view: "peak",
+ spot: "peak",
+ hotspring: "hotspring",
+ hot_spring: "hotspring",
+ "hot-spring": "hotspring",
+ "hot spring": "hotspring",
+ spring: "hotspring",
+ spa: "hotspring",
+ onsen: "hotspring",
+ fuel: "fuel",
+ gas: "fuel",
+ gas_station: "fuel",
+ "gas-station": "fuel",
+ oil: "fuel",
+ petrol: "fuel",
+ gasoline: "fuel",
+ station: "fuel",
+ cart: "cart",
+ shop: "cart",
+ store: "cart",
+ market: "cart",
+ supermarket: "cart",
+ super_market: "cart",
+ mall: "cart",
+ shopping: "cart",
+ ticket: "ticket",
+ specialty: "ticket",
+ gift: "gift",
+};
+
/** 我的权益状态子分段(全部 / 可使用 / 已失效) */
export const BENEFIT_SUB_TABS = [
{ key: "all", label: "全部" },
@@ -72,7 +139,7 @@ export const BENEFIT_SUB_TABS = [
{ key: "invalid", label: "已失效" },
];
-/** 板块 key → 详情页介绍卡标题(接口不提供,前端按 section_key 派生) */
+/** 板块 key → 详情页介绍卡标题(type_label 缺失时的兜底;正常取 type_label + 介绍) */
export const SECTION_INTRO_TITLE = {
scenic: "景区介绍",
stay: "酒店介绍",
diff --git a/src/pages-sub/detail/index.vue b/src/pages-sub/detail/index.vue
index 4c05447..b166574 100644
--- a/src/pages-sub/detail/index.vue
+++ b/src/pages-sub/detail/index.vue
@@ -4,7 +4,7 @@
* 数据来自 GET /v1/merchants/:id/detail —— 一次返回「商家 + 到店权益 + 同类推荐」。
* 区块顺序:
* 头图 swiper → 白面板【名称 + 类型徽标 / 营业时间 / 地址条(内嵌复制钮)】
- * → 介绍卡(标题按 section_key 命名)→ 联系方式 → 到店权益(品牌染色卡)
+ * → 介绍卡(标题取 type_label + 介绍)→ 联系方式 → 到店权益(品牌染色卡)
* → 附近同类推荐 → 底部留白
* 不展示:tags 标签、设施服务、地图导航(数据无经纬度)。
*/
@@ -39,7 +39,11 @@ const images = computed(() => {
);
});
const badge = computed(() => merchant.value?.type_label || "");
-const introTitle = computed(() => SECTION_INTRO_TITLE[merchant.value?.section_key] || "介绍");
+const introTitle = computed(() => {
+ const type = String(merchant.value?.type_label || "").trim();
+ if (type) return `${type}介绍`;
+ return SECTION_INTRO_TITLE[merchant.value?.section_key] || "介绍";
+});
const addressText = computed(() => merchant.value?.address || "");
const phone = computed(() => merchant.value?.contact_phone || "");
const businessHours = computed(() => merchant.value?.business_hours || "");
@@ -190,7 +194,7 @@ onShareAppMessage(() => ({
-
+
{{ introTitle }}
@@ -222,7 +226,7 @@ onShareAppMessage(() => ({
到店权益
+ :type-label="merchant.type_label" @action="onClaimBenefit" />
({
@click="goRelated(rec)">
-
- {{ rec.name }}
+
+
+
+ {{ rec.name }}
+
diff --git a/src/styles/icons.scss b/src/styles/icons.scss
index 80271d0..16a10e1 100644
--- a/src/styles/icons.scss
+++ b/src/styles/icons.scss
@@ -72,6 +72,18 @@
.ai-peak.t-accent{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjRkY4QTNEJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSJNMi44IDE5LjIgOSA4LjRsMy42IDYuMiAyLjItMy40IDYuNCA4eiIvPjwvc3ZnPg==")}
.ai-peak.t-brand{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjMDBCNTc4JyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSJNMi44IDE5LjIgOSA4LjRsMy42IDYuMiAyLjItMy40IDYuNCA4eiIvPjwvc3ZnPg==")}
.ai-peak.t-white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjRkZGRkZGJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSJNMi44IDE5LjIgOSA4LjRsMy42IDYuMiAyLjItMy40IDYuNCA4eiIvPjwvc3ZnPg==")}
+.ai-table.t-white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjRkZGRkZGJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48ZWxsaXBzZSBjeD0iMTIiIGN5PSI4LjQiIHJ4PSI4LjYiIHJ5PSIzLjIiLz48cGF0aCBkPSJNMTIgMTEuNnY4Ii8+PHBhdGggZD0iTTguNiAxOS42aDYuOCIvPjwvc3ZnPg==")}
+.ai-table.t-accent{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjRkY4QTNEJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48ZWxsaXBzZSBjeD0iMTIiIGN5PSI4LjQiIHJ4PSI4LjYiIHJ5PSIzLjIiLz48cGF0aCBkPSJNMTIgMTEuNnY4Ii8+PHBhdGggZD0iTTguNiAxOS42aDYuOCIvPjwvc3ZnPg==")}
+.ai-table.t-brandDeep{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjMDA5QTY3JyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48ZWxsaXBzZSBjeD0iMTIiIGN5PSI4LjQiIHJ4PSI4LjYiIHJ5PSIzLjIiLz48cGF0aCBkPSJNMTIgMTEuNnY4Ii8+PHBhdGggZD0iTTguNiAxOS42aDYuOCIvPjwvc3ZnPg==")}
+.ai-hotspring.t-white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjRkZGRkZGJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSJNMy40IDE1LjJjMS43IDAgMS43IDEuNSAzLjQgMS41czEuNy0xLjUgMy40LTEuNSAxLjcgMS41IDMuNCAxLjUgMS43LTEuNSAzLjQtMS41IDEuNyAxLjUgMy40IDEuNSIvPjxwYXRoIGQ9Ik0zLjQgMTkuM2MxLjcgMCAxLjcgMS41IDMuNCAxLjVzMS43LTEuNSAzLjQtMS41IDEuNyAxLjUgMy40IDEuNSAxLjctMS41IDMuNC0xLjUgMS43IDEuNSAzLjQgMS41Ii8+PHBhdGggZD0iTTggMTEuOGMtMS41LTEuNyAxLTIuNy4yLTQuNiIvPjxwYXRoIGQ9Ik0xMiAxMS44Yy0xLjUtMS43IDEtMi43LjItNC42Ii8+PHBhdGggZD0iTTE2IDExLjhjLTEuNS0xLjcgMS0yLjcuMi00LjYiLz48L3N2Zz4=")}
+.ai-hotspring.t-accent{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjRkY4QTNEJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSJNMy40IDE1LjJjMS43IDAgMS43IDEuNSAzLjQgMS41czEuNy0xLjUgMy40LTEuNSAxLjcgMS41IDMuNCAxLjUgMS43LTEuNSAzLjQtMS41IDEuNyAxLjUgMy40IDEuNSIvPjxwYXRoIGQ9Ik0zLjQgMTkuM2MxLjcgMCAxLjcgMS41IDMuNCAxLjVzMS43LTEuNSAzLjQtMS41IDEuNyAxLjUgMy40IDEuNSAxLjctMS41IDMuNC0xLjUgMS43IDEuNSAzLjQgMS41Ii8+PHBhdGggZD0iTTggMTEuOGMtMS41LTEuNyAxLTIuNy4yLTQuNiIvPjxwYXRoIGQ9Ik0xMiAxMS44Yy0xLjUtMS43IDEtMi43LjItNC42Ii8+PHBhdGggZD0iTTE2IDExLjhjLTEuNS0xLjcgMS0yLjcuMi00LjYiLz48L3N2Zz4=")}
+.ai-hotspring.t-brandDeep{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjMDA5QTY3JyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSJNMy40IDE1LjJjMS43IDAgMS43IDEuNSAzLjQgMS41czEuNy0xLjUgMy40LTEuNSAxLjcgMS41IDMuNCAxLjUgMS43LTEuNSAzLjQtMS41IDEuNyAxLjUgMy40IDEuNSIvPjxwYXRoIGQ9Ik0zLjQgMTkuM2MxLjcgMCAxLjcgMS41IDMuNCAxLjVzMS43LTEuNSAzLjQtMS41IDEuNyAxLjUgMy40IDEuNSAxLjctMS41IDMuNC0xLjUgMS43IDEuNSAzLjQgMS41Ii8+PHBhdGggZD0iTTggMTEuOGMtMS41LTEuNyAxLTIuNy4yLTQuNiIvPjxwYXRoIGQ9Ik0xMiAxMS44Yy0xLjUtMS43IDEtMi43LjItNC42Ii8+PHBhdGggZD0iTTE2IDExLjhjLTEuNS0xLjcgMS0yLjcuMi00LjYiLz48L3N2Zz4=")}
+.ai-fuel.t-white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjRkZGRkZGJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cmVjdCB4PSIzLjIiIHk9IjMuNiIgd2lkdGg9IjkuOCIgaGVpZ2h0PSIxNi44IiByeD0iMS43Ii8+PHJlY3QgeD0iNS44IiB5PSI2LjQiIHdpZHRoPSI0LjYiIGhlaWdodD0iNCIgcng9IjEiLz48cGF0aCBkPSJNMTMgMTBoMi40YTIgMiAwIDAgMSAyIDJ2Ni40YTEuNyAxLjcgMCAwIDAgMy40IDBWMTIiLz48L3N2Zz4=")}
+.ai-fuel.t-accent{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjRkY4QTNEJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cmVjdCB4PSIzLjIiIHk9IjMuNiIgd2lkdGg9IjkuOCIgaGVpZ2h0PSIxNi44IiByeD0iMS43Ii8+PHJlY3QgeD0iNS44IiB5PSI2LjQiIHdpZHRoPSI0LjYiIGhlaWdodD0iNCIgcng9IjEiLz48cGF0aCBkPSJNMTMgMTBoMi40YTIgMiAwIDAgMSAyIDJ2Ni40YTEuNyAxLjcgMCAwIDAgMy40IDBWMTIiLz48L3N2Zz4=")}
+.ai-fuel.t-brandDeep{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjMDA5QTY3JyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cmVjdCB4PSIzLjIiIHk9IjMuNiIgd2lkdGg9IjkuOCIgaGVpZ2h0PSIxNi44IiByeD0iMS43Ii8+PHJlY3QgeD0iNS44IiB5PSI2LjQiIHdpZHRoPSI0LjYiIGhlaWdodD0iNCIgcng9IjEiLz48cGF0aCBkPSJNMTMgMTBoMi40YTIgMiAwIDAgMSAyIDJ2Ni40YTEuNyAxLjcgMCAwIDAgMy40IDBWMTIiLz48L3N2Zz4=")}
+.ai-cart.t-white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjRkZGRkZGJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSJNMy4yIDQuNmgyLjRsMi43IDkuOWg5LjVsMi4xLTcuM0g2LjUiLz48Y2lyY2xlIGN4PSI5LjYiIGN5PSIxOS4yIiByPSIxLjYiLz48Y2lyY2xlIGN4PSIxNyIgY3k9IjE5LjIiIHI9IjEuNiIvPjwvc3ZnPg==")}
+.ai-cart.t-accent{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjRkY4QTNEJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSJNMy4yIDQuNmgyLjRsMi43IDkuOWg5LjVsMi4xLTcuM0g2LjUiLz48Y2lyY2xlIGN4PSI5LjYiIGN5PSIxOS4yIiByPSIxLjYiLz48Y2lyY2xlIGN4PSIxNyIgY3k9IjE5LjIiIHI9IjEuNiIvPjwvc3ZnPg==")}
+.ai-cart.t-brandDeep{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjMDA5QTY3JyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSJNMy4yIDQuNmgyLjRsMi43IDkuOWg5LjVsMi4xLTcuM0g2LjUiLz48Y2lyY2xlIGN4PSI5LjYiIGN5PSIxOS4yIiByPSIxLjYiLz48Y2lyY2xlIGN4PSIxNyIgY3k9IjE5LjIiIHI9IjEuNiIvPjwvc3ZnPg==")}
.ai-people.t-ink3{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjOUNBM0FGJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48Y2lyY2xlIGN4PSI5LjIiIGN5PSI4LjQiIHI9IjMuMiIvPjxwYXRoIGQ9Ik0zLjYgMTkuNGE1LjYgNS42IDAgMCAxIDExLjIgMCIvPjxwYXRoIGQ9Ik0xNS44IDUuNmEzLjIgMy4yIDAgMCAxIDAgNiIvPjxwYXRoIGQ9Ik0xNy40IDE0LjhhNS42IDUuNiAwIDAgMSAzIDQuNiIvPjwvc3ZnPg==")}
.ai-people.t-brand{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjMDBCNTc4JyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48Y2lyY2xlIGN4PSI5LjIiIGN5PSI4LjQiIHI9IjMuMiIvPjxwYXRoIGQ9Ik0zLjYgMTkuNGE1LjYgNS42IDAgMCAxIDExLjIgMCIvPjxwYXRoIGQ9Ik0xNS44IDUuNmEzLjIgMy4yIDAgMCAxIDAgNiIvPjxwYXRoIGQ9Ik0xNy40IDE0LjhhNS42IDUuNiAwIDAgMSAzIDQuNiIvPjwvc3ZnPg==")}
.ai-people.t-white{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjRkZGRkZGJyBzdHJva2Utd2lkdGg9JzEuOScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48Y2lyY2xlIGN4PSI5LjIiIGN5PSI4LjQiIHI9IjMuMiIvPjxwYXRoIGQ9Ik0zLjYgMTkuNGE1LjYgNS42IDAgMCAxIDExLjIgMCIvPjxwYXRoIGQ9Ik0xNS44IDUuNmEzLjIgMy4yIDAgMCAxIDAgNiIvPjxwYXRoIGQ9Ik0xNy40IDE0LjhhNS42IDUuNiAwIDAgMSAzIDQuNiIvPjwvc3ZnPg==")}