/* =========================================================
   GSD Shared Filter Bars
   ========================================================= */

:root {
	--gsd-filter-bg: #f7f8fa;
	--gsd-filter-surface: #ffffff;
	--gsd-filter-border: rgba(0, 37, 81, 0.14);
	--gsd-filter-border-strong: rgba(0, 37, 81, 0.24);
	--gsd-filter-text: var(--wp--preset--color--graphite, #2a2a2a);
	--gsd-filter-label: var(--wp--preset--color--industrial-navy, #002551);
	--gsd-filter-muted: var(--wp--preset--color--steel-gray, #6e7073);
	--gsd-filter-focus: rgba(0, 37, 81, 0.16);

	--gsd-filter-radius-wrap: 18px;
	--gsd-filter-radius-control: 12px;
	--gsd-filter-radius-pill: 999px;
	--gsd-filter-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);

	--gsd-filter-control-height: 48px;
	--gsd-filter-font-size: 16px;
	--gsd-filter-label-size: 0.92rem;
	--gsd-filter-count-size: 0.95rem;
	--gsd-filter-gap: 14px;
	--gsd-filter-padding-x: 14px;
	--gsd-filter-placeholder: #7c828b;

	--gsd-filter-btn-neutral-bg: #dfe4e8;
	--gsd-filter-btn-neutral-border: rgba(0, 37, 81, 0.20);
	--gsd-filter-btn-neutral-text: var(--wp--preset--color--industrial-navy, #002551);

	--gsd-filter-btn-primary-bg: var(--wp--preset--color--machinery-green, #2f6b4f);
	--gsd-filter-btn-primary-border: rgba(0, 0, 0, 0.10);
	--gsd-filter-btn-primary-text: #ffffff;

	--gsd-filter-btn-active-bg: var(--wp--preset--color--industrial-navy, #002551);
	--gsd-filter-btn-active-text: #ffffff;
}

/* outer block */
.gsd-filterbar {
	margin: 0 0 18px 0;
}

.gsd-filterbar__panel {
	background: var(--gsd-filter-bg);
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: var(--gsd-filter-radius-wrap);
	padding: 18px;
	box-shadow: var(--gsd-filter-shadow);
}

.gsd-filterbar__grid {
	display: grid;
	gap: var(--gsd-filter-gap);
	align-items: end;
}

.gsd-filterbar__grid > * {
	min-width: 0;
}

/* stacked field pattern */
.gsd-filterbar__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.gsd-filterbar__field label,
.gsd-filterbar__label {
	display: block;
	margin: 0;
	font-size: var(--gsd-filter-label-size);
	font-weight: 800;
	line-height: 1.25;
	color: var(--gsd-filter-label);
}

/* controls */
.gsd-filterbar__field input[type="search"],
.gsd-filterbar__field input[type="text"],
.gsd-filterbar__field input[type="email"],
.gsd-filterbar__field input[type="number"],
.gsd-filterbar__field input[type="url"],
.gsd-filterbar__field input[type="tel"],
.gsd-filterbar__field select,
.gsd-filterbar__control {
	width: 100%;
	height: var(--gsd-filter-control-height);
	min-height: var(--gsd-filter-control-height);
	padding: 0 var(--gsd-filter-padding-x);
	border-radius: var(--gsd-filter-radius-control);
	border: 1px solid var(--gsd-filter-border);
	background: var(--gsd-filter-surface);
	color: var(--gsd-filter-text);
	font-size: var(--gsd-filter-font-size);
	font-weight: 600;
	line-height: 1.2;
	box-shadow: none;
	appearance: none;
	-webkit-appearance: none;
}

.gsd-filterbar__field select {
	padding-right: 40px;
	background-image:
		linear-gradient(45deg, transparent 50%, var(--gsd-filter-label) 50%),
		linear-gradient(135deg, var(--gsd-filter-label) 50%, transparent 50%);
	background-position:
		calc(100% - 18px) calc(50% - 2px),
		calc(100% - 12px) calc(50% - 2px);
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
}

.gsd-filterbar__field input::placeholder {
	color: var(--gsd-filter-placeholder);
	font-weight: 500;
	opacity: 1;
}

.gsd-filterbar__field input:focus,
.gsd-filterbar__field select:focus,
.gsd-filterbar__control:focus {
	outline: 0;
	border-color: var(--gsd-filter-border-strong);
	box-shadow: 0 0 0 4px var(--gsd-filter-focus);
}

/* filter actions */
.gsd-filterbar__actions {
	display: flex;
	align-items: end;
	gap: 10px;
	flex-wrap: wrap;
}

.gsd-filterbar__actions .button,
.gsd-filterbar__actions .gsd-btn,
.gsd-filterbar__button,
.gsd-filterbar__toolbar .gsd-btn,
.gsd-filterbar__toolbar .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: var(--gsd-filter-control-height);
	min-height: var(--gsd-filter-control-height);
	padding: 0 18px;
	border-radius: var(--gsd-filter-radius-control);
	font-weight: 800;
	font-size: var(--gsd-filter-font-size);
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
	border: 1px solid var(--gsd-filter-btn-neutral-border);
	background: var(--gsd-filter-btn-neutral-bg);
	color: var(--gsd-filter-btn-neutral-text);
	box-shadow: none;
}

.gsd-filterbar__actions .button:hover,
.gsd-filterbar__actions .gsd-btn:hover,
.gsd-filterbar__button:hover,
.gsd-filterbar__toolbar .gsd-btn:hover,
.gsd-filterbar__toolbar .button:hover {
	text-decoration: none;
	filter: brightness(1.01);
}

/* explicit button roles */
.gsd-filterbar__apply {
	background: var(--gsd-filter-btn-primary-bg) !important;
	color: var(--gsd-filter-btn-primary-text) !important;
	border-color: var(--gsd-filter-btn-primary-border) !important;
}

.gsd-filterbar__reset {
	background: var(--gsd-filter-btn-neutral-bg) !important;
	color: var(--gsd-filter-btn-neutral-text) !important;
	border-color: var(--gsd-filter-btn-neutral-border) !important;
}

/* toolbar row AFTER filters */
.gsd-filterbar__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: flex-end;
	gap: 18px;
	margin: 0 0 18px 0;
}

.gsd-filterbar__toolbar-group {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	gap: 12px;
}

.gsd-filterbar__toolbar-group--count {
	order: 1;
}

.gsd-filterbar__toolbar-group--show {
	order: 2;
}

.gsd-filterbar__toolbar-group--view {
	order: 3;
}

.gsd-filterbar__meta {
	margin: 0;
	font-size: var(--gsd-filter-count-size);
	font-weight: 700;
	color: var(--gsd-filter-muted);
	line-height: var(--gsd-filter-control-height);
	white-space: nowrap;
}

.gsd-filterbar__compact {
	min-width: 120px;
}

.gsd-filterbar__view-toggle {
	display: flex;
	gap: 8px;
}

.gsd-filterbar__view-toggle .gsd-btn[aria-pressed="true"] {
	background: var(--gsd-filter-btn-active-bg) !important;
	color: var(--gsd-filter-btn-active-text) !important;
	border-color: rgba(0, 37, 81, 0.65) !important;
}

.gsd-filterbar__view-toggle .gsd-btn {
	min-width: 78px;
}

/* common grid presets */
.gsd-filterbar--promo .gsd-filterbar__grid {
	grid-template-columns: minmax(220px, 1.3fr) 150px minmax(180px, 1fr) minmax(180px, 1fr) minmax(200px, 1fr) auto;
}
.gsd-filterbar--promo .gsd-filterbar__actions {
	align-self: end;
	white-space: nowrap;
}
.gsd-filterbar--docs .gsd-filterbar__grid {
	grid-template-columns: minmax(220px, 1.3fr) 150px minmax(180px, 1fr) minmax(180px, 1fr) minmax(200px, 1fr) auto;
}

.gsd-filterbar--docs .gsd-filterbar__actions {
	align-self: end;
	white-space: nowrap;
}

.gsd-filterbar--dealer .gsd-filterbar__grid {
	grid-template-columns: minmax(220px, 1fr) 180px minmax(220px, 1fr) auto;
}

/* responsive */
@media (max-width: 1200px) {
	.gsd-filterbar--docs .gsd-filterbar__grid,
	.gsd-filterbar--dealer .gsd-filterbar__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 1100px) {
	.gsd-filterbar--promo .gsd-filterbar__grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 820px) {
	.gsd-filterbar__toolbar {
		justify-content: flex-start;
	}
}

@media (max-width: 700px) {
	.gsd-filterbar--promo .gsd-filterbar__grid,
	.gsd-filterbar--docs .gsd-filterbar__grid,
	.gsd-filterbar--dealer .gsd-filterbar__grid {
		grid-template-columns: 1fr;
	}

	.gsd-filterbar__actions {
		align-items: stretch;
	}

	.gsd-filterbar__actions .button,
	.gsd-filterbar__actions .gsd-btn,
	.gsd-filterbar__button {
		width: 100%;
	}

	.gsd-filterbar__toolbar {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}

	.gsd-filterbar__toolbar-group {
		width: 100%;
	}

	.gsd-filterbar__meta {
		line-height: 1.4;
	}
}