/*
 * ELEGANCYA FILTRO DE PRODUTOS — VERSÃO 6
 * Regras visuais prioritárias.
 */

body .elegancya-filtros {
	--efp-text: #2f2f2f;
	--efp-border: #dcdcdc;
	--efp-border-hover: #cfcfcf;
	--efp-hover: #f4f4f4;
	--efp-selected: #eeeeee;
	--efp-white: #ffffff;

	position: relative !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 auto 28px !important;
	overflow: visible !important;
	text-align: center !important;
	z-index: 20 !important;
}

body .elegancya-filtros,
body .elegancya-filtros *,
body .elegancya-filtros *::before,
body .elegancya-filtros *::after {
	box-sizing: border-box !important;
}

/* Não deixa containers do Elementor cortarem o painel. */
body .elementor-element:has(.elegancya-filtros),
body .elementor-widget-shortcode:has(.elegancya-filtros),
body .elementor-widget-shortcode:has(.elegancya-filtros) .elementor-widget-container {
	overflow: visible !important;
}

/* Menus do cabeçalho acima do filtro. */
body header,
body #masthead,
body .site-header,
body .elementor-location-header {
	position: relative !important;
	z-index: 100000 !important;
}

body header .sub-menu,
body #masthead .sub-menu,
body .site-header .sub-menu,
body .elementor-location-header .sub-menu,
body .elementor-nav-menu--dropdown,
body .mega-menu,
body .mega-sub-menu {
	z-index: 100001 !important;
}

body .elegancya-filtros .efp-panels,
body .elegancya-filtros .efp-form {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	overflow: visible !important;
}

/* =========================================================
   BOTÕES PRINCIPAIS — SEMPRE BRANCOS, TEXTO PRETO
========================================================= */

body .elegancya-filtros .efp-main-buttons {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-wrap: nowrap !important;
	gap: 10px !important;

	width: 310px !important;
	max-width: 100% !important;
	min-height: 44px !important;
	margin: 0 auto !important;
}

body .elegancya-filtros .efp-main-button {
	display: inline-flex !important;
	flex: 0 0 150px !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;

	width: 150px !important;
	min-width: 150px !important;
	max-width: 150px !important;
	min-height: 44px !important;
	margin: 0 !important;
	padding: 9px 18px !important;

	border: 1px solid var(--efp-border) !important;
	border-radius: 7px !important;
	background: var(--efp-white) !important;
	color: var(--efp-text) !important;

	font-family: "Playfair Display", serif !important;
	font-size: 15.5px !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-transform: none !important;
	letter-spacing: 0 !important;

	box-shadow: none !important;
	cursor: pointer !important;
	outline: none !important;
	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		box-shadow 0.2s ease !important;
}

/* Hover e aberto: cinza claro, texto continua preto. */
body .elegancya-filtros .efp-main-button:hover,
body .elegancya-filtros .efp-main-button:focus-visible,
body .elegancya-filtros .efp-main-button.is-open {
	border-color: var(--efp-border-hover) !important;
	background: var(--efp-hover) !important;
	color: var(--efp-text) !important;
	box-shadow: 0 5px 16px rgba(0, 0, 0, 0.04) !important;
}

body .elegancya-filtros .efp-chevron,
body .elegancya-filtros .efp-select-arrow {
	width: 8px !important;
	height: 8px !important;
	margin-top: -4px !important;
	border-right: 1px solid currentColor !important;
	border-bottom: 1px solid currentColor !important;
	transform: rotate(45deg) !important;
	transition: transform 0.2s ease !important;
}

body .elegancya-filtros .efp-main-button.is-open .efp-chevron,
body .elegancya-filtros .efp-custom-select.is-open .efp-select-arrow {
	margin-top: 4px !important;
	transform: rotate(225deg) !important;
}

/* =========================================================
   PAINÉIS — NÃO MOVEM OS BOTÕES
========================================================= */

body .elegancya-filtros .efp-panel {
	width: min(650px, calc(100vw - 34px)) !important;
	max-width: min(650px, calc(100vw - 34px)) !important;
	margin: 0 !important;
	padding: 20px !important;

	border: 1px solid #ededed !important;
	border-radius: 9px !important;
	background: var(--efp-white) !important;
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06) !important;
}

body .elegancya-filtros .efp-panel[hidden] {
	display: none !important;
}

/* =========================================================
   FILTROS — EXATAMENTE 3 POR LINHA
========================================================= */

body .elegancya-filtros .efp-filter-grid {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: flex-end !important;
	justify-content: center !important;
	gap: 15px 12px !important;

	width: 624px !important;
	max-width: 100% !important;
	margin: 0 auto !important;
}

body .elegancya-filtros .efp-field {
	display: flex !important;
	flex: 0 0 200px !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: 8px !important;

	width: 200px !important;
	min-width: 200px !important;
	max-width: 200px !important;
	margin: 0 !important;
	text-align: center !important;
}

body .elegancya-filtros .efp-field label {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 100% !important;
	min-height: 21px !important;
	margin: 0 !important;

	color: var(--efp-text) !important;
	font-family: "Playfair Display", serif !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	text-align: center !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

/* =========================================================
   SELECTS INTERNOS — BRANCO/PRETO, HOVER CINZA CLARO
========================================================= */

body .elegancya-filtros .efp-custom-select {
	position: relative !important;
	width: 100% !important;
	text-align: center !important;
}

body .elegancya-filtros .efp-native-select {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

body .elegancya-filtros .efp-select-trigger {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;

	width: 100% !important;
	min-height: 43px !important;
	margin: 0 !important;
	padding: 9px 32px 9px 12px !important;

	border: 1px solid var(--efp-border) !important;
	border-radius: 7px !important;
	background: var(--efp-white) !important;
	color: var(--efp-text) !important;

	font-family: "Montserrat", sans-serif !important;
	font-size: 11.8px !important;
	font-weight: 400 !important;
	line-height: 1.35 !important;
	text-align: center !important;

	box-shadow: none !important;
	cursor: pointer !important;
	outline: none !important;
}

body .elegancya-filtros .efp-select-trigger:hover,
body .elegancya-filtros .efp-select-trigger:focus-visible,
body .elegancya-filtros .efp-custom-select.is-open .efp-select-trigger {
	border-color: var(--efp-border-hover) !important;
	background: var(--efp-hover) !important;
	color: var(--efp-text) !important;
	box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.018) !important;
}

body .elegancya-filtros .efp-select-current {
	display: block !important;
	flex: 1 1 auto !important;
	min-width: 0 !important;
	color: var(--efp-text) !important;
	text-align: center !important;
}

body .elegancya-filtros .efp-select-arrow {
	position: absolute !important;
	right: 14px !important;
}

body .elegancya-filtros .efp-select-menu {
	position: absolute !important;
	top: calc(100% + 5px) !important;
	left: 50% !important;
	z-index: 45 !important;

	width: 100% !important;
	max-height: 250px !important;
	margin: 0 !important;
	padding: 5px !important;

	overflow-x: hidden !important;
	overflow-y: auto !important;

	border: 1px solid var(--efp-border) !important;
	border-radius: 7px !important;
	background: var(--efp-white) !important;
	box-shadow: 0 9px 22px rgba(0, 0, 0, 0.08) !important;

	transform: translateX(-50%) !important;
}

body .elegancya-filtros .efp-select-menu[hidden] {
	display: none !important;
}

body .elegancya-filtros .efp-select-option {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;

	width: 100% !important;
	min-height: 35px !important;
	margin: 0 !important;
	padding: 8px 9px !important;

	border: 0 !important;
	border-radius: 5px !important;
	background: var(--efp-white) !important;
	color: var(--efp-text) !important;

	font-family: "Montserrat", sans-serif !important;
	font-size: 11.8px !important;
	font-weight: 400 !important;
	line-height: 1.3 !important;
	text-align: center !important;

	cursor: pointer !important;
	outline: none !important;
}

body .elegancya-filtros .efp-select-option:hover,
body .elegancya-filtros .efp-select-option:focus-visible {
	background: var(--efp-hover) !important;
	color: var(--efp-text) !important;
}

body .elegancya-filtros .efp-select-option.is-selected {
	background: var(--efp-selected) !important;
	color: var(--efp-text) !important;
	font-weight: 500 !important;
}

/* =========================================================
   APLICAR E LIMPAR
========================================================= */

body .elegancya-filtros .efp-filter-actions {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-wrap: wrap !important;
	gap: 9px !important;

	width: 100% !important;
	margin-top: 18px !important;
}

body .elegancya-filtros .efp-apply,
body .elegancya-filtros .efp-clear {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	min-width: 122px !important;
	min-height: 40px !important;
	padding: 9px 16px !important;

	border: 1px solid var(--efp-border) !important;
	border-radius: 7px !important;
	background: var(--efp-white) !important;
	color: var(--efp-text) !important;

	font-family: "Montserrat", sans-serif !important;
	font-size: 11.8px !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;

	cursor: pointer !important;
}

body .elegancya-filtros .efp-apply:hover,
body .elegancya-filtros .efp-clear:hover {
	border-color: var(--efp-border-hover) !important;
	background: var(--efp-hover) !important;
	color: var(--efp-text) !important;
}

/* =========================================================
   ORDENAR — EXATAMENTE 3 POR LINHA
========================================================= */

body .elegancya-filtros .efp-order-options {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 12px 10px !important;

	width: 590px !important;
	max-width: 100% !important;
	margin: 0 auto !important;
}

body .elegancya-filtros .efp-order-option {
	display: inline-flex !important;
	flex: 0 0 180px !important;
	align-items: center !important;
	justify-content: center !important;

	width: 180px !important;
	min-width: 180px !important;
	max-width: 180px !important;
	min-height: 42px !important;
	padding: 9px 12px !important;

	border: 1px solid var(--efp-border) !important;
	border-radius: 7px !important;
	background: var(--efp-white) !important;
	color: var(--efp-text) !important;

	font-family: "Montserrat", sans-serif !important;
	font-size: 11.8px !important;
	font-weight: 500 !important;
	line-height: 1.25 !important;
	text-align: center !important;
	text-transform: none !important;

	box-shadow: none !important;
	cursor: pointer !important;
	outline: none !important;
}

body .elegancya-filtros .efp-order-option:hover,
body .elegancya-filtros .efp-order-option:focus-visible {
	border-color: var(--efp-border-hover) !important;
	background: var(--efp-hover) !important;
	color: var(--efp-text) !important;
}

/* Selecionado continua claro, nunca preto. */
body .elegancya-filtros .efp-order-option.is-active {
	border-color: var(--efp-border-hover) !important;
	background: var(--efp-selected) !important;
	color: var(--efp-text) !important;
}

/* =========================================================
   DESKTOP/TABLET — PAINÉIS ABSOLUTOS, BOTÕES IMÓVEIS
========================================================= */

@media (min-width: 768px) {
	body .elegancya-filtros .efp-filter-panel,
	body .elegancya-filtros .efp-order-panel {
		position: absolute !important;
		top: calc(100% + 13px) !important;
		left: 50% !important;
		z-index: 30 !important;

		margin: 0 !important;
		transform: translateX(-50%) !important;
	}

	body .elegancya-filtros .efp-filter-panel {
		width: min(650px, calc(100vw - 34px)) !important;
		max-width: min(650px, calc(100vw - 34px)) !important;
	}

	body .elegancya-filtros .efp-order-panel {
		width: min(650px, calc(100vw - 34px)) !important;
		max-width: min(650px, calc(100vw - 34px)) !important;
	}
}

/* =========================================================
   CELULAR
========================================================= */

@media (max-width: 767px) {
	body .elegancya-filtros {
		margin-bottom: 22px !important;
	}

	body .elegancya-filtros .efp-main-buttons {
		width: 100% !important;
		gap: 8px !important;
	}

	body .elegancya-filtros .efp-main-button {
		flex: 0 0 calc(50% - 4px) !important;
		width: calc(50% - 4px) !important;
		min-width: 0 !important;
		max-width: 170px !important;
		min-height: 44px !important;
		padding: 9px 14px !important;
		font-size: 15px !important;
	}

	body .elegancya-filtros .efp-filter-panel,
	body .elegancya-filtros .efp-order-panel {
		position: static !important;

		width: min(100%, 390px) !important;
		max-width: min(100%, 390px) !important;
		margin: 13px auto 0 !important;
		padding: 17px 14px !important;

		transform: none !important;
	}

	body .elegancya-filtros .efp-filter-grid {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		gap: 13px !important;

		width: 100% !important;
		max-width: 100% !important;
	}

	body .elegancya-filtros .efp-field {
		flex: none !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
	}

	body .elegancya-filtros .efp-order-options {
		display: flex !important;
		flex-direction: column !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	body .elegancya-filtros .efp-order-option {
		flex: none !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
		min-height: 43px !important;
	}
}

@media (max-width: 340px) {
	body .elegancya-filtros .efp-main-buttons {
		flex-direction: column !important;
	}

	body .elegancya-filtros .efp-main-button {
		flex: none !important;
		width: 100% !important;
		max-width: 245px !important;
	}
}
