
.ccte-catalog,
.ccte-article-archive,
.ccte-default-template,
.ccte-taxonomy-router {
	--ccte-navy:#0d1b2a;
	--ccte-red:#e23b43;
	--ccte-text:#1d2228;
	--ccte-muted:#6e747c;
	--ccte-line:#e6e8eb;
	--ccte-soft:#f6f7f8;
	color:var(--ccte-text);
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}

.ccte-catalog *,
.ccte-catalog *::before,
.ccte-catalog *::after { box-sizing:border-box; }

.ccte-taxonomy-router {
	padding:48px 20px 72px;
}

.ccte-taxonomy-router__inner {
	width:min(1200px,100%);
	margin:0 auto;
}

.ccte-taxonomy-header {
	padding-bottom:28px;
	margin-bottom:28px;
	border-bottom:1px solid var(--ccte-line);
}

.ccte-taxonomy-header h1 {
	margin:8px 0 0;
	font-size:clamp(34px,4vw,52px);
	line-height:1.08;
}

.ccte-taxonomy-header__description {
	max-width:760px;
	margin-top:14px;
	color:var(--ccte-muted);
	font-size:15px;
	line-height:1.7;
}

.ccte-eyebrow {
	color:var(--ccte-red);
	font-size:10px;
	font-weight:800;
	letter-spacing:.11em;
	text-transform:uppercase;
}

.ccte-product-filter {
	display:grid;
	grid-template-columns:460px 220px 190px;
	justify-content:start;
	gap:12px;
	align-items:end;
	padding:20px;
	margin-bottom:28px;
	background:var(--ccte-soft);
	border:1px solid #eef0f2;
}

.ccte-filter-field label {
	display:block;
	margin-bottom:7px;
	font-size:10px;
	font-weight:800;
	letter-spacing:.08em;
	text-transform:uppercase;
}

.ccte-filter-field input,
.ccte-filter-field select,
.ccte-article-filter input,
.ccte-article-filter select {
	width:100%;
	height:44px;
	padding:0 13px;
	border:1px solid #dfe2e6;
	border-radius:0;
	background:#fff;
	font:inherit;
	font-size:14px;
}

/*
 * Search input + button are intentionally a flex row.
 * The extra selector specificity and !important rules protect this compact
 * control from Astra / Elementor button and form layout rules.
 */
.ccte-catalog .ccte-product-filter .ccte-search-control {
	display:flex !important;
	flex-direction:row !important;
	flex-wrap:nowrap !important;
	align-items:stretch !important;
	gap:0 !important;
	width:100% !important;
	max-width:100% !important;
}

.ccte-catalog .ccte-product-filter .ccte-search-control > input[type="search"] {
	display:block;
	flex:1 1 auto !important;
	min-width:0 !important;
	width:auto !important;
	max-width:none !important;
	height:44px !important;
	margin:0 !important;
	border-right:0 !important;
	border-radius:0 !important;
}

.ccte-catalog .ccte-product-filter .ccte-search-control > button[type="submit"] {
	display:inline-flex !important;
	flex:0 0 104px !important;
	align-items:center !important;
	justify-content:center !important;
	width:104px !important;
	min-width:104px !important;
	max-width:104px !important;
	height:44px !important;
	min-height:44px !important;
	margin:0 !important;
	padding:0 12px !important;
	border:1px solid var(--ccte-red) !important;
	border-radius:0 !important;
	background:var(--ccte-red) !important;
	color:#fff !important;
	font:inherit;
	font-size:12px !important;
	font-weight:800 !important;
	line-height:1 !important;
	text-transform:uppercase;
	white-space:nowrap;
	cursor:pointer;
}


.ccte-catalog-layout {
	display:grid;
	grid-template-columns:230px minmax(0,1fr);
	gap:34px;
	align-items:start;
}

.ccte-product-sidebar h2 {
	margin:8px 0 18px;
	font-size:25px;
	line-height:1.15;
}

.ccte-category-list { border-top:1px solid var(--ccte-line); }

.ccte-category-list a {
	display:flex;
	justify-content:space-between;
	gap:10px;
	padding:13px 0;
	border-bottom:1px solid var(--ccte-line);
	color:#333941;
	font-size:14px;
	text-decoration:none;
}

.ccte-category-list a.is-active {
	color:var(--ccte-red);
	font-weight:700;
}

/*
 * Shared category navigation. Archive pages use it as the compact mobile
 * replacement for the desktop sidebar; single-product pages reuse the same
 * crawlable category links immediately before related products.
 */
.ccte-category-navigation,
.ccte-category-navigation *,
.ccte-category-navigation *::before,
.ccte-category-navigation *::after {
	box-sizing:border-box;
}

.ccte-category-navigation {
	width:100%;
	margin:0 0 26px;
	border:1px solid var(--ccte-line);
	background:#fff;
}

.ccte-category-navigation--archive {
	display:none;
}

.ccte-category-navigation--single {
	margin:34px 0 0;
}

.ccte-category-navigation summary {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:18px;
	min-height:58px;
	padding:11px 16px;
	cursor:pointer;
	list-style:none;
	touch-action:manipulation;
}

.ccte-category-navigation summary::-webkit-details-marker {
	display:none;
}

.ccte-category-navigation__summary-text {
	display:grid;
	gap:3px;
	min-width:0;
}

.ccte-category-navigation__eyebrow {
	color:var(--ccte-red);
	font-size:9px;
	font-weight:800;
	letter-spacing:.1em;
	line-height:1.3;
	text-transform:uppercase;
}

.ccte-category-navigation__summary-text strong {
	overflow:hidden;
	color:var(--ccte-text);
	font-size:15px;
	line-height:1.3;
	text-overflow:ellipsis;
	white-space:nowrap;
}

.ccte-category-navigation__icon {
	flex:0 0 auto;
	color:var(--ccte-text);
	font-size:24px;
	line-height:1;
	transition:transform .2s ease;
}

.ccte-category-navigation[open] .ccte-category-navigation__icon {
	transform:rotate(180deg);
}

.ccte-category-navigation[open] summary {
	border-bottom:1px solid var(--ccte-line);
}

.ccte-category-navigation__links {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	padding:8px;
}

.ccte-category-navigation__links a {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	min-height:46px;
	padding:10px 12px;
	border-left:3px solid transparent;
	color:#333941;
	font-size:14px;
	line-height:1.35;
	text-decoration:none;
}

.ccte-category-navigation__links a:hover,
.ccte-category-navigation__links a:focus-visible {
	background:var(--ccte-soft);
}

.ccte-category-navigation__links a:focus-visible {
	outline:2px solid var(--ccte-red);
	outline-offset:-2px;
}

.ccte-category-navigation__links a.is-active {
	border-left-color:var(--ccte-red);
	background:var(--ccte-soft);
	color:var(--ccte-red);
	font-weight:700;
}

.ccte-category-navigation--single + .ccte-related-products {
	margin-top:34px;
}

.ccte-results__head {
	display:flex;
	justify-content:space-between;
	align-items:end;
	gap:20px;
	padding-bottom:16px;
	margin-bottom:20px;
	border-bottom:1px solid var(--ccte-line);
}

.ccte-results__head h2 {
	margin:7px 0 0;
	font-size:30px;
}

.ccte-product-grid {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:34px 22px;
}

.ccte-related-products__grid {
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:34px 22px;
}

.ccte-related-products__grid--3 {
	grid-template-columns:repeat(3,minmax(0,1fr));
}

.ccte-card__media {
	display:block;
	overflow:hidden;
	aspect-ratio:4/3;
	background:#f1f2f3;
}

.ccte-card__image,
.ccte-card__placeholder {
	display:block;
	width:100%;
	height:100% !important;
	max-height:none !important;
	object-fit:cover;
	transition:transform .35s ease;
}

.ccte-card:hover .ccte-card__image { transform:scale(1.025); }

.ccte-card__content { padding-top:10px; }

.ccte-card__title {
	margin:6px 0;
	font-size:18px;
	line-height:1.25;
}

.ccte-card__title a,
.ccte-card__link {
	color:inherit;
	text-decoration:none;
}

.ccte-card__code {
	margin-bottom:7px;
	color:var(--ccte-muted);
	font-size:12px;
}

.ccte-card__summary {
	display:-webkit-box;
	overflow:hidden;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:2;
	margin:0 0 10px;
	color:var(--ccte-muted);
	font-size:13px;
	line-height:1.55;
}

.ccte-card__link {
	color:#143653;
	font-size:13px;
	font-weight:700;
}

.ccte-pagination {
	display:flex;
	justify-content:center;
	gap:8px;
	flex-wrap:wrap;
	width:100%;
	margin:36px 0 0;
	clear:both;
}

.ccte-pagination .page-numbers {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:38px;
	height:38px;
	padding:0 9px;
	border:1px solid var(--ccte-line);
	color:inherit;
	text-decoration:none;
}

.ccte-pagination .dots {
	min-width:24px;
	padding:0 3px;
	border-color:transparent;
}

.ccte-pagination .current {
	background:var(--ccte-navy);
	color:#fff;
}

.ccte-empty {
	padding:40px;
	background:var(--ccte-soft);
	text-align:center;
}


@media (max-width:1024px) {
	.ccte-product-filter { grid-template-columns:minmax(0,1fr) 210px 180px; }
	.ccte-catalog-layout { grid-template-columns:200px minmax(0,1fr); gap:26px; }
	.ccte-product-grid,
	.ccte-related-products__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:767px) {
	.ccte-taxonomy-router { padding:30px 16px 70px; }
	.ccte-taxonomy-header { padding-bottom:22px; margin-bottom:22px; }
	.ccte-taxonomy-header h1 { font-size:34px; }

	.ccte-catalog { padding-bottom:48px; }

	.ccte-category-navigation--archive { display:block; }

	.ccte-category-navigation--single { margin-top:26px; }

	.ccte-category-navigation__links {
		grid-template-columns:1fr;
		padding:6px;
	}

	.ccte-category-navigation__links a {
		min-height:48px;
		padding:11px 12px;
	}

	.ccte-product-filter--desktop,
	.ccte-product-sidebar { display:none; }

	.ccte-catalog-layout { display:block; }

	.ccte-product-grid,
	.ccte-related-products__grid { grid-template-columns:1fr; }

	.ccte-card__media { aspect-ratio:4/3; }

	.ccte-card__title {
		font-size:16px;
		line-height:1.3;
	}

	.ccte-pagination {
		gap:6px;
		margin-top:30px;
	}

	.ccte-pagination .page-numbers {
		min-width:42px;
		height:42px;
		padding:0 10px;
	}

	.ccte-pagination .dots {
		min-width:24px;
		padding:0 2px;
	}

	.ccte-catalog .ccte-product-filter .ccte-search-control > button[type="submit"] {
		flex-basis:96px !important;
		width:96px !important;
		min-width:96px !important;
		max-width:96px !important;
	}

}
