/*
 * Don Homero Vertical Filters
 * Porte fiel do style.css do snippet Non-AJAX Vertical Product Filters, com prefixo .dhvf-.
 */

/* Wrapper */
.dhvf-wrapper {
	font-family: 'Montserrat', sans-serif;
	color: #00263A;
	background: #fff;
	padding: 20px;
	border: 1px solid #eee;
	border-radius: 8px;
}
.dhvf-wrapper * {
	box-sizing: border-box;
}

/* Title */
.dhvf-title {
	font-weight: 600;
	margin-bottom: 20px;
	font-size: 16px;
	color: #00263A;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Custom Groups Mode */
.dhvf-custom-groups {
	display: flex;
	flex-direction: column;
}
.dhvf-custom-group {
	margin-bottom: 20px;
}
.dhvf-custom-group:last-child {
	margin-bottom: 0;
}
.dhvf-custom-group-header {
	margin-bottom: 10px;
}
.dhvf-custom-group-title {
	font-weight: 600;
	font-size: 14px;
	color: #00263A;
}

.dhvf-custom-group-content {
	display: block;
}
.dhvf-custom-group-items {
	list-style: none;
	padding: 0;
	margin: 0;
}
.dhvf-custom-group-item {
	padding: 6px 0;
}
.dhvf-custom-group-link {
	font-size: 13px;
	font-weight: 400;
	color: #666;
	transition: color 0.2s ease;
	display: flex;
	align-items: center;
	text-decoration: none;
}
.dhvf-custom-hidden {
	display: none !important;
}
.dhvf-custom-show-more {
	cursor: pointer;
	font-size: 12px;
	color: #999;
	display: inline-block;
	margin-top: 5px;
	transition: color 0.2s ease;
}
.dhvf-custom-show-more:hover {
	color: #BD9B60;
}
.dhvf-custom-group-link.is-selected {
	font-weight: 600;
}

/* Lists */
.dhvf-parents-list, .dhvf-children-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

/* Parent Row */
.dhvf-parent {
	margin-bottom: 5px;
}
.dhvf-parent-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 8px 0;
    position: relative; /* for active indicator */
}
.dhvf-link {
	text-decoration: none !important;
	color: inherit;
	display: flex;
	align-items: center;
    position: relative; /* for active indicator if applied to link */
}
.dhvf-parent-link {
	flex-grow: 1;
	font-weight: 500;
	font-size: 14px;
	transition: color 0.2s ease;
}

/* Children */
.dhvf-children-list {
	display: none;
	padding-left: 20px;
	padding-bottom: 10px;
	margin-top: 5px;
}
.dhvf-parent.is-open > .dhvf-children-list {
	display: block;
}
.dhvf-child {
	padding: 6px 0;
    position: relative; /* for active indicator */
}
.dhvf-child-link {
	font-size: 13px;
	font-weight: 400;
	color: #666;
	transition: color 0.2s ease;
}

/* Active Indicators */
.dhvf-wrapper.has-parent-indicator .dhvf-parent.is-active > .dhvf-parent-header::before,
.dhvf-wrapper.has-parent-indicator .dhvf-parent-link.is-selected::before,
.dhvf-wrapper.has-child-indicator .dhvf-child.is-active::before,
.dhvf-wrapper.has-child-indicator .dhvf-child-link.is-selected::before,
.dhvf-wrapper.has-parent-indicator .dhvf-custom-group-link.is-selected::before {
    content: '';
    display: inline-block;
    width: 3px;
    height: 16px;
    background-color: #BD9B60;
    margin-right: 8px;
    border-radius: 2px;
}

/* Default Colors Avoid Theme Pink */
.dhvf-wrapper a {
	color: #00263A;
}
.dhvf-wrapper a:hover,
.dhvf-wrapper a:focus {
	color: #BD9B60;
}
.dhvf-parent.is-active > .dhvf-parent-header .dhvf-parent-link {
	font-weight: 600;
}
.dhvf-child.is-active > .dhvf-child-link {
	font-weight: 500;
}

/* Active Category State Highlight */
.dhvf-link.dhvf-is-active {
	font-weight: 600;
}
li.dhvf-is-active > .dhvf-parent-header > .dhvf-parent-link {
    font-weight: 600;
}
li.dhvf-is-active > .dhvf-child-link {
    font-weight: 600;
}

/* Accordion Icon */
.dhvf-accordion-icon {
	cursor: pointer;
	padding: 5px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #999;
	transition: color 0.2s ease, background-color 0.2s ease;
}
.dhvf-accordion-icon:hover {
	color: #BD9B60;
}
.dhvf-parent.is-open > .dhvf-parent-header .dhvf-accordion-icon {
	color: #BD9B60;
}
.dhvf-accordion-icon svg {
	width: 12px;
	height: 12px;
	fill: currentColor;
}
.dhvf-icon-closed,
/* Escondido por padrao; a regra .is-open abaixo o exibe.
   Eram duas declaracoes separadas, e a segunda anulava o display da
   primeira -- o inline-flex daqui so vale quando o acordeao abre. */
.dhvf-icon-open {
	display: none;
	align-items: center;
	justify-content: center;
}
.dhvf-parent.is-open .dhvf-icon-closed {
	display: none;
}
.dhvf-parent.is-open .dhvf-icon-open {
	display: inline-flex;
}

/* Checkbox Indicator */
.dhvf-indicator {
	width: 16px;
	height: 16px;
	border: 1px solid #ccc;
	border-radius: 3px;
	margin-right: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: #fff;
	transition: all 0.2s ease;
	position: relative;
	flex-shrink: 0;
}
.dhvf-link:hover .dhvf-indicator {
	border-color: #BD9B60;
}
.dhvf-link.is-selected .dhvf-indicator {
	background-color: #BD9B60;
	border-color: #BD9B60;
}
.dhvf-link.is-selected .dhvf-indicator::after {
	content: '';
	width: 4px;
	height: 8px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
	margin-bottom: 2px;
}

/* Hidden items */
.dhvf-parent.is-hidden, .dhvf-child.is-hidden {
	display: none !important;
}

/* Show More / Less */
.dhvf-toggle-btn {
	cursor: pointer;
	padding: 8px 0;
	font-size: 13px;
	font-weight: 500;
	color: #666;
	display: inline-block;
	transition: color 0.2s ease, background-color 0.2s ease;
}
.dhvf-toggle-btn:hover {
	color: #BD9B60;
}

/* --- Price Filter Section --- */
.dhvf-price-section {
	margin-top: 25px;
	padding-top: 20px;
	border-top: 1px solid #eee;
}

.dhvf-price-title {
	font-weight: 600;
	font-size: 14px;
	color: #00263A;
	margin-bottom: 15px;
	text-transform: uppercase;
}

.dhvf-price-inputs {
	display: flex;
	gap: 15px;
	margin-bottom: 15px;
}

.dhvf-price-input-group {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.dhvf-price-label {
	font-size: 12px;
	color: #666;
	margin-bottom: 5px;
	font-weight: 500;
}

.dhvf-price-field-wrap {
	display: flex;
	align-items: center;
	border: 1px solid #ddd;
	border-radius: 4px;
	background: #fff;
	overflow: hidden;
	height: 38px;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.dhvf-price-field-wrap:focus-within {
	border-color: #BD9B60;
}

.dhvf-price-prefix {
	padding: 0 10px;
	font-size: 13px;
	color: #666;
	background: #f8f8f8;
	height: 100%;
	display: flex;
	align-items: center;
	border-right: 1px solid #ddd;
}

.dhvf-price-input {
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 10px !important;
	font-size: 14px;
	color: #333;
	width: 100%;
	height: 100%;
	outline: none !important;
	-moz-appearance: textfield;
}

.dhvf-price-input::-webkit-outer-spin-button,
.dhvf-price-input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.dhvf-clear-price-wrap {
	text-align: right;
}

.dhvf-clear-price-btn {
	background: none;
	border: none;
	padding: 0;
	font-size: 12px;
	color: #999;
	cursor: pointer;
	text-decoration: underline;
	transition: color 0.2s ease, background-color 0.2s ease;
	font-family: inherit;
}

.dhvf-clear-price-btn:hover {
	color: #d9534f;
}

/* Apply Button */
.dhvf-actions {
	margin-top: 20px;
}
.dhvf-apply-btn {
	background-color: #00263A;
	color: #fff;
	border: none;
	padding: 10px 20px;
	border-radius: 4px;
	cursor: pointer;
	font-weight: 600;
	font-size: 14px;
	width: 100%;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
	font-family: inherit;
}
.dhvf-apply-btn:hover:not(:disabled) {
	background-color: #BD9B60;
}
.dhvf-apply-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
	background-color: #ccc;
}

/* Clear Filters */
.dhvf-clear-actions {
	margin-top: 15px;
	text-align: center;
}
.dhvf-clear-btn {
	display: inline-block;
	/* text-decoration mantem o !important para vencer o sublinhado de link
	   do tema. As cores nao: com !important aqui, a cor escolhida no
	   Elementor empatava com o padrao e nem sempre vencia. */
	text-decoration: none !important;
	font-size: 13px;
	color: #999;
	border-bottom: 1px dashed #999;
	padding-bottom: 2px;
	transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}
.dhvf-clear-btn:hover {
	color: #d9534f;
	border-color: #d9534f;
}

/* Responsive */
@media (max-width: 480px) {
	.dhvf-price-inputs {
		flex-direction: column;
		gap: 10px;
	}
	.dhvf-clear-price-wrap {
		text-align: left;
	}
}