.atdw-filter-container {
	align-items: center;
	background-color: #fff;
	border-radius: 12px;
	box-shadow: 0 4px 8px 3px rgba(0,0,0,0.15);
	display: flex;
	font-family: "Poppins", Sans-serif;
	margin-bottom: 30px !important;
	/* min-height: 80px; */
	padding: 20px;
}

.atdw-filter-container .filter-header {
	align-items: center;
	display: flex;
	flex-wrap: nowrap;
	gap: 10px 15px;
	width: 100%;
}

.atdw-filter-container .filter-by-label {
	display: flex;
	align-items: center;
	color: #701F25;
	font-weight: 500;
	font-size: 16px;
	gap: 10px;
	flex-shrink: 0;
}

.atdw-filter-container .filter-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	flex: 0 0 auto;
}

.atdw-filter-container .filter-dropdown {
	position: relative;
}

.atdw-filter-container .dropdown-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-weight: 500;
	font-size: 16px;
	color: #701F25;
	background: none !important;
	border: none;
	cursor: pointer;
	padding: 8px 12px;
	min-width: 50px;
	gap: 10px;
}

.atdw-filter-container .dropdown-arrow {
	overflow: visible;
	transition: transform 0.2s ease;
}

.atdw-filter-container .dropdown-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 100;
	min-width: 200px;
	background-color: #fff;
	border-radius: 0 0 10px 10px;
	box-shadow: 0 4px 8px 3px rgba(0,0,0,0.15);
	padding: 10px;
	margin-top: 10px;
	display: none;
}

.atdw-filter-container .checkbox-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-height: 50dvh;
	overflow-y: scroll;
	padding: 10px 0;
}

.atdw-filter-container .checkbox-item {
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	font-size: 14px;
	color: #333;
}

.atdw-filter-container .checkbox-item input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	width: 18px;
	height: 18px;
	border: 1px solid #701F25;
	border-radius: 4px;
	cursor: pointer;
	position: relative;
	background-color: #fff;
	flex-shrink: 0;
}

.atdw-filter-container .checkbox-item input[type="checkbox"]:checked {
	background-color: #701F25;
}

.atdw-filter-container .checkbox-item input[type="checkbox"]:checked::after {
	content: "";
	position: absolute;
	width: 5px;
	height: 10px;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(45deg);
	left: 5px;
	top: 1px;
}

.atdw-filter-container .atdw-filter-content {
	display: flex;
	flex-direction: row;
	width: 100%;
}

.atdw-filter-container .atdw-filter-content > div {
	flex: 1;
}

.atdw-filter-container .keyword-search {
	display: flex;
	align-items: center;
	margin-left: auto;
	gap: 10px;
	flex: 0 1 250px;
	min-width: 0;
}

.atdw-filter-container .keyword-search label {
	font-weight: 500;
	font-size: 16px;
	color: #701F25;
}

.atdw-filter-container .keyword-search input {
	border: 1px solid #ddd;
	border-radius: 6px;
	padding: 8px 12px;
	min-width: 120px;
	width: 100%;
	font-size: 14px;
	outline: none;
	flex: 1 1 auto;
}

.atdw-filter-container .keyword-search input:focus {
	border-color: #701F25;
}

.atdw-filter-container .variety-category-heading {
	font-weight: bold;
	color: #701F25;
	text-transform: uppercase;
	font-size: 0.9em;
}

.atdw-filter-container .variety-category-divider {
	border-bottom: 1px solid #eee;
	margin: 4px 0;
}

.atdw-filter-container .clear-filter-container.display-on-active-only {
	max-width: 0px;
	opacity: 0;
	transition: all .3s;
	visibility: hidden;
	width: auto;
}

.atdw-filter-container .clear-filter-container, .atdw-filter-container.has-active-filters .clear-filter-container.display-on-active-only {
	display: flex;
	max-width: unset;
	opacity: 1;
	visibility: visible;
}

.atdw-filter-container .clear-filter-button {
	align-items: center;
	background-color: transparent;
	border: none;
	color: #701F25;
	flex: 1;
	font-weight: 500;
	gap: 10px;
	justify-content: center;
	padding: 8px 12px;
	text-decoration: none;
}

.atdw-filter-container .clear-filter-button i, .atdw-filter-container .clear-filter-button svg {
	fill: #701F25;
}

.atdw-filter-container .clear-filter-button:hover, .atdw-filter-container .clear-filter-button:focus {
	background-color: transparent;
	border-color: transparent;
	color: #701F25;
	text-decoration: underline;
}

/* Remove the last divider */
.atdw-filter-container .checkbox-list .variety-category-divider:last-child {
	display: none;
}

/* Show/hide dropdown menus when clicked */
.atdw-filter-container .filter-dropdown.active .dropdown-menu {
	display: block;
}

.atdw-filter-container .filter-dropdown.active .dropdown-arrow {
	transform: rotate(180deg);
}

/* Loading indicator */
.atdw-filter-loading {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 20px;
	font-weight: 500;
	color: #555;
}

.atdw-filter-loading::after {
	content: "";
	width: 20px;
	height: 20px;
	margin-left: 10px;
	border: 2px solid #ddd;
	border-top: 2px solid #701F25;
	border-radius: 50%;
	animation: atdw-spinner 1s linear infinite;
}

@keyframes atdw-spinner {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

/* Responsive adjustments */
@media (max-width: 768px) {
	.atdw-filter-container .filter-header {
	flex-direction: column;
	align-items: flex-start;
	}

	.atdw-filter-container .filter-buttons {
	width: 100%;
	}

	.atdw-filter-container .keyword-search {
	width: 100%;
	margin-left: 0;
	flex-direction: column;
	align-items: flex-start;
	}

	.atdw-filter-container .keyword-search input {
	width: 100%;
	}
}

/* Fix for Elementor Loop Grid Pagination Button expanding with ATDW Filters during AJAX */

/* Main button styling with fixed dimensions */
.elementor-widget-loop-grid .e-loop__load-more .elementor-button {
	position: relative;
	min-width: 150px;
	width: auto !important;
	height: auto !important;
	min-height: 45px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 24px;
	transform: translateZ(0);
	transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease !important;
}

/* Spinner container needs to be absolutely positioned inside the button */
.elementor-widget-loop-grid .e-load-more-spinner {
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	transform: translate(-50%, -50%) !important;
	margin: 0 !important;
	width: auto !important;
	height: auto !important;
}

/* The spinner icon itself */
.elementor-widget-loop-grid .e-load-more-spinner svg,
.elementor-widget-loop-grid .e-load-more-spinner i {
	width: 20px !important;
	height: 20px !important;
	animation: elementor-spin 2s linear infinite;
}

/* Button text container - needs to be a block element with fixed dimensions */
.elementor-widget-loop-grid .elementor-button-content-wrapper {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	visibility: visible !important;
	color: white;
}

/* Fix for loading state - make spinner visible but keep text showing to maintain size */
.elementor-widget-loop-grid.e-load-more-pagination-loading .e-load-more-spinner {
	opacity: 1 !important;
	visibility: visible !important;
	z-index: 10 !important;
}

/* Prevent button text from disappearing to maintain button size */
.elementor-widget-loop-grid.e-load-more-pagination-loading .elementor-button-content-wrapper {
	opacity: 0;
	visibility: hidden;
}

/* Button during AJAX loading */
.elementor-widget-loop-grid.e-load-more-pagination-loading .elementor-button,
.elementor-widget-loop-grid.elementor-loading .elementor-button {
	pointer-events: none;
	width: auto !important; /* Force width */
	height: auto !important; /* Force height */
	min-height: 45px !important;
}

/* Specific fix for ATDW filter AJAX state */
.atdw-filter-loading ~ .elementor-widget-loop-grid .e-loop__load-more .elementor-button {
	width: auto !important;
	height: auto !important;
	min-height: 45px !important;
}

/* For when there's direct inline styling (override it) */
.elementor-widget-loop-grid .elementor-button[style*="width"],
.elementor-widget-loop-grid .elementor-button[style*="height"] {
	width: auto !important;
	min-width: 150px !important;
	height: auto !important;
	min-height: 45px !important;
}

/* Hover effect when not in loading state */
.elementor-widget-loop-grid:not(.e-load-more-pagination-loading) .e-loop__load-more .elementor-button:hover {
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

/* Animation for spinner */
@keyframes elementor-spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

.atdw-filter-container .filter-header-mobile {
	display: flex;
}

.atdw-filter-container .filter-header-mobile .filter-by-label {
	cursor: pointer;
	flex: 1;
	justify-content: space-between;
}

.atdw-filter-container:not([data-active-breakpoint='mobile']) .filter-header,
.atdw-filter-container:not[data-active-breakpoint='mobile'] .filter-header-mobile {
	display: flex;
}

.atdw-filter-container[data-active-breakpoint='mobile'] .filter-header,
.atdw-filter-container:not([data-active-breakpoint='mobile']) .filter-header-mobile {
	display: none;
}

/* Modal Overlay */
.atdw-filter-modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100dvw;
	height: 100dvh;
	background-color: rgba(0, 0, 0, 0.6); /* Elementor often uses a slightly darker overlay */
	display: none; /* Hidden by default, shown with JS */
	justify-content: center;
	align-items: start;
	z-index: 10000; /* High z-index to be on top */
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0s linear 0.3s;
}

.atdw-filter-modal-overlay.active {
	display: flex;
	opacity: 1;
	visibility: visible;
	transition: opacity 0.3s ease, visibility 0s linear 0s;
}

body:has(.atdw-filter-modal-overlay.active) {
	overflow: hidden;
}

/* Modal Container */
.atdw-filter-modal {
	background-color: #fff;
	border-radius: 8px; /* Common Elementor popup radius */
	box-shadow: 0 5px 25px rgba(0, 0, 0, 0.15); /* Softer shadow */
	display: flex;
	flex-direction: column;
	margin: 30px 0;
	max-height: calc(100dvh - 60px);
	max-width: 600px; /* Adjust as needed */
	min-height: calc(100% - 60px);
	opacity: 0;
	overflow: hidden; /* Important for internal scrolling */
	transform: scale(0.9);
	transition: transform 0.3s ease, opacity 0.3s ease;
	width: 90%;
}

.atdw-filter-modal-overlay.active .atdw-filter-modal {
	opacity: 1;
	transform: scale(1);
}

/* Modal Header */
.atdw-filter-modal .atdw-filter-modal-header {
	border-bottom: 1px solid #eee;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 15px 20px;
}

/* Close Button */
.atdw-filter-modal .atdw-filter-modal-close {
	background: transparent;
	border: none;
	cursor: pointer;
	display: flex;
	margin: 0;
	padding: 0;
	transition: color 0.2s ease;
}

.atdw-filter-modal .atdw-filter-modal-close:hover {
	background: transparent;
	opacity: 0.8;
}

/* Modal Content */
.atdw-filter-modal .atdw-filter-modal-content {
	display: flex;
	flex-direction: column;
	gap: 20px;
	flex-grow: 1; /* Allows content to take available space */
	padding: 20px;
	overflow-y: auto; /* Allows scrolling for long content */
}

/* Modal Footer (Optional) */
.atdw-filter-modal .atdw-filter-modal-footer {
	border-top: 1px solid #eee;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	padding: 15px 20px;
}

/* Basic Responsiveness */
@media (max-width: 767px) {
	.atdw-filter-modal {
	margin: 15px; /* Some margin from screen edges */
	max-height: calc(100dvh - 30px);
	max-width: none; /* Allow it to take more width on small screens */
	min-height: calc(100% - 30px);
	width: calc(100vw - 30px);
	}

	.atdw-filter-modal .atdw-filter-modal-title {
		font-size: 1.1em;
	}

	.atdw-filter-modal .atdw-filter-modal-content,
	.atdw-filter-modal .atdw-filter-modal-header,
	.atdw-filter-modal .atdw-filter-modal-footer {
		padding: 15px;
	}
}

.atdw-filter-modal .atdw-filter-modal-content .keyword-search {
	align-items: start;
	display: flex;
	flex: 0;
	flex-direction: column;
	gap: 10px;
	margin: unset;
}

.atdw-filter-modal .atdw-filter-modal-content .filter-buttons-list {
	display: flex;
	flex: 1;
	flex-direction: column;
	flex-wrap: wrap;
	gap: 15px;
}

.atdw-filter-modal .atdw-filter-modal-content .filter-buttons-list .dropdown-toggle {
	min-width: unset;
	padding: 0px;
}

/* Show/hide dropdown menus when clicked */
.atdw-filter-modal .atdw-filter-modal-content .filter-buttons-list .filter-dropdown.active .dropdown-menu {
	/* display: block; -- Replaced by max-height and visibility */
	border-radius: 0;
	box-shadow: unset;
	max-height: 100%; /* Adjust as needed, should be enough for content + padding */
	opacity: 1;
	visibility: visible;
	margin-top: 10px; /* Restore original margin */
	padding: 0px;
	position: relative;
	transform: translateY(0);
	transition: max-height 0.35s ease-in-out,
				opacity 0.25s ease-in-out 0.1s, /* Slight delay for opacity */
				padding-top 0.35s ease-in-out,
				padding-bottom 0.35s ease-in-out,
				margin-top 0.35s ease-in-out,
				transform 0.35s ease-in-out,
				visibility 0s linear 0s; /* Make visible immediately */
}

.atdw-filter-modal .atdw-filter-modal-content .filter-buttons-list .filter-dropdown.active .dropdown-menu .checkbox-list {
	overflow: auto;
	max-height: unset;
}

.atdw-filter-modal .atdw-filter-modal-footer .clear-filter-container {
	align-items: center;
	display: flex;
	justify-content: start;
	max-width: unset;
	opacity: 1;
	visibility: visible;
}

.atdw-filter-modal .atdw-filter-modal-footer .clear-filter-container .clear-filter-button {
	padding: 0;
	width: unset;
}

.atdw-filter-modal .atdw-filter-modal-footer-close {
	align-items: center;
	background-color: #FFF;
	border-style: solid;
	border-color: #701F25;
	border-radius: 5px;
	color: #701F25;
	display: flex;
	font-family: "Poppins", sans-serif;
	font-size: 14px;
	font-weight: 400;
	padding: 5px 20px 5px 15px;
}

.atdw-filter-modal .atdw-filter-modal-footer-close svg {
	fill: #701F25;
	height: 30px;
	margin-left: 10px;
	width: 30px;
}

.atdw-filter-modal .atdw-filter-modal-footer-close svg path {
	fill: #701F25;
}

.atdw-filter-modal .atdw-filter-modal-footer-close:hover,
.atdw-filter-modal .atdw-filter-modal-footer-close:focus {
	background-color: #701F25;
	color: #FFF;
}

.atdw-filter-modal .atdw-filter-modal-footer-close:hover svg,
.atdw-filter-modal .atdw-filter-modal-footer-close:hover svg path,
.atdw-filter-modal .atdw-filter-modal-footer-close:focus svg,
.atdw-filter-modal .atdw-filter-modal-footer-close:focus svg path {
	fill: #FFF;
}