/* Textile Visual Catalog 1.2 — scoped, theme-resistant frontend */
.tvc-root,
.tvc-root *,
.tvc-root *::before,
.tvc-root *::after,
.tvc-widget,
.tvc-widget *,
.tvc-widget *::before,
.tvc-widget *::after {
	box-sizing: border-box;
}

/* Hard isolation for the automatic renderer. This neutralizes theme rules such
   as decorative pseudo-elements on links/cards, list markers and inherited
   button styles without touching anything outside .tvc-root. */
.tvc-root {
	direction: rtl !important;
	width: 100% !important;
	max-width: var(--tvc-panel-max-width, 100%) !important;
	margin-right: auto !important;
	margin-left: auto !important;
	color: var(--tvc-text, #18212b) !important;
	font-family: inherit !important;
	font-style: normal !important;
	font-variant: normal !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	line-height: 1.75 !important;
	isolation: isolate;
}
.tvc-root a,
.tvc-root a:hover,
.tvc-root a:focus,
.tvc-root a:active {
	color: inherit !important;
	text-decoration: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	background-image: none !important;
	box-shadow: none !important;
	outline-offset: 2px;
}
.tvc-root a::before,
.tvc-root a::after,
.tvc-root .tvc-brand-card::before,
.tvc-root .tvc-brand-card::after,
.tvc-root .tvc-color-item::before,
.tvc-root .tvc-color-item::after,
.tvc-root .tvc-spec-card::before,
.tvc-root .tvc-spec-card::after,
.tvc-root .tvc-attribute-item::before,
.tvc-root .tvc-attribute-item::after {
	content: none !important;
	display: none !important;
}
.tvc-root h1,
.tvc-root h2,
.tvc-root h3,
.tvc-root h4,
.tvc-root p,
.tvc-root ul,
.tvc-root ol,
.tvc-root li {
	margin-top: 0 !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
	background: none;
	border: 0;
	box-shadow: none;
	text-transform: none !important;
	letter-spacing: normal !important;
}
.tvc-root ul,
.tvc-root ol,
.tvc-root li {
	list-style: none !important;
}
.tvc-root img {
	display: block !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
}
.tvc-root strong,
.tvc-root b {
	font-weight: 700;
}

.tvc-widget {
	color: var(--tvc-text, #18212b);
	font-family: inherit;
	line-height: 1.75;
}

/* Automatic panel */
.tvc-auto-catalog {
	display: flex !important;
	flex-direction: column !important;
	gap: var(--tvc-section-gap, 28px) !important;
	clear: both !important;
	position: relative !important;
	z-index: 1;
	margin: 0 0 32px !important;
	padding: var(--tvc-panel-padding, 24px) !important;
	border: var(--tvc-panel-border, 1px) solid var(--tvc-border, #e0e6e9) !important;
	border-radius: var(--tvc-panel-radius, 22px) !important;
	background: var(--tvc-surface, #fff) !important;
	box-shadow: var(--tvc-panel-shadow, 0 14px 42px rgba(15,23,42,.05)) !important;
	overflow: visible !important;
}
.tvc-auto-catalog.tvc-panel--plain {
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
.tvc-catalog-header {
	margin: 0 !important;
	padding: 0 0 2px !important;
}
.tvc-catalog-title {
	margin: 0 !important;
	color: var(--tvc-text, #18212b) !important;
	font-size: var(--tvc-catalog-title-size, 25px) !important;
	font-weight: 800 !important;
	line-height: 1.35 !important;
}
.tvc-section {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
.tvc-section-heading {
	display: block !important;
	width: 100% !important;
	margin: 0 0 14px !important;
	padding: 0 !important;
	color: var(--tvc-text, #18212b) !important;
	font-size: var(--tvc-section-title-size, 20px) !important;
	font-weight: 800 !important;
	line-height: 1.45 !important;
	text-align: right !important;
}

/* Generic visual */
.tvc-visual {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;
	width: var(--tvc-swatch-size, 46px) !important;
	height: var(--tvc-swatch-size, 46px) !important;
	min-width: var(--tvc-swatch-size, 46px) !important;
	min-height: var(--tvc-swatch-size, 46px) !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid var(--tvc-border, #e0e6e9) !important;
	border-radius: 50% !important;
	background: var(--tvc-swatch-bg, var(--tvc-surface-alt, #f7f9fa)) !important;
	box-shadow: none !important;
	overflow: hidden !important;
	vertical-align: middle !important;
}
.tvc-visual img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}
.tvc-visual .dashicons {
	width: auto !important;
	height: auto !important;
	font-size: calc(var(--tvc-icon-size, 30px) * .7) !important;
	line-height: 1 !important;
}

/* Brands */
.tvc-brand-grid {
	display: grid !important;
	grid-template-columns: repeat(var(--tvc-brand-cols-d, 4), minmax(0, 1fr)) !important;
	gap: var(--tvc-item-gap, 12px) !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}
.tvc-brand-card {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 11px !important;
	min-width: 0 !important;
	min-height: calc(var(--tvc-logo-size, 50px) + 2 * var(--tvc-card-padding, 14px)) !important;
	margin: 0 !important;
	padding: var(--tvc-card-padding, 14px) !important;
	border: var(--tvc-card-border, 1px) solid var(--tvc-border, #e0e6e9) !important;
	border-radius: var(--tvc-card-radius, 14px) !important;
	background: var(--tvc-surface, #fff) !important;
	color: var(--tvc-text, #18212b) !important;
	box-shadow: var(--tvc-card-shadow, 0 8px 24px rgba(15,23,42,.06)) !important;
	transform: none !important;
	overflow: visible !important;
	transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease !important;
}
.tvc-brand-card:hover {
	transform: translateY(-2px) !important;
	border-color: var(--tvc-primary, #0f6462) !important;
}
.tvc-brand-logo-wrap {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	position: relative !important;
	flex: 0 0 auto !important;
	margin: 0 !important;
	padding: 0 !important;
}
.tvc-brand-logo {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: var(--tvc-logo-size, 50px) !important;
	height: var(--tvc-logo-size, 50px) !important;
	min-width: var(--tvc-logo-size, 50px) !important;
	margin: 0 !important;
	padding: 6px !important;
	border: 1px solid var(--tvc-border, #e0e6e9) !important;
	border-radius: max(8px, calc(var(--tvc-card-radius, 14px) - 3px)) !important;
	background: #fff !important;
	box-shadow: none !important;
	object-fit: contain !important;
	overflow: hidden !important;
}
.tvc-brand-logo--fallback {
	color: var(--tvc-primary, #0f6462) !important;
	font-size: calc(var(--tvc-item-title-size, 15px) * 1.55) !important;
	font-weight: 900 !important;
}
.tvc-brand-content {
	display: flex !important;
	flex: 1 1 auto !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}
.tvc-brand-name {
	display: inline-block !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	color: inherit !important;
	font-size: var(--tvc-item-title-size, 15px) !important;
	font-weight: 800 !important;
	line-height: 1.45 !important;
	white-space: normal !important;
	word-break: normal !important;
}
.tvc-brand-description {
	margin: 4px 0 0 !important;
	color: var(--tvc-muted, #68727d) !important;
	font-size: var(--tvc-item-text-size, 13px) !important;
	line-height: 1.65 !important;
}
.tvc-main-brand-badge {
	position: absolute !important;
	top: -8px !important;
	right: -8px !important;
	left: auto !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 24px !important;
	padding: 3px 8px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--tvc-accent, #d6a13a) !important;
	color: #17202a !important;
	font-size: 10px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	white-space: nowrap !important;
	box-shadow: 0 4px 12px rgba(15,23,42,.14) !important;
	z-index: 3 !important;
}
.tvc-brand-card--main {
	border-color: var(--tvc-main-brand-bg, var(--tvc-primary, #0f6462)) !important;
	background: var(--tvc-main-brand-bg, var(--tvc-primary, #0f6462)) !important;
	color: var(--tvc-main-brand-text, #fff) !important;
}
.tvc-brand-card--main .tvc-brand-description { color: rgba(255,255,255,.82) !important; }
.tvc-brand-showcase--spotlight .tvc-brand-card--main { grid-column: 1 / -1 !important; min-height: calc(var(--tvc-logo-size, 50px) + 34px) !important; }
.tvc-brand-showcase--spotlight .tvc-brand-card--main .tvc-brand-logo { width: calc(var(--tvc-logo-size, 50px) * 1.18) !important; height: calc(var(--tvc-logo-size, 50px) * 1.18) !important; min-width: calc(var(--tvc-logo-size, 50px) * 1.18) !important; }
.tvc-brand-showcase--minimal .tvc-brand-grid {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: stretch !important;
	gap: var(--tvc-item-gap, 12px) !important;
}
.tvc-brand-showcase--minimal .tvc-brand-card {
	flex: 0 1 auto !important;
	width: auto !important;
	min-height: 48px !important;
	padding: 8px 10px !important;
	box-shadow: none !important;
}
.tvc-brand-showcase--minimal .tvc-brand-logo { width: 36px !important; height: 36px !important; min-width: 36px !important; padding: 4px !important; }
.tvc-brand-showcase--minimal .tvc-brand-description { display: none !important; }
.tvc-brand-showcase--minimal .tvc-brand-card--main { background: var(--tvc-main-brand-bg, var(--tvc-primary, #0f6462)) !important; }

/* Colors */
.tvc-color-grid {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: var(--tvc-item-gap, 12px) !important;
	width: 100% !important;
}
.tvc-color-item {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: var(--tvc-card-padding, 14px) !important;
	border: var(--tvc-card-border, 1px) solid var(--tvc-border, #e0e6e9) !important;
	border-radius: var(--tvc-card-radius, 14px) !important;
	background: var(--tvc-surface, #fff) !important;
	box-shadow: none !important;
}
.tvc-color-content { display: flex !important; flex-direction: column !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; }
.tvc-color-name { color: var(--tvc-text, #18212b) !important; font-size: var(--tvc-item-title-size, 15px) !important; font-weight: 750 !important; line-height: 1.45 !important; }
.tvc-color-note { margin-top: 2px !important; color: var(--tvc-muted, #68727d) !important; font-size: var(--tvc-item-text-size, 13px) !important; line-height: 1.55 !important; }
.tvc-color-swatches--circles .tvc-color-grid { display: flex !important; flex-wrap: wrap !important; gap: var(--tvc-item-gap, 12px) !important; }
.tvc-color-swatches--circles .tvc-color-item { flex-direction: column !important; width: auto !important; min-width: 72px !important; padding: 4px !important; border: 0 !important; background: transparent !important; box-shadow: none !important; text-align: center !important; }
.tvc-color-swatches--circles .tvc-color-content { align-items: center !important; }
.tvc-color-swatches--circles .tvc-color-note { display: none !important; }
.tvc-color-swatches--palette .tvc-color-item { position: relative !important; min-height: 120px !important; align-items: flex-end !important; overflow: hidden !important; padding: 0 !important; }
.tvc-color-swatches--palette .tvc-color-item .tvc-visual { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; min-width: 100% !important; border: 0 !important; border-radius: inherit !important; }
.tvc-color-swatches--palette .tvc-color-content { position: relative !important; z-index: 2 !important; width: 100% !important; padding: 32px 12px 10px !important; background: linear-gradient(to top, rgba(15,23,42,.75), transparent) !important; }
.tvc-color-swatches--palette .tvc-color-name, .tvc-color-swatches--palette .tvc-color-note { color: #fff !important; }

/* Grouped specifications */
.tvc-spec-grid {
	display: grid !important;
	grid-template-columns: repeat(var(--tvc-spec-cols-d, 3), minmax(0, 1fr)) !important;
	gap: var(--tvc-item-gap, 12px) !important;
	width: 100% !important;
}
.tvc-spec-card {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	gap: 9px !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: var(--tvc-card-padding, 14px) !important;
	border: var(--tvc-card-border, 1px) solid var(--tvc-border, #e0e6e9) !important;
	border-radius: var(--tvc-card-radius, 14px) !important;
	background: var(--tvc-surface-alt, #f7f9fa) !important;
	box-shadow: none !important;
}
.tvc-spec-label {
	margin: 0 !important;
	padding: 0 !important;
	color: var(--tvc-muted, #68727d) !important;
	font-size: var(--tvc-label-size, 13px) !important;
	font-weight: 700 !important;
	line-height: 1.45 !important;
}
.tvc-spec-values {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 6px !important;
	min-width: 0 !important;
}
.tvc-spec-value {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 5px 8px !important;
	border: 1px solid var(--tvc-border, #e0e6e9) !important;
	border-radius: 9px !important;
	background: var(--tvc-surface, #fff) !important;
	color: var(--tvc-text, #18212b) !important;
	font-size: var(--tvc-item-text-size, 13px) !important;
	font-weight: 650 !important;
	line-height: 1.45 !important;
}
.tvc-spec-visual {
	--tvc-swatch-size: var(--tvc-icon-size, 30px);
	width: var(--tvc-icon-size, 30px) !important;
	height: var(--tvc-icon-size, 30px) !important;
	min-width: var(--tvc-icon-size, 30px) !important;
	min-height: var(--tvc-icon-size, 30px) !important;
	border-radius: 8px !important;
}
.tvc-specifications--pills .tvc-spec-card { padding: 8px 0 !important; border-width: 0 0 1px !important; border-radius: 0 !important; background: transparent !important; }
.tvc-specifications--pills .tvc-spec-value { border-radius: 999px !important; }
.tvc-specifications--list .tvc-spec-grid { display: flex !important; flex-direction: column !important; gap: 0 !important; border-top: 1px solid var(--tvc-border, #e0e6e9) !important; }
.tvc-specifications--list .tvc-spec-card { display: grid !important; grid-template-columns: minmax(130px, .35fr) 1fr !important; align-items: start !important; gap: 14px !important; padding: 12px 0 !important; border: 0 !important; border-bottom: 1px solid var(--tvc-border, #e0e6e9) !important; border-radius: 0 !important; background: transparent !important; }
.tvc-specifications--list .tvc-spec-value { padding: 0 !important; border: 0 !important; background: transparent !important; }

/* Legacy single-attribute widgets / Elementor compatibility */
.tvc-attribute-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.tvc-attribute-item { display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--tvc-border,#e0e6e9); border-radius: var(--tvc-card-radius,14px); background: var(--tvc-surface,#fff); color: var(--tvc-text,#18212b); }
.tvc-attribute-visual-wrap { flex: 0 0 auto; }
.tvc-attribute-visual { --tvc-swatch-size: var(--tvc-icon-size,30px); width: var(--tvc-icon-size,30px); height: var(--tvc-icon-size,30px); min-width: var(--tvc-icon-size,30px); border-radius: 8px; }
.tvc-attribute-content { display: flex; flex-direction: column; min-width: 0; }
.tvc-attribute-name { color: var(--tvc-text,#18212b); font-size: var(--tvc-item-title-size,15px); font-weight: 800; }
.tvc-attribute-description { color: var(--tvc-muted,#68727d); font-size: var(--tvc-item-text-size,13px); }
.tvc-attribute-visual-widget--pills .tvc-attribute-grid { display: flex; flex-wrap: wrap; }
.tvc-attribute-visual-widget--pills .tvc-attribute-item { width: auto; border-radius: 999px; }
.tvc-attribute-visual-widget--list .tvc-attribute-grid { display: flex; flex-direction: column; gap: 0; }
.tvc-attribute-visual-widget--list .tvc-attribute-item { border-width: 0 0 1px; border-radius: 0; background: transparent; }

.tvc-editor-notice { padding: 14px; border: 1px dashed var(--tvc-border,#e0e6e9); border-radius: 10px; color: var(--tvc-muted,#68727d); text-align: center; }

@media (max-width: 1024px) {
	.tvc-brand-grid { grid-template-columns: repeat(var(--tvc-brand-cols-t, 3), minmax(0, 1fr)) !important; }
	.tvc-spec-grid { grid-template-columns: repeat(var(--tvc-spec-cols-t, 2), minmax(0, 1fr)) !important; }
	.tvc-color-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (max-width: 767px) {
	.tvc-auto-catalog { padding: min(var(--tvc-panel-padding, 24px), 18px) !important; gap: min(var(--tvc-section-gap, 28px), 22px) !important; margin-bottom: 24px !important; }
	.tvc-brand-grid { grid-template-columns: repeat(var(--tvc-brand-cols-m, 2), minmax(0, 1fr)) !important; }
	.tvc-spec-grid { grid-template-columns: repeat(var(--tvc-spec-cols-m, 1), minmax(0, 1fr)) !important; }
	.tvc-color-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.tvc-brand-card { gap: 8px !important; }
	.tvc-brand-showcase--spotlight .tvc-brand-card--main { grid-column: 1 / -1 !important; }
	.tvc-specifications--list .tvc-spec-card { grid-template-columns: 1fr !important; gap: 7px !important; }
}
@media (max-width: 420px) {
	.tvc-brand-grid { grid-template-columns: 1fr !important; }
	.tvc-color-grid { grid-template-columns: 1fr 1fr !important; }
}
@media (prefers-reduced-motion: reduce) {
	.tvc-root *, .tvc-widget * { transition: none !important; animation: none !important; }
}
