/* VIVI Brand Archive - Search Results Layout v0.9.81
   外框寬度對齊首頁 94小確幸區塊：var(--vivi-container) / 1180px。
*/
.vivi-lite-brand-archive-page{
	background:var(--vivi-color-bg);
	color:var(--vivi-color-text);
}
.vivi-brand-archive-main{
	width:min(100% - 128px,var(--vivi-container));
	margin:0 auto;
	padding:38px 0 76px;
	font-family:var(--vivi-font-body);
}
.vivi-brand-archive-hero{
	display:grid;
	grid-template-columns:minmax(0,1fr) auto;
	gap:22px;
	align-items:end;
	padding:24px 0 18px;
	border-bottom:1px solid var(--vivi-color-border);
}
.vivi-brand-archive-copy .vivi-kicker{
	margin:0 0 10px;
	color:var(--vivi-color-red);
	font-size:var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-heavy);
	letter-spacing:.08em;
	text-transform:uppercase;
}
.vivi-brand-archive-copy .vivi-brand-archive-title,
.vivi-brand-archive-copy h1{
	margin:0 0 10px;
	font-family:var(--vivi-font-heading);
	font-size:var(--vivi-fs-h2);
	line-height:var(--vivi-lh-heading);
	letter-spacing:.04em;
	font-weight: var(--vivi-fw-bold);
	color:var(--vivi-color-text);
}
.vivi-brand-archive-copy p:not(.vivi-kicker){
	max-width:720px;
	margin:0;
	color:var(--vivi-color-text-muted);
	font-size:var(--vivi-fs-small);
	font-weight: var(--vivi-fw-semibold);
	line-height:var(--vivi-lh-body);
}
.vivi-brand-archive-stats{
	justify-self:end;
	min-width:150px;
	padding:10px 0;
	text-align:right;
	color:var(--vivi-color-text-muted);
}
.vivi-brand-archive-stats strong{
	display:block;
	color:var(--vivi-color-text);
	font-size:var(--vivi-fs-h3);
	line-height:var(--vivi-lh-heading);
	font-weight: var(--vivi-fw-bold);
}
.vivi-brand-archive-stats span{
	display:block;
	margin-top:5px;
	font-size:var(--vivi-fs-xs);
	color:var(--vivi-color-text-muted);
	font-weight: var(--vivi-fw-semibold);
}
.vivi-brand-filter-panel{
	margin:20px 0 10px;
	padding:var(--vivi-space-md);
	background:var(--vivi-color-card);
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius-md);
	box-shadow:var(--vivi-shadow-soft);
}
.vivi-brand-filter-form{
	display:grid;
	grid-template-columns:1fr;
	gap:0;
}
.vivi-brand-filter-form .vivi-ds-form-field{
	gap:0;
}
.vivi-brand-filter-top{
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	align-items:end;
	margin-bottom:12px;
}
.vivi-brand-filter-form .vivi-input,
.vivi-brand-filter-form .vivi-select{
	width:100%;
	min-height:44px;
	border-radius:var(--vivi-radius-sm);
}
.vivi-brand-filter-keyword{
	flex:1 1 320px;
	min-width:220px;
}
.vivi-brand-filter-city,
.vivi-brand-location-select-field{
	flex:0 0 190px;
	min-width:170px;
}
.vivi-brand-category-row{
	position:relative;
	min-width:0;
	padding:12px 0;
}
.vivi-brand-category-tags{
	display:flex;
	flex-wrap:nowrap;
	gap:10px;
	align-items:center;
	width:100%;
	min-width:0;
	overflow:hidden;
}
.vivi-brand-category-subrow{
	margin-top:0;
	padding:12px 0;
	border-top:1px dashed var(--vivi-color-border-strong);
}
.vivi-brand-category-subrow + .vivi-brand-category-subrow{
	margin-top:0;
}
.vivi-brand-category-subrow .vivi-brand-category-tag{
	min-height:32px;
	padding:0 13px;
}
.vivi-brand-category-tag{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex:0 0 auto;
	max-width:190px;
	min-height:34px;
	padding:0 14px;
	border-radius:var(--vivi-radius-pill);
	border:1px solid var(--vivi-color-border);
	background:var(--vivi-color-card);
	color:var(--vivi-color-text-muted);
	font-size:var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	line-height:1;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
	text-decoration:none;
	transition:background .18s ease,border-color .18s ease,color .18s ease;
}
.vivi-brand-category-tag:hover{
	border-color:var(--vivi-color-border-strong);
	background:var(--vivi-color-bg-soft);
	color:var(--vivi-color-text);
}
.vivi-brand-category-tag.is-active{
	border-color:var(--vivi-color-black);
	background:var(--vivi-color-black);
	color:var(--vivi-color-text-inverse);
}
.vivi-brand-category-tag.is-overflow-hidden{
	display:none;
}
.vivi-brand-category-more{
	min-width:42px;
	max-width:42px;
	cursor:pointer;
}
.vivi-brand-category-more[hidden],
.vivi-brand-category-popover[hidden]{
	display:none !important;
}
.vivi-brand-category-popover{
	position:absolute;
	top:calc(100% + 10px);
	left:0;
	z-index:30;
	width:min(420px,100%);
	padding:14px;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius-md);
	background:var(--vivi-color-card);
	box-shadow:var(--vivi-shadow-soft);
}
.vivi-brand-category-popover-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	margin-bottom:12px;
	color:var(--vivi-color-text);
	font-size:var(--vivi-fs-small);
}
.vivi-brand-category-popover-head button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:30px;
	height:30px;
	border:1px solid var(--vivi-color-border);
	border-radius:var(--vivi-radius-pill);
	background:var(--vivi-color-card);
	color:var(--vivi-color-text-muted);
	cursor:pointer;
	font-size:18px;
	line-height:1;
}
.vivi-brand-category-popover-list{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}
.vivi-brand-category-popover-list .vivi-brand-category-tag{
	max-width:100%;
}
.vivi-brand-filter-actions{
	margin-top:10px;
	display:flex;
	gap:10px;
	align-items:center;
	justify-content:flex-start;
}
.vivi-brand-filter-actions .vivi-btn{
	min-height:var(--vivi-btn-height);
	padding:0 var(--vivi-btn-padding-x);
}
.vivi-brand-filter-actions .vivi-btn-light{
	margin-left:auto;
}
.vivi-brand-archive-content{margin-top:20px}
.vivi-brand-grid{
	display:block;
	max-width:850px;
}
.vivi-brand-card{
	display:grid;
	grid-template-columns:128px minmax(0,1fr);
	gap:18px;
	padding:22px 0;
	border:0;
	border-bottom:1px solid var(--vivi-color-border);
	border-radius:0;
	background:transparent;
	box-shadow:none;
	transition:none;
}
.vivi-brand-card:hover{transform:none;box-shadow:none}
.vivi-brand-card:first-child{border-top:1px solid var(--vivi-color-border)}
.vivi-brand-card-media{
	display:block;
	width:128px;
	height:128px;
	aspect-ratio:1 / 1;
	border-radius:var(--vivi-radius-md);
	background:var(--vivi-color-bg-soft);
	overflow:hidden;
	text-decoration:none;
	border:1px solid var(--vivi-color-border);
}
.vivi-brand-card-media img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}
.vivi-brand-card-media span{
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	height:100%;
	font-size:38px;
	font-weight: var(--vivi-fw-bold);
	color:var(--vivi-color-text-light);
	background:var(--vivi-color-bg-soft);
}
.vivi-brand-card-aside{
	display:grid;
	gap:8px;
	align-content:start;
}
.vivi-brand-card-badges{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:6px;
}
.vivi-brand-card-badges span{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:0;
	height:22px;
	padding:0 6px;
	border-radius:var(--vivi-radius-pill);
	background:var(--vivi-color-card-warm);
	border:1px solid var(--vivi-color-border);
	color:var(--vivi-color-text);
	font-size:var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	line-height:1;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.vivi-brand-card-group{
	margin:0 0 4px;
	color:var(--vivi-color-text-muted);
	font-size:var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	line-height:1.45;
}
.vivi-brand-card-body{padding:0;min-width:0}
.vivi-brand-card-tags{
	display:flex;
	flex-wrap:wrap;
	gap:6px;
	min-height:0;
	margin:0 0 5px;
	order:0;
}
.vivi-brand-card-tags span{
	display:inline-flex;
	align-items:center;
	height:22px;
	border-radius:var(--vivi-radius-pill);
	background:var(--vivi-color-bg-soft);
	color:var(--vivi-color-text-muted);
	font-size:var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	padding:0 9px;
}
.vivi-brand-card h2{
	font-size:var(--vivi-fs-h3);
	line-height:1.32;
	margin:0 0 6px;
	font-weight: var(--vivi-fw-bold);
	letter-spacing:.02em;
}
.vivi-brand-card h2 a{
	color:var(--vivi-color-heading);
	text-decoration:none;
}
.vivi-brand-card h2 a:hover{
	color:var(--vivi-color-red);
	text-decoration:underline;
}
.vivi-brand-card-desc{
	margin:0 0 10px;
	color:var(--vivi-color-text-soft);
	font-size:var(--vivi-fs-small);
	line-height:var(--vivi-lh-body);
}
.vivi-brand-card-meta{
	display:grid;
	gap:3px;
	margin:0 0 8px;
}
.vivi-brand-card-meta p{
	display:flex;
	gap:6px;
	align-items:flex-start;
	margin:0;
	color:var(--vivi-color-text-muted);
	font-size:13px;
	line-height:1.55;
}
.vivi-brand-card-meta i{
	font-size:15px;
	line-height:1.25;
	color:var(--vivi-color-text-light);
}
.vivi-brand-card-actions{
	display:flex;
	gap:14px;
	align-items:center;
	flex-wrap:wrap;
}
.vivi-brand-card-actions a{
	height:auto;
	border-radius:0;
	padding:0;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	font-size:13px;
	font-weight: var(--vivi-fw-bold);
	text-decoration:none;
}
.vivi-brand-card-primary,
.vivi-brand-card-secondary{
	background:transparent;
	color:var(--vivi-color-red);
}
.vivi-brand-card-actions a:hover{text-decoration:underline}
.vivi-brand-empty{
	max-width:760px;
	margin-top:18px;
	padding:42px 28px;
	text-align:left;
	border-radius:var(--vivi-radius-lg);
	background:var(--vivi-color-card-warm);
	border:1px solid var(--vivi-color-border);
	box-shadow:var(--vivi-shadow-soft);
}
.vivi-brand-empty h2{
	margin:0 0 10px;
	font-size:var(--vivi-fs-h3);
	color:var(--vivi-color-text);
}
.vivi-brand-empty p{
	margin:0 0 20px;
	color:var(--vivi-color-text-muted);
}
.vivi-brand-empty a:not(.vivi-btn){
	display:inline-flex;
	height:40px;
	align-items:center;
	padding:0 16px;
	border-radius:var(--vivi-radius-pill);
	background:var(--vivi-color-black);
	color:var(--vivi-color-text-inverse);
	text-decoration:none;
	font-weight: var(--vivi-fw-bold);
}
.vivi-brand-pagination{
	display:flex;
	gap:6px;
	justify-content:flex-start;
	margin-top:26px;
	max-width:850px;
}
.vivi-brand-pagination a{
	min-width:36px;
	height:36px;
	border-radius:var(--vivi-radius-pill);
	display:inline-flex;
	align-items:center;
	justify-content:center;
	background:var(--vivi-color-card);
	color:var(--vivi-color-text-soft);
	text-decoration:none;
	font-weight: var(--vivi-fw-bold);
	border:1px solid transparent;
}
.vivi-brand-pagination a:hover{
	border-color:var(--vivi-color-border-strong);
	background:var(--vivi-color-bg-soft);
}
.vivi-brand-pagination a.is-current{
	background:var(--vivi-color-black);
	color:var(--vivi-color-text-inverse);
	border-color:var(--vivi-color-black);
}
@media (max-width:1024px){
	.vivi-brand-archive-main{width:min(100% - 48px,var(--vivi-container));padding-top:32px}
	.vivi-brand-archive-hero{grid-template-columns:1fr}
	.vivi-brand-archive-stats{justify-self:start;text-align:left;min-width:0}
}
@media (max-width:640px){
	.vivi-brand-archive-main{width:min(100% - 32px,var(--vivi-container));padding:24px 0 82px}
	.vivi-brand-archive-hero{padding:20px 0 16px}
	.vivi-brand-archive-copy .vivi-brand-archive-title,
	.vivi-brand-archive-copy h1{font-size:26px}
	.vivi-brand-archive-copy p:not(.vivi-kicker){font-size:13px}
	.vivi-brand-filter-panel{margin:16px 0 4px;padding:var(--vivi-space-sm)}
	.vivi-brand-filter-form{gap:0}
	.vivi-brand-filter-top{flex-direction:column;align-items:stretch}
	.vivi-brand-filter-keyword,
	.vivi-brand-filter-city,
	.vivi-brand-location-select-field{flex:1 1 auto;width:100%;min-width:0}
	.vivi-brand-category-tags{gap:8px}
	.vivi-brand-category-tag{min-height:32px;padding:0 12px;font-size:12px;max-width:150px}
	.vivi-brand-category-more{min-width:38px;max-width:38px;padding:0}
	.vivi-brand-category-popover{width:100%;padding:12px}
	.vivi-brand-filter-actions{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch}
	.vivi-brand-filter-actions .vivi-btn{width:100%;padding:0 var(--vivi-btn-padding-x)}
	.vivi-brand-filter-actions .vivi-btn-light{margin-left:0}
	.vivi-brand-grid{max-width:none}
	.vivi-brand-card{grid-template-columns:92px minmax(0,1fr);gap:13px;padding:18px 0}
	.vivi-brand-card-media{width:92px;height:92px;border-radius:var(--vivi-radius-sm)}
	.vivi-brand-card-badges{grid-template-columns:1fr;gap:5px}
	.vivi-brand-card-badges span{height:20px;font-size:10px}
	.vivi-brand-card h2{font-size:18px}
	.vivi-brand-card-desc{font-size:13px;line-height:1.65}
	.vivi-brand-card-tags span{height:21px;font-size:11px}
	.vivi-brand-card-actions{gap:12px}
	.vivi-brand-pagination{justify-content:center}
}

/* 0.9.69：城市分類改為階層式下拉選單 */
.vivi-brand-location-rootrow{
	border-top:1px solid var(--vivi-color-border-strong);
	margin-top:0;
	padding:12px 0;
}
.vivi-brand-location-subrow{
	padding:12px 0;
}

/* 0.9.75：清除條件按鈕獨立放在品牌分類下方 */

.vivi-brand-filter-clear-row{
	display:flex;
	justify-content:flex-end;
	align-items:center;
	padding:12px 0 0;
}
.vivi-brand-clear-link{
	margin-left:auto;
	min-height:44px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:0 2px;
	border:0;
	background:transparent;
	color:var(--vivi-color-text-muted);
	font-size:var(--vivi-fs-small);
	font-weight: var(--vivi-fw-bold);
	text-decoration:none;
	white-space:nowrap;
}
.vivi-brand-clear-link:hover{
	color:var(--vivi-color-text);
	text-decoration:underline;
}
/* 0.9.81：避免 AJAX 清空關鍵字後，分類列以內容寬度撐開 Filter 外框。 */
.vivi-brand-filter-form,
.vivi-brand-filter-form > *,
.vivi-brand-filter-top,
.vivi-brand-filter-panel [data-vivi-brand-category-filter],
.vivi-brand-category-row,
.vivi-brand-category-tags{
	min-width:0;
	max-width:100%;
	box-sizing:border-box;
}
.vivi-brand-filter-top{
	width:100%;
}
.vivi-brand-filter-keyword{
	min-width:0;
}
.vivi-brand-location-select-field{
	max-width:190px;
}

.vivi-brand-archive-content.is-loading{
	opacity:.56;
	pointer-events:none;
	transition:opacity .18s ease;
}
@media (max-width:640px){
	.vivi-brand-filter-clear-row{
		justify-content:flex-end;
		padding-top:12px;
	}
	.vivi-brand-clear-link{
		margin-left:0;
		justify-content:flex-end;
		width:auto;
		min-height:34px;
	}
}

/* 0.9.84：VIVI合作夥伴 checkbox 篩選，改用 brand_vivi，靠左顯示在清除條件左側。 */
.vivi-brand-filter-clear-row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	position:relative;
}
.vivi-brand-partner-filter{
	min-width:0;
	margin-right:auto;
}
.vivi-brand-partner-list{
	display:flex;
	align-items:center;
	justify-content:flex-start;
	flex-wrap:wrap;
	gap:8px 12px;
}
.vivi-brand-partner-option{
	display:inline-flex;
	align-items:center;
	gap:6px;
	min-height:30px;
	color:var(--vivi-color-text);
	font-size:var(--vivi-fs-small);
	font-weight: var(--vivi-fw-semibold);
	line-height:1;
	cursor:pointer;
	white-space:nowrap;
}
.vivi-brand-partner-option input{
	width:16px;
	height:16px;
	margin:0;
	accent-color:var(--vivi-color-red);
}
.vivi-brand-partner-option span{
	display:inline-block;
}
.vivi-brand-clear-link{
	flex:0 0 auto;
	margin-left:auto;
}
@media (max-width:640px){
	.vivi-brand-filter-clear-row{
		align-items:flex-start;
		gap:10px;
	}
	.vivi-brand-partner-list{
		gap:8px 10px;
	}
}


/* 0.9.85：VIVI合作夥伴篩選靠 Filter 框最左側，checkbox 橫式排列；清除條件固定最右側。 */
.vivi-brand-filter-clear-row{
	display:flex !important;
	align-items:center !important;
	justify-content:space-between !important;
	gap:16px !important;
	width:100% !important;
	max-width:100% !important;
	padding:12px 0 0 !important;
	box-sizing:border-box !important;
}
.vivi-brand-partner-filter{
	flex:1 1 auto !important;
	min-width:0 !important;
	max-width:100% !important;
	margin:0 !important;
	justify-self:start !important;
	align-self:center !important;
}
.vivi-brand-partner-list{
	display:flex !important;
	flex-direction:row !important;
	align-items:center !important;
	justify-content:flex-start !important;
	flex-wrap:wrap !important;
	gap:8px 18px !important;
	width:100% !important;
	margin:0 !important;
	padding:0 !important;
}
.vivi-brand-partner-option{
	display:inline-flex !important;
	flex:0 0 auto !important;
	align-items:center !important;
	gap:6px !important;
	min-height:30px !important;
	margin:0 !important;
	white-space:nowrap !important;
}
.vivi-brand-clear-link{
	flex:0 0 auto !important;
	margin-left:auto !important;
	align-self:center !important;
}
@media (max-width:640px){
	.vivi-brand-filter-clear-row{
		align-items:flex-start !important;
		gap:10px !important;
	}
	.vivi-brand-partner-list{
		gap:8px 12px !important;
	}
}


/* 0.9.87：VIVI合作夥伴 checkbox 勾選狀態套用基礎設定黑色，底色維持白色。 */
.vivi-brand-partner-option input[type="checkbox"]{
	appearance:none !important;
	-webkit-appearance:none !important;
	position:relative !important;
	width:16px !important;
	height:16px !important;
	min-width:16px !important;
	min-height:16px !important;
	margin:0 !important;
	border:1px solid var(--vivi-color-border-strong) !important;
	border-radius:4px !important;
	background:var(--vivi-color-card) !important;
	box-shadow:none !important;
	cursor:pointer !important;
}
.vivi-brand-partner-option input[type="checkbox"]:checked{
	background:var(--vivi-color-card) !important;
	border-color:var(--vivi-color-black) !important;
}
.vivi-brand-partner-option input[type="checkbox"]:checked::after{
	content:"" !important;
	position:absolute !important;
	left:4px !important;
	top:1px !important;
	width:5px !important;
	height:9px !important;
	border:solid var(--vivi-color-black) !important;
	border-width:0 2px 2px 0 !important;
	transform:rotate(45deg) !important;
}
.vivi-brand-partner-option input[type="checkbox"]:focus-visible{
	outline:none !important;
	border-color:var(--vivi-form-border-focus) !important;
	box-shadow:0 0 0 3px var(--vivi-form-focus-ring) !important;
}

/* v0.9.89：Loop Item 依指定欄位順序排列 */
.vivi-brand-card-category-tags span,
.vivi-brand-card-location-tags span{
	background:var(--vivi-color-card-warm);
	color:var(--vivi-color-text-muted);
}
.vivi-brand-card-location-tags{
	margin-bottom:8px;
}

/* v0.9.90：Loop Item 細節：合作夥伴徽章圖片、分類標籤間距、地圖連結 */
.vivi-brand-card-badges{
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:6px;
}
.vivi-brand-card-badges span{
	height:36px;
	padding:3px 5px;
	border-radius:var(--vivi-radius-sm);
	background:var(--vivi-color-card);
	border:1px solid var(--vivi-color-border);
}
.vivi-brand-card-badges span.has-image{
	background:transparent;
	border-color:transparent;
	padding:0;
}
.vivi-brand-card-badges img{
	display:block;
	width:100%;
	height:100%;
	object-fit:contain;
}
.vivi-brand-card-category-tags,
.vivi-brand-card-location-tags{
	gap:4px;
	margin-bottom:4px;
}
.vivi-brand-card-category-tags span,
.vivi-brand-card-location-tags span{
	padding:0 7px;
}
.vivi-brand-card-category-tags .vivi-brand-card-tag-label{
	background:transparent;
	color:var(--vivi-color-text);
	padding:0 2px 0 0;
	font-weight: var(--vivi-fw-heavy);
}
.vivi-brand-card-meta p{
	gap:5px;
}
.vivi-brand-card-meta p:first-child{
	padding-left:0;
}
@media (max-width:640px){
	.vivi-brand-card-badges span{
		height:30px;
	}
	.vivi-brand-card-category-tags,
	.vivi-brand-card-location-tags{
		gap:3px;
	}
	.vivi-brand-card-category-tags span,
	.vivi-brand-card-location-tags span{
		padding:0 6px;
	}
}

/* v0.9.91：Loop Item 分類合併為同一排、徽章區域改為兩欄等寬 */
.vivi-brand-card-body{
	text-align:left;
}
.vivi-brand-card-tax-row{
	display:flex;
	align-items:center;
	justify-content:flex-start;
	gap:10px;
	flex-wrap:wrap;
	margin:0 0 8px;
	min-width:0;
}
.vivi-brand-card-tax-row .vivi-brand-card-tags{
	margin:0;
	gap:10px;
	align-items:center;
	justify-content:flex-start;
}
.vivi-brand-card-tax-separator{
	color:var(--vivi-color-text-light);
	font-size:var(--vivi-fs-xs);
	font-weight: var(--vivi-fw-bold);
	line-height:1;
}
.vivi-brand-card-category-tags,
.vivi-brand-card-location-tags{
	gap:10px;
	margin-bottom:0;
}
.vivi-brand-card-category-tags span,
.vivi-brand-card-location-tags span{
	padding:0;
	background:transparent;
	border-radius:0;
	height:auto;
	line-height:1.4;
}
.vivi-brand-card-category-tags .vivi-brand-card-tag-label{
	display:none;
}
.vivi-brand-card-badges{
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:10px;
	width:100%;
}
.vivi-brand-card-badges span{
	width:100%;
	min-width:0;
}
.vivi-brand-card-badges span.has-image{
	width:100%;
}
.vivi-brand-card-badges img{
	width:100%;
	height:100%;
	object-fit:contain;
}
.vivi-brand-card-group,
.vivi-brand-card h2,
.vivi-brand-card-tax-row,
.vivi-brand-card-meta,
.vivi-brand-card-desc,
.vivi-brand-card-actions{
	text-align:left;
	justify-content:flex-start;
}
@media (max-width:640px){
	.vivi-brand-card-tax-row{
		gap:8px;
	}
	.vivi-brand-card-tax-row .vivi-brand-card-tags,
	.vivi-brand-card-category-tags,
	.vivi-brand-card-location-tags{
		gap:10px;
	}
	.vivi-brand-card-badges{
		grid-template-columns:repeat(2,minmax(0,1fr));
		gap:10px;
	}
}


/* v0.9.92：合作夥伴徽章高度與間距調整 */
.vivi-brand-card-badges{
	gap:0;
}
.vivi-brand-card-badges span{
	height:59px;
}
@media (max-width:640px){
	.vivi-brand-card-badges{
		gap:0;
	}
	.vivi-brand-card-badges span{
		height:59px;
	}
}

/* v0.9.94：品牌徽章移至品牌名稱同一排左側，並縮小顯示 */
.vivi-brand-card-title-row{
	display:flex;
	align-items:center;
	justify-content:flex-start;
	gap:8px;
	min-width:0;
	margin:0 0 6px;
}
.vivi-brand-card-title-row h2{
	margin:0;
	min-width:0;
}
.vivi-brand-card-title-badges{
	display:inline-flex;
	align-items:center;
	justify-content:flex-start;
	gap:4px;
	width:auto;
	flex:0 0 auto;
}
.vivi-brand-card-title-badges span,
.vivi-brand-card-title-badges span.has-image{
	width:26px;
	height:26px;
	min-width:26px;
	padding:0;
	border:0;
	border-radius:var(--vivi-radius-xs);
	background:transparent;
	overflow:hidden;
}
.vivi-brand-card-title-badges img{
	display:block;
	width:100%;
	height:100%;
	object-fit:contain;
}
@media (max-width:640px){
	.vivi-brand-card-title-row{
		gap:6px;
	}
	.vivi-brand-card-title-badges{
		gap:3px;
	}
	.vivi-brand-card-title-badges span,
	.vivi-brand-card-title-badges span.has-image{
		width:24px;
		height:24px;
		min-width:24px;
	}
}


/* v0.9.95：品牌徽章移至品牌名稱同一排最右側 */
.vivi-brand-card-title-row{
	justify-content:space-between;
	gap:10px;
}
.vivi-brand-card-title-row h2{
	order:1;
	flex:1 1 auto;
}
.vivi-brand-card-title-badges{
	order:2;
	margin-left:auto;
	justify-content:flex-end;
}
@media (max-width:640px){
	.vivi-brand-card-title-row{
		gap:8px;
	}
}


/* v0.9.97：品牌徽章高度對齊「所屬集團上方」到「品牌名稱下方」 */
.vivi-brand-card-heading{
	display:flex;
	align-items:stretch;
	justify-content:space-between;
	gap:12px;
	width:100%;
	min-width:0;
	margin:0 0 6px;
}
.vivi-brand-card-heading-text{
	display:flex;
	flex:1 1 auto;
	min-width:0;
	flex-direction:column;
	justify-content:flex-start;
}
.vivi-brand-card-heading .vivi-brand-card-group{
	margin:0 0 4px;
}
.vivi-brand-card-heading .vivi-brand-card-title-row{
	display:block;
	margin:0;
	min-width:0;
}
.vivi-brand-card-heading .vivi-brand-card-title-row h2{
	margin:0;
	min-width:0;
}
.vivi-brand-card-heading .vivi-brand-card-title-badges{
	align-self:stretch;
	display:flex;
	align-items:stretch;
	justify-content:flex-end;
	gap:4px;
	width:auto;
	margin-left:auto;
	flex:0 0 auto;
}
.vivi-brand-card-heading .vivi-brand-card-title-badges span,
.vivi-brand-card-heading .vivi-brand-card-title-badges span.has-image{
	width:auto;
	height:auto;
	min-width:30px;
	aspect-ratio:1 / 1;
	padding:0;
	border:0;
	border-radius:var(--vivi-radius-xs);
	background:transparent;
	overflow:hidden;
}
.vivi-brand-card-heading .vivi-brand-card-title-badges img{
	display:block;
	width:100%;
	height:100%;
	object-fit:contain;
}
@media (max-width:640px){
	.vivi-brand-card-heading{
		gap:8px;
	}
	.vivi-brand-card-heading .vivi-brand-card-title-badges{
		gap:3px;
	}
	.vivi-brand-card-heading .vivi-brand-card-title-badges span,
	.vivi-brand-card-heading .vivi-brand-card-title-badges span.has-image{
		min-width:26px;
	}
}


/* v0.9.99：修正品牌徽章高度撐爆 Loop Item，改為標題區安全尺寸 */
.vivi-brand-card-heading{
	align-items:flex-start;
	gap:12px;
}
.vivi-brand-card-heading .vivi-brand-card-heading-text{
	min-width:0;
	flex:1 1 auto;
}
.vivi-brand-card-heading .vivi-brand-card-title-badges{
	align-self:flex-start;
	display:flex;
	align-items:flex-start;
	justify-content:flex-end;
	gap:4px;
	width:auto;
	height:auto;
	max-width:112px;
	margin-left:auto;
	flex:0 0 auto;
}
.vivi-brand-card-heading .vivi-brand-card-title-badges span,
.vivi-brand-card-heading .vivi-brand-card-title-badges span.has-image{
	display:block;
	width:46px;
	height:46px;
	min-width:46px;
	max-width:46px;
	max-height:46px;
	aspect-ratio:auto;
	padding:0;
	border:0;
	border-radius:var(--vivi-radius-xs);
	background:transparent;
	overflow:hidden;
}
.vivi-brand-card-heading .vivi-brand-card-title-badges img{
	display:block;
	width:100%;
	height:100%;
	object-fit:contain;
}
@media (max-width:640px){
	.vivi-brand-card-heading{
		gap:8px;
	}
	.vivi-brand-card-heading .vivi-brand-card-title-badges{
		gap:3px;
		max-width:88px;
	}
	.vivi-brand-card-heading .vivi-brand-card-title-badges span,
	.vivi-brand-card-heading .vivi-brand-card-title-badges span.has-image{
		width:38px;
		height:38px;
		min-width:38px;
		max-width:38px;
		max-height:38px;
	}
}


/* v0.9.99：修正沒有所屬集團時，品牌名稱在標題區向下偏移 */
.vivi-brand-card-heading.has-no-brand-group{
	align-items:flex-start;
}
.vivi-brand-card-heading.has-no-brand-group .vivi-brand-card-heading-text{
	justify-content:flex-start;
}
.vivi-brand-card-heading.has-no-brand-group .vivi-brand-card-title-row{
	margin-top:0;
}
.vivi-brand-card-heading.has-no-brand-group .vivi-brand-card-title-row h2{
	line-height:1.12;
	transform:translateY(-1px);
}


/* v0.9.100：不管有無所屬集團，品牌名稱維持同一基準位置 */
.vivi-brand-card-heading .vivi-brand-card-group{
	min-height:1.2em;
}
.vivi-brand-card-heading .vivi-brand-card-group.is-empty{
	visibility:hidden;
}
.vivi-brand-card-heading.has-no-brand-group .vivi-brand-card-heading-text{
	justify-content:flex-start;
}
.vivi-brand-card-heading.has-no-brand-group .vivi-brand-card-title-row,
.vivi-brand-card-heading.has-no-brand-group .vivi-brand-card-title-row h2{
	margin-top:0;
	transform:none;
	line-height:inherit;
}


/* v0.9.102：基礎字體改為 BuddyBoss 類似系統字體堆疊 */
.vivi-brand-card-heading{
	margin-bottom:16px;
}
.vivi-brand-card-group,
.vivi-brand-card-tax-row,
.vivi-brand-card-tax-row .vivi-brand-card-tags,
.vivi-brand-card-tags span,
.vivi-brand-card-meta p,
.vivi-brand-card-desc,
.vivi-brand-card-actions a{
	font-size:var(--vivi-fs-body);
}
.vivi-brand-card-actions a{
	line-height:var(--vivi-lh-body);
}
@media (max-width:640px){
	.vivi-brand-card-heading{
		margin-bottom:16px;
	}
	.vivi-brand-card-desc,
	.vivi-brand-card-tags span,
	.vivi-brand-card-actions a{
		font-size:var(--vivi-fs-body);
	}
}


/* v0.9.105：Loop Item 所屬集團與分類改為 Small 字級 */
.vivi-brand-card-group,
.vivi-brand-card-tax-row,
.vivi-brand-card-tax-row .vivi-brand-card-tags,
.vivi-brand-card-tax-row .vivi-brand-card-tags span,
.vivi-brand-card-category-tags span,
.vivi-brand-card-location-tags span,
.vivi-brand-card-tax-separator{
	font-size:var(--vivi-fs-small);
}
@media (max-width:640px){
	.vivi-brand-card-group,
	.vivi-brand-card-tax-row,
	.vivi-brand-card-tax-row .vivi-brand-card-tags,
	.vivi-brand-card-tax-row .vivi-brand-card-tags span,
	.vivi-brand-card-category-tags span,
	.vivi-brand-card-location-tags span,
	.vivi-brand-card-tax-separator{
		font-size:var(--vivi-fs-small);
	}
}


/* v0.9.106：品牌標題顏色改用基礎設定墨色 */
.vivi-brand-card h2 a{
	color:var(--vivi-color-heading);
}


/* v0.9.108：Loop Item 連結按鈕文字改為 Small 字級 */
.vivi-brand-card-actions a{
	font-size:var(--vivi-fs-small);
	line-height:var(--vivi-lh-body);
}
@media (max-width:640px){
	.vivi-brand-card-actions a{
		font-size:var(--vivi-fs-small);
	}
}

/* 0.9.109：品牌列表改為滑到底自動載入下一批。 */
.vivi-brand-pagination{
	display:none;
}
.vivi-brand-load-more,
.vivi-brand-load-complete{
	max-width:850px;
	margin-top:24px;
	padding:14px 0;
	text-align:center;
	color:var(--vivi-color-text-muted);
	font-size:var(--vivi-fs-small);
	line-height:var(--vivi-line-height-body);
}
.vivi-brand-load-more[hidden],
.vivi-brand-load-complete[hidden]{
	display:none !important;
}
.vivi-brand-load-more-status{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:32px;
}
.vivi-brand-load-more.is-loading .vivi-brand-load-more-status::before{
	content:"";
	width:14px;
	height:14px;
	margin-right:8px;
	border:2px solid var(--vivi-color-border-strong);
	border-top-color:var(--vivi-color-primary);
	border-radius:50%;
	animation:vivi-brand-spin .8s linear infinite;
}
@keyframes vivi-brand-spin{
	to{transform:rotate(360deg)}
}

/* 0.9.111：城市 / 行政區 / 生活圈三層下拉固定顯示，未選上層前下層停用。 */
.vivi-brand-filter-top{
	display:grid;
	grid-template-columns:minmax(0, auto) minmax(240px, 1fr);
	gap:12px;
	align-items:end;
	width:100%;
}
.vivi-brand-location-selects{
	display:flex;
	align-items:end;
	gap:12px;
	min-width:0;
	max-width:100%;
	white-space:nowrap;
}
.vivi-brand-location-selects .vivi-brand-location-select-field{
	min-width:0;
	max-width:none;
	flex:0 0 auto;
}
.vivi-brand-location-selects-count-1{
	width:220px;
}
.vivi-brand-location-selects-count-1 .vivi-brand-location-select-field{
	width:100%;
	flex:1 1 100%;
}
.vivi-brand-location-selects-count-2{
	width:min(390px, 42vw);
	display:grid;
	grid-template-columns:1fr 1fr;
}
.vivi-brand-location-selects-count-2 .vivi-brand-location-select-field{
	width:100%;
	flex:initial;
}
.vivi-brand-location-selects-count-3{
	width:auto;
	max-width:100%;
	overflow-x:auto;
	overflow-y:hidden;
	scrollbar-width:none;
}
.vivi-brand-location-selects-count-3::-webkit-scrollbar{
	display:none;
}
.vivi-brand-location-selects-count-3 .vivi-brand-location-select-field{
	width:auto;
	flex:0 0 auto;
}
.vivi-brand-location-selects-count-3 .vivi-brand-location-level-0{
	min-width:132px;
}
.vivi-brand-location-selects-count-3 .vivi-brand-location-level-1{
	min-width:148px;
}
.vivi-brand-location-selects-count-3 .vivi-brand-location-level-2{
	min-width:168px;
}

.vivi-brand-location-select-field.is-disabled .vivi-select,
.vivi-brand-location-select-field .vivi-select:disabled{
	background:var(--vivi-color-muted);
	color:var(--vivi-color-text-light);
	cursor:not-allowed;
	opacity:1;
}
.vivi-brand-filter-keyword{
	min-width:0;
	width:100%;
}
@media (max-width:900px){
	.vivi-brand-filter-top{
		grid-template-columns:1fr;
	}
	.vivi-brand-location-selects{
		order:1;
		width:100%;
	}
	.vivi-brand-filter-keyword{
		order:2;
	}
	.vivi-brand-location-selects-count-1{
		width:100%;
	}
	.vivi-brand-location-selects-count-2{
		width:100%;
	}
	.vivi-brand-location-selects-count-3{
		width:100%;
		display:flex;
	}
	.vivi-brand-location-selects-count-3 .vivi-brand-location-select-field{
		flex:1 1 0;
	}
	.vivi-brand-location-selects-count-3 .vivi-brand-location-level-0,
	.vivi-brand-location-selects-count-3 .vivi-brand-location-level-1,
	.vivi-brand-location-selects-count-3 .vivi-brand-location-level-2{
		min-width:0;
	}
}
@media (max-width:640px){
	.vivi-brand-filter-top{
		display:grid;
		grid-template-columns:1fr;
		gap:10px;
		align-items:stretch;
	}
	.vivi-brand-location-selects{
		order:1;
		width:100%;
		gap:8px;
	}
	.vivi-brand-filter-keyword{
		order:2;
		width:100%;
	}
	.vivi-brand-location-selects-count-2{
		grid-template-columns:1fr 1fr;
	}
	.vivi-brand-location-selects-count-3{
		flex-wrap:nowrap;
		overflow-x:auto;
	}
	.vivi-brand-location-selects-count-3 .vivi-brand-location-select-field{
		flex:1 1 0;
	}
	.vivi-brand-location-selects-count-3 .vivi-select{
		padding-left:10px;
		padding-right:26px;
	}
}


/* 0.9.115：手機版 Loop Item 夥伴徽章移到所有文字資訊最上方，並靠右排列。 */
@media (max-width:640px){
	.vivi-brand-card-heading{
		display:flex;
		flex-direction:column;
		align-items:stretch;
		gap:6px;
		margin-bottom:16px;
	}
	.vivi-brand-card-heading .vivi-brand-card-title-badges{
		order:-1;
		align-self:flex-end;
		justify-content:flex-end;
		margin-left:0;
		max-width:96px;
		gap:4px;
	}
	.vivi-brand-card-heading .vivi-brand-card-title-badges span,
	.vivi-brand-card-heading .vivi-brand-card-title-badges span.has-image{
		width:32px;
		height:32px;
		min-width:32px;
		max-width:32px;
		max-height:32px;
	}
	.vivi-brand-card-heading .vivi-brand-card-heading-text{
		order:1;
		width:100%;
	}
}

/* 0.9.116：手機版 Loop Item 夥伴徽章改放在品牌圖片下方，並靠右排列。 */
.vivi-brand-card-mobile-badges{
	display:none;
}
@media (max-width:640px){
	.vivi-brand-card-heading{
		display:block;
		margin-bottom:16px;
	}
	.vivi-brand-card-heading .vivi-brand-card-title-badges{
		display:none;
	}
	.vivi-brand-card-mobile-badges{
		display:flex;
		justify-content:flex-end;
		align-items:center;
		gap:4px;
		width:100%;
		margin-top:8px;
	}
	.vivi-brand-card-mobile-badges span,
	.vivi-brand-card-mobile-badges span.has-image{
		width:32px;
		height:32px;
		min-width:32px;
		max-width:32px;
		max-height:32px;
		padding:0;
		border-radius:var(--vivi-radius-sm);
	}
	.vivi-brand-card-mobile-badges img{
		width:100%;
		height:100%;
		object-fit:contain;
		display:block;
	}
}


/* v0.9.117：手機版品牌圖片下方的合作夥伴徽章改為一排兩個 */
@media (max-width:640px){
	.vivi-brand-card-mobile-badges{
		display:grid;
		grid-template-columns:repeat(2, minmax(0, 1fr));
		justify-content:stretch;
		align-items:center;
		gap:0;
		width:100%;
		margin-top:8px;
	}
	.vivi-brand-card-mobile-badges span,
	.vivi-brand-card-mobile-badges span.has-image{
		display:block;
		width:100%;
		height:34px;
		min-width:0;
		max-width:none;
		max-height:34px;
		padding:0;
		border:0;
		background:transparent;
		border-radius:var(--vivi-radius-xs);
		overflow:hidden;
	}
	.vivi-brand-card-mobile-badges img{
		display:block;
		width:100%;
		height:100%;
		object-fit:contain;
	}
}
