/**
 * Filter Gallery Pro - Frontend Stylesheet
 * Custom prefixed CSS replacing Bootstrap dependency
 * Version: 6.0.1
 * All classes are prefixed with 'ufg-' to avoid theme conflicts
 */

/* ============================================
   1. Reset & Box Model
   ============================================ */
.fg-content-wrapper,
.fg-content-wrapper *,
.fg-content-wrapper *::before,
.fg-content-wrapper *::after {
	box-sizing: border-box;
}

/* Prevent FOUC (Flash of Unstyled Content) during initial page load */
.fg-content-wrapper .ufg-filter-container,
.fg-content-wrapper .ufg-search-container,
.fg-content-wrapper .ufg-combined-row,
.fg-content-wrapper .ufg-uncombined-search {
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.4s ease;
}

.fg-content-wrapper .filter-group.ufg-hide-group,
.fg-content-wrapper .ufg-filter-container .filter-group.ufg-hide-group,
.fg-content-wrapper .ufg-filter-style-atelier-luxury .filter-group.ufg-hide-group {
	display: none !important;
}

/* ============================================
   2. Layout - Flexbox Row
   ============================================ */
.fg-content-wrapper .ufg-row {
	display: flex;
	flex-wrap: wrap;
	margin-right: 0;
	margin-left: 0;
}

/* ============================================
   3. Gallery Grid (Isotope-compatible)
   ============================================ */
.fg-content-wrapper .ufg-gallery {
	display: block !important; /* Disable flexbox to let Isotope handle positioning */
}

.fg-content-wrapper .ufg-gallery::after {
	content: '';
	display: block;
	clear: both;
}

/* ============================================
   4. Image Utilities
   ============================================ */
.fg-content-wrapper .ufg-img-responsive {
	display: block;
	max-width: 100%;
	width: 100%;
	height: auto;
}

/* ============================================
   5. Visibility Utilities
   ============================================ */
.fg-content-wrapper .ufg-hidden {
	display: none !important;
}

.fg-content-wrapper .ufg-visible-block {
	display: block !important;
}

/* ============================================
   6. Text Utilities
   ============================================ */
.fg-content-wrapper .ufg-text-center {
	text-align: center;
}

.fg-content-wrapper .ufg-no-underline {
	text-decoration: none;
}

.fg-content-wrapper .ufg-no-underline:hover {
	text-decoration: none;
}

/* ============================================
   7. Filter Container Layout
   ============================================ */
.fg-content-wrapper .ufg-filter-container {
	margin-bottom: 20px;
	width: 100%;
}
.fg-content-wrapper .ufg-uncombined-filter {
	padding-left: 15px;
	padding-right: 15px;
	box-sizing: border-box;
}

.fg-content-wrapper .ufg-filter-container .filter-group {
	margin-top: 0;
	margin-bottom: 15px;
}
.fg-content-wrapper .ufg-filter-container .filter-group:last-child {
	margin-bottom: 0;
}

.fg-content-wrapper .ufg-filter-container .filter-group button {
	margin-right: 0.3rem;
	margin-bottom: 0.3rem;
}

.fg-content-wrapper .ufg-filter-group-inner > button:first-of-type {
	margin-left: 0 !important;
}

.fg-content-wrapper .ufg-filter-group-inner {
	width: 100%;
	padding-right: 0 !important;
	padding-left: 0 !important;
}

/* Filter heading labels */
.fg-content-wrapper .parent-filters-label {
	margin-bottom: 0.75rem;
}

.fg-content-wrapper .level-one-filters-label,
.fg-content-wrapper .level-two-filters-label,
.fg-content-wrapper .level-three-filters-label,
.fg-content-wrapper .level-four-filters-label,
.fg-content-wrapper .level-five-filters-label {
	margin-top: 0.75rem;
}

/* ============================================
   8. Gallery Thumbnail Layout
   ============================================ */
.fg-content-wrapper .ufg-thumbnail {
	float: left;
	padding-right: 15px;
	padding-left: 15px;
	padding-bottom: 30px;
}

.fg-content-wrapper .ufg-thumbnail-border {
	border-radius: 0.25rem;
	overflow: hidden;
}

.fg-content-wrapper .ufg-thumbnail-border a {
	display: block;
	overflow: hidden;
	position: relative;
}

/* ============================================
   9. Image Content (Title, Description, Button)
   ============================================ */
.fg-content-wrapper .ufg-image-content {
	padding: 5px;
}

.fg-content-wrapper .ufg-image-title {
	padding: 5px 8px;
	word-wrap: break-word;
}

.fg-content-wrapper .ufg-image-description {
	padding: 5px 8px;
	word-wrap: break-word;
}

/* ============================================
   10. Read More Button
   ============================================ */
.fg-content-wrapper .ufg-read-more-button {
	display: block;
	width: 100%;
	padding: 6px 12px;
	font-size: 0.875rem;
	line-height: 1.5;
	border: 1px solid transparent;
	border-radius: 0.25rem;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease-in-out, color 0.15s ease-in-out;
}

.fg-content-wrapper .ufg-read-more-button:hover {
	text-decoration: none;
	opacity: 0.85;
}

.fg-content-wrapper .ufg-read-more-button i {
	margin-right: 5px;
}

/* ============================================
   11. Image Wrap & Fade-in
   ============================================ */
.fg-content-wrapper .ufg-img-wrap {
	position: relative;
	width: 100%;
	overflow: hidden;
	background-color: rgba(0, 0, 0, 0.05);
	min-height: 100px;
	transition: background-color 0.3s ease;
}

.fg-content-wrapper .ufg-img-wrap img {
	opacity: 0;
	transition: opacity 0.6s ease-in-out;
	display: block;
	width: 100%;
	height: auto;
}

.fg-content-wrapper .ufg-img-wrap.loaded img {
	opacity: 1;
}

.fg-content-wrapper .ufg-img-wrap.loaded {
	background-color: transparent;
}

/* ============================================
   12. Image Hover Effect - Border Overlay
   ============================================ */
.fg-content-wrapper .ufg-thumbnail img {
	transition: transform 0.5s, filter 1.5s ease-in-out;
	background: #000;
}

/* ============================================
   13. Filter Button Base Styles
   ============================================ */
.fg-content-wrapper .ufg-btn.filters {
	position: relative;
	border: none;
	font-size: inherit;
	color: #333333;
	background: none;
	cursor: pointer;
	padding: 12px 15px;
	-webkit-transition: all 0.3s;
	-moz-transition: all 0.3s;
	transition: all 0.3s;
	display: inline-block;
	line-height: 1.5;
	vertical-align: middle;
}

.fg-content-wrapper .ufg-btn > :first-child:not(.ufg-active-dot) {
	margin-right: 7px;
}

.fg-content-wrapper .ufg-btn .ufg-active-dot {
	display: none !important;
	vertical-align: middle;
	margin-left: 8px;
	width: 8px;
	height: 8px;
	background-color: currentColor;
	border-radius: 50%;
	-webkit-transition: all 0.3s;
	-moz-transition: all 0.3s;
	transition: all 0.3s;
	opacity: 0;
}

/* Fallback for multiple variations of active class JS might use */
.fg-content-wrapper .active-filter .ufg-active-dot,
.fg-content-wrapper .active .ufg-active-dot,
.fg-content-wrapper .current .ufg-active-dot {
	opacity: 1;
}

.fg-content-wrapper .ufg-btn:after {
	content: '';
	position: absolute;
	z-index: -1;
	-webkit-transition: all 0.3s;
	-moz-transition: all 0.3s;
	transition: all 0.3s;
}

.fg-content-wrapper .ufg-btn-3:before {
	position: absolute;
	height: 100%;
	left: 0;
	top: 0;
	line-height: 3;
	font-size: 140%;
	width: 60px;
}

/* ============================================
   14. Load More Button
   ============================================ */
.fg-content-wrapper .fg-load-more {
	display: inline-block !important;
	text-align: center;
	padding: 25px 0;
	width: 100%;
}

.fg-content-wrapper .fg-load-more button {
	text-align: center;
	position: relative;
	padding: 12px 25px;
}

.fg-content-wrapper #fg-load-btn i {
	opacity: 0;
	position: absolute;
	right: 15px;
	-webkit-transition: all 0.3s;
	-moz-transition: all 0.3s;
	transition: all 0.3s;
}

.fg-content-wrapper #fg-load-btn.load i {
	opacity: 1;
	margin-right: 0;
}

.fg-content-wrapper #fg-load-btn.load {
	padding: 12px 40px 12px 15px;
}

/* ============================================
   15. Gallery Container Clearfix
   ============================================ */
.fg-content-wrapper .ufg-gallery-container::after {
	content: '';
	display: block;
	clear: both;
}

/* ============================================
   16. Search Box Styles
   ============================================ */
.fg-content-wrapper .ufg-search-container {
	margin-top: 0;
	margin-bottom: 20px;
	text-align: center;
	width: 100%;
}

.fg-content-wrapper .ufg-search-input {
	width: 100%;
	max-width: 75%;
	padding: 10px 15px;
	border: 1px solid #e5e7eb;
	border-radius: 6px;
	background: #fff;
	color: #374151;
	font-size: 14px;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	outline: none;
	transition: all 0.2s ease-in-out;
}

.fg-content-wrapper .ufg-search-input:focus {
	border-color: #3b82f6;
	box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

/* ============================================
   17. Admin and Visitor Notice Boxes
   ============================================ */
.fg-content-wrapper .ufg-admin-notice-box {
	background: rgba(239, 68, 68, 0.08);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(239, 68, 68, 0.2);
	border-left: 5px solid #ef4444;
	color: #9b2c2c;
	padding: 16px;
	margin: 20px 0;
	border-radius: 8px;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
	font-size: 15px;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
	animation: ufgFadeIn 0.4s ease-out;
}

.fg-content-wrapper .ufg-admin-notice-box .ufg-notice-flex {
	display: flex;
	align-items: flex-start;
}

.fg-content-wrapper .ufg-admin-notice-box .ufg-notice-icon {
	font-size: 20px;
	margin-right: 12px;
	line-height: 1;
	color: #ef4444;
	margin-top: 2px;
}

.fg-content-wrapper .ufg-admin-notice-box .ufg-notice-content {
	flex: 1;
}

.fg-content-wrapper .ufg-admin-notice-box .ufg-notice-title {
	display: block;
	margin-bottom: 4px;
	font-size: 16px;
	color: #742a2a;
}

.fg-content-wrapper .ufg-admin-notice-box .ufg-notice-text {
	line-height: 1.5;
	color: #742a2a;
}

.fg-content-wrapper .ufg-admin-notice-box .ufg-notice-actions {
	margin-top: 12px;
}

.fg-content-wrapper .ufg-admin-notice-box .ufg-notice-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #ef4444;
	color: #fff !important;
	text-decoration: none;
	padding: 8px 16px;
	border-radius: 4px;
	font-weight: 600;
	font-size: 13px;
	transition: background 0.2s, transform 0.1s;
	box-shadow: 0 2px 4px rgba(239, 68, 68, 0.2);
}

.fg-content-wrapper .ufg-admin-notice-box .ufg-notice-btn:hover {
	background: #dc2626;
	transform: translateY(-1px);
	text-decoration: none;
}

.fg-content-wrapper .ufg-admin-notice-box .ufg-notice-btn:active {
	transform: translateY(0);
}

/* Visitor notice style */
.fg-content-wrapper .ufg-visitor-notice-box {
	background: rgba(243, 244, 246, 0.6);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(209, 213, 219, 0.4);
	color: #4b5563;
	padding: 24px;
	margin: 20px 0;
	border-radius: 8px;
	text-align: center;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
	font-size: 16px;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
	animation: ufgFadeIn 0.4s ease-out;
}

.fg-content-wrapper .ufg-visitor-notice-box .ufg-visitor-icon {
	font-size: 32px;
	margin-bottom: 12px;
	display: block;
	color: #9ca3af;
}

.fg-content-wrapper .ufg-visitor-notice-box .ufg-visitor-text {
	font-weight: 500;
	color: #4b5563;
}

@keyframes ufgFadeIn {
	from { opacity: 0; transform: translateY(-10px); }
	to { opacity: 1; transform: translateY(0); }
}

