/**
 * Bootstrap 5 ↔ WooCommerce bridge for Twenty Twenty-Four Child.
 * Depends on Bootstrap CSS already enqueued in pi/includ_js_css.php.
 */

/* ---------- Layout wrappers ---------- */
.wp-site-blocks,
.wp-site-blocks > .wp-block-template-part,
.wp-site-blocks > header,
.wp-site-blocks > footer,
.wp-site-blocks > main {
	width: 100%;
	max-width: 100%;
}

header.wp-block-template-part > .wp-block-group,
.wp-block-template-part > .wp-block-group.alignfull,
.wp-block-template-part > .wp-block-group.alignwide {
	width: 100%;
	max-width: 100%;
}

.wp-block-template-part > .wp-block-group.alignfull {
	padding-top: 1.75rem;
	padding-bottom: 1.75rem;
}

.wp-block-template-part .wp-block-group.alignwide > .wp-block-group:last-child {
	gap: 1.25rem 1.5rem;
	align-items: center;
}

.pi-classic-header-nav.wp-block-navigation,
.pi-classic-header-nav .wp-block-navigation__container {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	column-gap: 1.75rem;
	row-gap: 0.35rem;
	gap: 0.35rem 1.75rem;
	--wp--style--block-gap: 1.75rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.pi-classic-header-nav .wp-block-navigation__container > .wp-block-navigation-item {
	position: relative;
	padding: 0 0.65rem;
	margin: 0;
}

.pi-classic-header-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	padding: 0.45rem 0.15rem;
	color: inherit;
	text-decoration: none;
}

.pi-classic-header-nav .wp-block-navigation__submenu-icon {
	display: inline-flex;
	align-items: center;
	margin-left: 0.25rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
}

.pi-classic-header-nav .wp-block-navigation__submenu-container {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 20;
	min-width: 14rem;
	margin: 0;
	padding: 0.4rem 0;
	list-style: none;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
	opacity: 0;
	visibility: hidden;
}

.pi-classic-header-nav .has-child:hover > .wp-block-navigation__submenu-container,
.pi-classic-header-nav .has-child:focus-within > .wp-block-navigation__submenu-container {
	opacity: 1;
	visibility: visible;
}

.pi-classic-header-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: block;
	padding: 0.4rem 0.9rem;
	white-space: nowrap;
}

.ecommerce-main,
.wp-block-group.container.ecommerce-main {
	max-width: 1292px;
}

.ecommerce-main.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.wp-block-group.container.ecommerce-main.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: 100%;
}

.ttfc-single-product-grid {
	align-items: flex-start;
	margin-bottom: 2rem;
}

.ttfc-single-product-grid > .wp-block-column {
	min-width: 0;
}

@media (max-width: 781px) {
	.ttfc-single-product-grid > .wp-block-column {
		flex-basis: 100% !important;
	}
}

.woocommerce ul.products.row {
	display: flex;
	flex-wrap: wrap;
	float: none;
	width: 100%;
	margin-left: calc(var(--bs-gutter-x, 1.5rem) * -0.5);
	margin-right: calc(var(--bs-gutter-x, 1.5rem) * -0.5);
}

.woocommerce ul.products.row::before,
.woocommerce ul.products.row::after {
	display: none;
}

.woocommerce ul.products.row li.product,
.woocommerce-page ul.products.row li.product {
	float: none;
	clear: none;
	margin: 0;
	padding: 0 calc(var(--bs-gutter-x, 1.5rem) * 0.5) 1.5rem;
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.woocommerce ul.products.row li.product.first,
.woocommerce ul.products.row li.product.last,
.woocommerce-page ul.products.row li.product.first,
.woocommerce-page ul.products.row li.product.last {
	float: none;
	clear: none;
	margin-left: 0;
	margin-right: 0;
	width: inherit;
}

/* WooCommerce 22% widths lose to this; do not use width:auto (grows with title / w-100 button). */
.woocommerce ul.products.row > li.product.col-12 {
	flex: 0 0 auto;
	width: 100%;
}

.woocommerce ul.products.row > li.product.col-6 {
	flex: 0 0 auto;
	width: 50%;
}

@media (min-width: 576px) {
	.woocommerce ul.products.row > li.product.col-sm-6 {
		flex: 0 0 auto;
		width: 50%;
	}
}

@media (min-width: 768px) {
	.woocommerce ul.products.row > li.product.col-md-4 {
		flex: 0 0 auto;
		width: 33.33333333%;
	}

	.woocommerce ul.products.row > li.product.col-md-6 {
		flex: 0 0 auto;
		width: 50%;
	}
}

@media (min-width: 992px) {
	.woocommerce ul.products.row > li.product.col-lg-2 {
		flex: 0 0 auto;
		width: 16.66666667%;
	}

	.woocommerce ul.products.row > li.product.col-lg-4 {
		flex: 0 0 auto;
		width: 33.33333333%;
	}
}

@media (min-width: 1200px) {
	.woocommerce ul.products.row > li.product.col-xl-3 {
		flex: 0 0 auto;
		width: 25%;
	}
}

/* ---------- Product tile (shop grid only — not Kadence Splide) ---------- */
.woocommerce ul.products.row li.product a.woocommerce-LoopProduct-link,
.woocommerce ul.products.row li.product a.woocommerce-loop-product__link {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
	text-decoration: none;
}

.woocommerce ul.products li.product a,
.woocommerce ul.products li.product a .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	color: var(--wp--preset--color--contrast, #111);
	text-decoration: none;
}

.woocommerce ul.products li.product a:hover,
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title,
.woocommerce ul.products li.product a:focus {
	color: #0071c5;
	text-decoration: none;
}

.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product a.button:hover,
.woocommerce ul.products li.product a.button:focus,
.woocommerce ul.products li.product a.btn,
.woocommerce ul.products li.product a.added_to_cart {
	color: #fff;
}

.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img,
.kt-blocks-product-carousel-block li.product img,
.splide__slide.product img {
	width: auto !important;
	max-width: 100%;
	height: auto !important;
	max-height: 220px;
	aspect-ratio: auto;
	object-fit: contain !important;
	object-position: center;
	margin: 0 auto 0.75rem;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	flex-shrink: 0;
	align-self: center;
	display: block;
}

.woocommerce ul.products.row li.product .woocommerce-loop-product__title {
	font-size: 1rem;
	font-weight: 600;
	padding: 0;
	margin: 0 0 0.35rem;
	line-height: 1.35;
	flex: 1 1 auto;
}

.woocommerce ul.products li.product .price {
	display: block;
	margin: 0 0 0.75rem;
	color: var(--wp--preset--color--contrast, #111);
}

.woocommerce ul.products.row li.product .button,
.woocommerce ul.products.row li.product .btn,
.woocommerce ul.products.row li.product .added_to_cart {
	margin-top: auto;
}

/* Kadence carousel: Splide owns slide size — undo Bootstrap col / h-100 */
.kt-blocks-product-carousel-block li.product,
.kt-blocks-product-carousel-block .splide__slide.product {
	height: auto !important;
	max-height: none;
	display: flex;
	flex-direction: column;
}

.kt-blocks-product-carousel-block .splide__slide.product.h-100,
.kt-blocks-product-carousel-block .splide__slide.product[class*="col-"] {
	height: auto !important;
	width: auto !important;
	max-width: 100%;
	flex: 0 0 auto;
}

.woocommerce span.onsale {
	background-color: var(--bs-danger);
	color: #fff;
	border-radius: var(--bs-border-radius-pill);
	min-height: auto;
	line-height: 1.2;
	padding: 0.25rem 0.6rem;
	font-size: 0.75rem;
	font-weight: 600;
}

/* ---------- Buttons ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce a.btn-primary,
.woocommerce .btn-primary,
.single_add_to_cart_button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	--bs-btn-color: #fff;
	--bs-btn-bg: #0071c5;
	--bs-btn-border-color: #0071c5;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #005a9e;
	--bs-btn-hover-border-color: #005a9e;
	display: inline-block;
	font-weight: 500;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	vertical-align: middle;
	cursor: pointer;
	border: var(--bs-border-width) solid #0071c5;
	border-radius: var(--bs-border-radius);
	padding: 0.5rem 1rem;
	background-color: #0071c5;
	color: #fff;
	transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.btn-primary:hover,
.woocommerce .btn-primary:hover,
.single_add_to_cart_button:hover {
	background-color: #005a9e;
	border-color: #005a9e;
	color: #fff;
}

.woocommerce a.button.disabled,
.woocommerce a.button:disabled,
.woocommerce button.button:disabled {
	opacity: 0.65;
	pointer-events: none;
}

/* ---------- Notices ---------- */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-message {
	background: var(--bs-success-bg-subtle);
	color: var(--bs-success-text-emphasis);
	border: var(--bs-border-width) solid var(--bs-success-border-subtle);
	border-radius: var(--bs-border-radius);
	padding: 1rem 1.25rem;
	margin-bottom: 1rem;
	list-style: none;
}

.woocommerce-info {
	background: var(--bs-info-bg-subtle);
	color: var(--bs-info-text-emphasis);
	border: var(--bs-border-width) solid var(--bs-info-border-subtle);
	border-radius: var(--bs-border-radius);
	padding: 1rem 1.25rem;
	margin-bottom: 1rem;
}

.woocommerce-error,
.woocommerce-NoticeGroup .woocommerce-error {
	background: var(--bs-danger-bg-subtle);
	color: var(--bs-danger-text-emphasis);
	border: var(--bs-border-width) solid var(--bs-danger-border-subtle);
	border-radius: var(--bs-border-radius);
	padding: 1rem 1.25rem;
	margin-bottom: 1rem;
	list-style: none;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	display: none;
}

/* ---------- Forms ---------- */
.woocommerce form .form-row {
	padding: 0;
	margin: 0 0 1rem;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .quantity .qty,
.woocommerce div.product form.cart .variations select,
.woocommerce-page form .input-text {
	display: block;
	width: 100%;
	padding: 0.375rem 0.75rem;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--bs-body-color);
	background-color: var(--bs-body-bg);
	border: var(--bs-border-width) solid var(--bs-border-color);
	border-radius: var(--bs-border-radius);
}

.woocommerce .quantity .qty {
	width: 5.5rem;
}

.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0.75rem;
	margin-top: 1rem;
}

.woocommerce table.variations {
	width: 100%;
	margin-bottom: 1rem;
}

.woocommerce table.variations td.label {
	padding-right: 1rem;
	vertical-align: middle;
}

/* ---------- Single product ---------- */
.ttfc-single-product {
	margin-bottom: 2rem;
}

/* Blockified template already has wp-block-columns.
   Leftover Bootstrap cols must not shrink the summary (was ~250×22600px). */
.wp-block-columns .ttfc-single-product.row,
.wp-block-column .ttfc-single-product.row {
	display: block;
	margin-left: 0;
	margin-right: 0;
}

.wp-block-column .ttfc-product-summary,
.wp-block-column .ttfc-product-gallery,
.wp-block-column .col-lg-6.ttfc-product-summary,
.wp-block-column .col-lg-6.ttfc-product-gallery {
	width: 100% !important;
	max-width: 100% !important;
	flex: 0 0 100% !important;
	padding-left: 0;
	padding-right: 0;
}

.wp-block-column .ttfc-product-summary h1,
.wp-block-column .ttfc-product-summary .product_title {
	word-break: normal;
	overflow-wrap: break-word;
}

.woocommerce div.product div.images img {
	border-radius: var(--bs-border-radius);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--bs-body-color);
	font-size: 1.5rem;
}

.woocommerce div.product .woocommerce-tabs {
	margin-top: 2rem;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0 0 1rem;
	border-bottom: var(--bs-border-width) solid var(--bs-border-color);
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	list-style: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	border: 0;
	background: transparent;
	margin: 0;
	padding: 0;
	border-radius: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 0.5rem 1rem;
	color: var(--bs-body-color);
	text-decoration: none;
	border-bottom: 2px solid transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	border-bottom-color: var(--bs-primary);
	font-weight: 600;
}

.woocommerce-tabs .panel {
	background: transparent;
	border: 0;
	padding: 0;
}

/* ---------- Breadcrumb ---------- */
.woocommerce .woocommerce-breadcrumb,
.woocommerce-breadcrumb {
	font-size: 0.875rem;
}

.woocommerce-breadcrumb .breadcrumb {
	--bs-breadcrumb-divider: "/";
}

.woocommerce-breadcrumb .breadcrumb-item:last-child {
	color: var(--bs-secondary-color);
}

/* ---------- Cart / checkout tables ---------- */
.woocommerce table.shop_table {
	width: 100%;
	border: var(--bs-border-width) solid var(--bs-border-color);
	border-radius: var(--bs-border-radius);
	border-collapse: separate;
	border-spacing: 0;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 0.75rem;
	border-bottom: var(--bs-border-width) solid var(--bs-border-color);
}

.woocommerce-cart .cart-collaterals,
.woocommerce-checkout #order_review {
	background: var(--bs-tertiary-bg);
	border-radius: var(--bs-border-radius);
	padding: 1.25rem;
}

.woocommerce-checkout .col2-set {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
	flex: 1 1 280px;
	float: none;
	width: auto;
}

/* ---------- Pagination ---------- */
.woocommerce nav.woocommerce-pagination ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.25rem;
	border: 0;
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
	float: none;
	display: inline-flex;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: block;
	padding: 0.375rem 0.75rem;
	border: var(--bs-border-width) solid var(--bs-border-color);
	border-radius: var(--bs-border-radius);
	color: var(--bs-body-color);
	background: var(--bs-body-bg);
	text-decoration: none;
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--bs-primary);
	border-color: var(--bs-primary);
	color: #fff;
}

/* ---------- Result count / ordering ---------- */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	margin-bottom: 1rem;
}

.woocommerce .woocommerce-ordering select {
	display: inline-block;
	width: auto;
	padding: 0.375rem 2rem 0.375rem 0.75rem;
	border: var(--bs-border-width) solid var(--bs-border-color);
	border-radius: var(--bs-border-radius);
	background-color: var(--bs-body-bg);
	color: var(--bs-body-color);
}

.woocommerce-products-header {
	margin-bottom: 1.5rem;
}

/* ---------- Cable gland B2B filters (sidebar + offcanvas) ---------- */
.ttfc-gland-layout,
.ttfc-gland-sidebar {
	--ttfc-gland-brand: #0071c5;
	--ttfc-gland-brand-hover: #005a9e;
	--ttfc-gland-ink: #3d434a;
	--ttfc-gland-muted: #6b727a;
	--ttfc-gland-line: #e3e6ea;
	--ttfc-gland-wash: #f4f5f7;
	--ttfc-gland-white: #fff;
}

.ttfc-gland-layout {
	align-items: flex-start;
	margin-bottom: 2rem;
	color: var(--ttfc-gland-ink);
}

.ttfc-gland-sidebar-col {
	min-width: 0;
	overflow: visible;
}

.ttfc-gland-sidebar {
	--bs-offcanvas-width: 20rem;
	--bs-offcanvas-bg: var(--ttfc-gland-white);
	--bs-offcanvas-color: var(--ttfc-gland-ink);
	color: var(--ttfc-gland-ink);
}

.ttfc-gland-filters {
	display: flex;
	flex-direction: column;
	gap: 1.15rem;
	width: 100%;
}

.ttfc-gland-filters__head {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--ttfc-gland-line);
}

.ttfc-gland-filters__head-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
}

.ttfc-gland-filters__title {
	margin: 0;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ttfc-gland-ink);
}

.ttfc-gland-filters__reset {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ttfc-gland-muted);
	text-decoration: none;
	background: none;
	border: 0;
	padding: 0;
}

.ttfc-gland-filters__reset:hover {
	color: var(--ttfc-gland-brand);
	text-decoration: none;
}

.ttfc-gland-filters__spec {
	margin: 0;
	padding: 0.45rem 0.55rem;
	background: var(--ttfc-gland-wash);
	border: 1px solid var(--ttfc-gland-line);
	color: var(--ttfc-gland-ink);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
	font-size: 0.72rem;
	line-height: 1.45;
	min-height: 2.4rem;
}

.ttfc-gland-filters__spec.is-empty {
	color: var(--ttfc-gland-muted);
	font-style: normal;
}

.ttfc-gland-filters__group {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.ttfc-gland-filters__group legend {
	float: none;
	width: auto;
	margin: 0 0 0.45rem;
	padding: 0;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1.2;
	color: var(--ttfc-gland-ink);
}

.ttfc-filter-legend {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	width: 100%;
}

.ttfc-filter-legend__label {
	min-width: 0;
}

.ttfc-filter-help {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.15rem;
	height: 1.15rem;
	margin: 0;
	padding: 0;
	border: 1px solid var(--ttfc-gland-brand, #0071c5);
	border-radius: 50%;
	background: var(--ttfc-gland-white, #fff);
	color: var(--ttfc-gland-brand, #0071c5);
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
}

.ttfc-filter-help:hover,
.ttfc-filter-help[aria-expanded="true"] {
	background: var(--ttfc-gland-brand, #0071c5);
	color: #fff;
}

.ttfc-filter-help__panel {
	margin: -0.2rem 0 0.55rem;
}

.ttfc-filter-help__card {
	padding: 0.65rem 0.7rem 0.7rem;
	border: 1px solid var(--ttfc-gland-line, #e3e6ea);
	border-left: 3px solid var(--ttfc-gland-brand, #0071c5);
	background: var(--ttfc-gland-wash, #f4f5f7);
}

.ttfc-filter-help__media {
	margin: 0 0 0.55rem;
}

.ttfc-filter-help__media img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid var(--ttfc-gland-line, #e3e6ea);
	background: #fff;
}

.ttfc-filter-help__title {
	margin: 0 0 0.25rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ttfc-gland-ink, #3d434a);
}

.ttfc-filter-help__body {
	margin: 0;
	font-size: 0.8rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	line-height: 1.45;
	color: var(--ttfc-gland-ink, #3d434a);
}

.ttfc-filter-help__body + .ttfc-filter-help__body {
	margin-top: 0.55rem;
}

.ttfc-gland-checks {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.ttfc-gland-check {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.3;
	color: var(--ttfc-gland-ink);
	cursor: pointer;
}

.ttfc-gland-check input {
	width: 1rem;
	height: 1rem;
	margin: 0.15rem 0 0;
	flex: 0 0 auto;
	accent-color: var(--ttfc-gland-brand);
}

.ttfc-gland-pills,
.ttfc-gland-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
}

.ttfc-gland-pills--segment {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	border: 1px solid var(--ttfc-gland-line);
	background: var(--ttfc-gland-white);
}

.ttfc-gland-pills--segment .ttfc-gland-pill {
	min-width: 0;
}

.ttfc-gland-pills--segment .ttfc-gland-pill span {
	width: 100%;
	border: 0;
	border-radius: 0;
	border-right: 1px solid var(--ttfc-gland-line);
	padding: 0.4rem 0.4rem;
	font-size: 0.75rem;
	font-weight: 650;
	letter-spacing: 0.02em;
}

.ttfc-gland-pills--segment .ttfc-gland-pill:last-child span {
	border-right: 0;
}

.ttfc-gland-pills--segment-3 {
	grid-template-columns: 1fr 1fr 1fr;
}

.ttfc-gland-pills--segment-4 {
	grid-template-columns: 1fr 1fr 1fr 1fr;
}

.ttfc-gland-pills--segment-4 .ttfc-gland-pill span {
	padding: 0.4rem 0.15rem;
	font-size: 0.7rem;
}

.ttfc-gland-pills--segment-2x2 {
	grid-template-columns: 1fr 1fr;
}

.ttfc-gland-pills--segment-2x2 .ttfc-gland-pill:nth-child(2n) span {
	border-right: 0;
}

.ttfc-gland-pills--segment-2x2 .ttfc-gland-pill:nth-child(-n+2) span {
	border-bottom: 1px solid var(--ttfc-gland-line);
}

a.ttfc-gland-pill,
span.ttfc-gland-pill {
	text-decoration: none;
	color: inherit;
}

a.ttfc-gland-pill.is-current,
span.ttfc-gland-pill.is-current {
	pointer-events: none;
	cursor: default;
}

a.ttfc-gland-pill.is-current span,
span.ttfc-gland-pill.is-current span,
a.ttfc-gland-pill[aria-current="page"] span,
span.ttfc-gland-pill[aria-current="page"] span {
	background: var(--ttfc-gland-brand);
	border-color: var(--ttfc-gland-brand);
	color: var(--ttfc-gland-white);
}

.ttfc-gland-pills--segment .ttfc-lighting-terminal {
	min-width: 0;
	display: block;
}

.ttfc-gland-pills--segment .ttfc-lighting-terminal .ttfc-gland-pill,
.ttfc-gland-pills--segment .ttfc-lighting-terminal .ttfc-gland-pill span {
	width: 100%;
}

.ttfc-gland-pills--segment .ttfc-lighting-terminal[hidden] {
	display: none;
}

.ttfc-gland-pills--segment .ttfc-plugs-type,
.ttfc-gland-pills--segment .ttfc-plugs-current,
.ttfc-gland-pills--segment .ttfc-plugs-poles {
	min-width: 0;
	display: block;
}

.ttfc-gland-pills--segment .ttfc-plugs-type .ttfc-gland-pill,
.ttfc-gland-pills--segment .ttfc-plugs-type .ttfc-gland-pill span,
.ttfc-gland-pills--segment .ttfc-plugs-current .ttfc-gland-pill,
.ttfc-gland-pills--segment .ttfc-plugs-current .ttfc-gland-pill span,
.ttfc-gland-pills--segment .ttfc-plugs-poles .ttfc-gland-pill,
.ttfc-gland-pills--segment .ttfc-plugs-poles .ttfc-gland-pill span {
	width: 100%;
}

.ttfc-gland-pills--segment .ttfc-plugs-type .ttfc-gland-pill span,
.ttfc-gland-pills--segment .ttfc-plugs-current .ttfc-gland-pill span,
.ttfc-gland-pills--segment .ttfc-plugs-poles .ttfc-gland-pill span {
	border-right: 1px solid var(--ttfc-gland-line);
}

.ttfc-gland-pills--segment .ttfc-plugs-type:last-child .ttfc-gland-pill span,
.ttfc-gland-pills--segment .ttfc-plugs-current:last-child .ttfc-gland-pill span,
.ttfc-gland-pills--segment .ttfc-plugs-poles:last-child .ttfc-gland-pill span {
	border-right: 0;
}

.ttfc-gland-pills--segment .ttfc-plugs-type[hidden],
.ttfc-gland-pills--segment .ttfc-plugs-current[hidden],
.ttfc-gland-pills--segment .ttfc-plugs-poles[hidden],
.ttfc-plugs-pe[hidden],
.ttfc-plugs-aux[hidden] {
	display: none;
}

.ttfc-plugs-voltages .ttfc-gland-chip span {
	justify-content: flex-start;
	gap: 0.4rem;
	padding-left: 0.45rem;
	white-space: nowrap;
}

.ttfc-plugs-swatch {
	flex: 0 0 auto;
	width: 0.7rem;
	height: 0.7rem;
	border-radius: 50%;
	border: 1px solid rgba(0, 0, 0, 0.28);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.15);
}

.ttfc-plugs-swatch.is-light {
	border-color: rgba(0, 0, 0, 0.4);
}

.ttfc-gland-chip input:checked + span .ttfc-plugs-swatch {
	border-color: rgba(255, 255, 255, 0.85);
}

.ttfc-lighting-range-ht[hidden],
.ttfc-lighting-range-lt[hidden] {
	display: none;
}

.ttfc-gland-pill,
.ttfc-gland-chip {
	display: inline-flex;
	margin: 0;
	cursor: pointer;
}

.ttfc-gland-pill input,
.ttfc-gland-chip input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.ttfc-gland-pill span,
.ttfc-gland-chip span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--ttfc-gland-line);
	background: var(--ttfc-gland-white);
	color: var(--ttfc-gland-ink);
	line-height: 1.2;
	border-radius: 2px;
	user-select: none;
	transition: background-color 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}

.ttfc-gland-pill span {
	padding: 0.32rem 0.7rem;
	font-size: 0.8rem;
}

.ttfc-gland-chips {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.28rem;
}

.ttfc-gland-chip {
	min-width: 0;
}

.ttfc-gland-chip span {
	width: 100%;
	min-width: 0;
	padding: 0.32rem 0.2rem;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
	font-size: 0.7rem;
	font-weight: 650;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.ttfc-gland-chips--glands {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ttfc-gland-chips--glands .ttfc-gland-chip span {
	white-space: normal;
	text-align: center;
	line-height: 1.25;
	padding: 0.38rem 0.35rem;
	font-size: 0.68rem;
}

.ttfc-gland-size-sets {
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
}

.ttfc-gland-size-set[hidden] {
	display: none;
}

.ttfc-gland-size-set__label {
	display: block;
	margin: 0 0 0.35rem;
	font-size: 0.72rem;
	font-weight: 650;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--ttfc-gland-muted);
}

.ttfc-gland-size-sets:has(.ttfc-gland-size-set[hidden]) .ttfc-gland-size-set__label {
	display: none;
}

.ttfc-gland-pill:hover span,
.ttfc-gland-chip:hover span {
	border-color: var(--ttfc-gland-brand);
	color: var(--ttfc-gland-brand);
}

.ttfc-gland-pill input:checked + span,
.ttfc-gland-chip input:checked + span {
	background: var(--ttfc-gland-brand);
	border-color: var(--ttfc-gland-brand);
	color: var(--ttfc-gland-white);
}

.ttfc-gland-pill input:focus-visible + span,
.ttfc-gland-chip input:focus-visible + span,
.ttfc-gland-check input:focus-visible {
	outline: 2px solid var(--ttfc-gland-brand);
	outline-offset: 2px;
}

.ttfc-gland-od {
	max-width: 100%;
}

.ttfc-gland-od .form-control {
	font-variant-numeric: tabular-nums;
	color: var(--ttfc-gland-ink);
	background: var(--ttfc-gland-white);
	border-color: var(--ttfc-gland-line);
	box-shadow: none;
}

.ttfc-gland-od .form-control:focus {
	border-color: var(--ttfc-gland-brand);
	box-shadow: 0 0 0 0.2rem rgba(0, 113, 197, 0.15);
}

.ttfc-gland-od .input-group-text {
	color: var(--ttfc-gland-muted);
	background: var(--ttfc-gland-wash);
	border-color: var(--ttfc-gland-line);
}

.ttfc-gland-od-hint {
	margin: 0.4rem 0 0;
	font-size: 0.68rem;
	line-height: 1.35;
	color: var(--ttfc-gland-muted);
}

.ttfc-gland-filters__apply {
	margin-top: 0.25rem;
	padding: 0.55rem 0.75rem;
	border-radius: 2px;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #fff;
	background: var(--ttfc-gland-brand);
	border-color: var(--ttfc-gland-brand);
	--bs-btn-color: #fff;
	--bs-btn-bg: var(--ttfc-gland-brand);
	--bs-btn-border-color: var(--ttfc-gland-brand);
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: var(--ttfc-gland-brand-hover);
	--bs-btn-hover-border-color: var(--ttfc-gland-brand-hover);
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: var(--ttfc-gland-brand-hover);
	--bs-btn-active-border-color: var(--ttfc-gland-brand-hover);
	--bs-btn-border-radius: 2px;
	--bs-btn-focus-shadow-rgb: 0, 113, 197;
}

.ttfc-gland-filters__apply:hover,
.ttfc-gland-filters__apply:focus {
	color: #fff;
	background: var(--ttfc-gland-brand-hover);
	border-color: var(--ttfc-gland-brand-hover);
}

.ttfc-gland-filter-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 0.75rem 1rem;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ttfc-gland-ink);
	background: var(--ttfc-gland-white);
	border: 1px solid var(--ttfc-gland-line);
	border-left: 3px solid var(--ttfc-gland-brand);
	border-radius: 0;
}

.ttfc-gland-filter-toggle::after {
	content: "";
	width: 0.42rem;
	height: 0.42rem;
	margin-top: -0.15rem;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
}

.ttfc-gland-filter-toggle:hover,
.ttfc-gland-filter-toggle:focus {
	color: var(--ttfc-gland-brand);
	background: var(--ttfc-gland-white);
	border-color: var(--ttfc-gland-brand);
	border-left-color: var(--ttfc-gland-brand);
}

.ttfc-gland-active {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 0 0 1rem;
}

.ttfc-gland-active__chip {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	padding: 0.2rem 0.45rem 0.2rem 0.45rem;
	border: 1px solid var(--ttfc-gland-line);
	border-radius: 2px;
	background: var(--ttfc-gland-wash);
	color: var(--ttfc-gland-ink);
	font-size: 0.75rem;
	line-height: 1.2;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}

.ttfc-gland-active__param {
	color: var(--ttfc-gland-muted);
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.ttfc-gland-active__chip:hover {
	border-color: var(--ttfc-gland-brand);
	color: var(--ttfc-gland-brand);
	background: var(--ttfc-gland-white);
}

.ttfc-gland-active__x {
	font-size: 0.95rem;
	line-height: 1;
	opacity: 0.55;
}

.ttfc-gland-results {
	position: relative;
	min-height: 4rem;
}

.ttfc-gland-results.is-loading,
.ttfc-gland-sidebar.is-loading {
	opacity: 0.55;
	pointer-events: none;
}

.ttfc-gland-archive .woocommerce-products-header,
.ttfc-lighting-archive .woocommerce-products-header,
.ttfc-motor-archive .woocommerce-products-header,
.ttfc-plugs-archive .woocommerce-products-header {
	margin-bottom: 1.25rem;
}

.ttfc-gland-archive .ttfc-shop-toolbar,
.ttfc-lighting-archive .ttfc-shop-toolbar,
.ttfc-motor-archive .ttfc-shop-toolbar,
.ttfc-plugs-archive .ttfc-shop-toolbar {
	width: 100%;
}

.ttfc-gland-archive .woocommerce-result-count,
.ttfc-lighting-archive .woocommerce-result-count,
.ttfc-motor-archive .woocommerce-result-count,
.ttfc-plugs-archive .woocommerce-result-count {
	margin: 0;
	font-size: 0.9rem;
	color: var(--ttfc-gland-muted, #6b727a);
}

.ttfc-gland-archive .woocommerce-ordering,
.ttfc-lighting-archive .woocommerce-ordering,
.ttfc-motor-archive .woocommerce-ordering,
.ttfc-plugs-archive .woocommerce-ordering {
	display: none;
}

.ttfc-gland-archive .woocommerce nav.woocommerce-pagination ul li span.current,
.ttfc-gland-archive .woocommerce nav.woocommerce-pagination ul li a:hover,
.ttfc-lighting-archive .woocommerce nav.woocommerce-pagination ul li span.current,
.ttfc-lighting-archive .woocommerce nav.woocommerce-pagination ul li a:hover,
.ttfc-motor-archive .woocommerce nav.woocommerce-pagination ul li span.current,
.ttfc-motor-archive .woocommerce nav.woocommerce-pagination ul li a:hover,
.ttfc-plugs-archive .woocommerce nav.woocommerce-pagination ul li span.current,
.ttfc-plugs-archive .woocommerce nav.woocommerce-pagination ul li a:hover {
	background: #0071c5;
	border-color: #0071c5;
	color: #fff;
}

.ttfc-gland-archive .woocommerce nav.woocommerce-pagination ul,
.ttfc-lighting-archive .woocommerce nav.woocommerce-pagination ul,
.ttfc-motor-archive .woocommerce nav.woocommerce-pagination ul,
.ttfc-plugs-archive .woocommerce nav.woocommerce-pagination ul {
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
}

.ttfc-gland-archive .woocommerce nav.woocommerce-pagination .prev,
.ttfc-gland-archive .woocommerce nav.woocommerce-pagination .next,
.ttfc-lighting-archive .woocommerce nav.woocommerce-pagination .prev,
.ttfc-lighting-archive .woocommerce nav.woocommerce-pagination .next,
.ttfc-motor-archive .woocommerce nav.woocommerce-pagination .prev,
.ttfc-motor-archive .woocommerce nav.woocommerce-pagination .next,
.ttfc-plugs-archive .woocommerce nav.woocommerce-pagination .prev,
.ttfc-plugs-archive .woocommerce nav.woocommerce-pagination .next {
	white-space: nowrap;
}

@media (min-width: 992px) {
	.ttfc-gland-sidebar {
		position: static;
		height: auto;
		max-height: none;
		overflow: visible;
	}

	.ttfc-gland-sidebar .offcanvas-body {
		padding: 0;
		height: auto;
		overflow: visible;
	}

	.ttfc-gland-filters {
		padding: 0.95rem 1rem 1.1rem;
		background: var(--ttfc-gland-white);
		border: 1px solid var(--ttfc-gland-line);
		border-left: 3px solid var(--ttfc-gland-brand);
		border-radius: 0;
	}
}

@media (max-width: 991.98px) {
	.ttfc-gland-sidebar-col {
		width: 0;
		max-width: 0;
		padding: 0;
		margin: 0;
		overflow: visible;
	}

	.ttfc-gland-sidebar {
		--bs-offcanvas-width: min(22rem, 92vw);
	}

	.ttfc-gland-sidebar .offcanvas-body {
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.ttfc-gland-filters {
		padding-bottom: 1rem;
	}

	.ttfc-gland-archive .ttfc-shop-toolbar,
	.ttfc-lighting-archive .ttfc-shop-toolbar,
	.ttfc-motor-archive .ttfc-shop-toolbar,
	.ttfc-plugs-archive .ttfc-shop-toolbar {
		flex-direction: column;
		align-items: stretch;
	}
}

/* ---------- Hero pattern ---------- */
.ttfc-hero {
	background: var(--bs-tertiary-bg);
	border-radius: var(--bs-border-radius-lg, 0.5rem);
}

.ttfc-feature-icon {
	width: 2.5rem;
	height: 2.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--bs-primary);
	color: #fff;
	font-weight: 700;
}

@media (max-width: 767.98px) {
	.woocommerce div.product form.cart {
		flex-direction: column;
		align-items: stretch;
	}

	.woocommerce .quantity .qty {
		width: 100%;
	}
}
