/**
 * Public Styles for Gay Sauna Guide
 *
 * Design System:
 * - Colors: Primary Dark (#121316), Primary Gray (#8E99A6), Accent Orange (#C76B36), Accent Teal (#2BC1BF), Background Light (#F7F8FA)
 * - Typography: Manrope (loaded by Elementor theme)
 * - Container: 1240px max-width
 * - Methodology: BEM with gsg- prefix
 *
 * @package    GaySaunaGuide
 * @subpackage GaySaunaGuide/public/css
 * @author     Mark Harris
 */

/* ===== CSS Variables ===== */
:root {
	--gsg-primary-dark: #121316;
	--gsg-primary-gray: #8E99A6;
	--gsg-accent-orange: #C76B36;
	--gsg-accent-teal: #2BC1BF;
	--gsg-background-light: #F7F8FA;
	--gsg-background-dark: #1b2026;
	--gsg-white: #FFFFFF;
	--gsg-border-color: #E1E4E8;
	--gsg-container-width: 1240px;
	--gsg-spacing-xs: 0.5rem;
	--gsg-spacing-sm: 1rem;
	--gsg-spacing-md: 1.5rem;
	--gsg-spacing-lg: 2rem;
	--gsg-spacing-xl: 3rem;
	--gsg-radius-sm: 4px;
	--gsg-radius-md: 8px;
	--gsg-radius-lg: 12px;
	--gsg-radius-xs: 2px;

	/* New Directory Design Colors */
	--gsg-cyan-bright: #3ECFC4;
	--gsg-orange-bright: #E07227;
	--gsg-teal-bright: #35CCBD;
	--gsg-slate-dark: #4A5663;
	--gsg-slate-medium: #53616D;
	--gsg-slate-light: #6B7785;
	--gsg-border-light: #95a6b6;
}

/* ===== Container ===== */
.gsg-container {
	width: 100%;
	max-width: var(--gsg-container-width);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--gsg-spacing-md);
	padding-right: var(--gsg-spacing-md);
}

/* ===== Single Venue Layout ===== */
.gsg-single-venue {
	background: var(--gsg-background-dark, #1b2026);
	padding-top: var(--gsg-spacing-xl);
	padding-bottom: var(--gsg-spacing-xl);
}

/* Hero Image Section */
.gsg-venue-hero {
	position: relative;
	width: 100%;
	height: 400px;
	overflow: hidden;
	margin-bottom: var(--gsg-spacing-xl);
	border-radius: var(--gsg-radius-lg);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
	/* Dark background ensures white logos/images are visible */
	background: linear-gradient(135deg, var(--gsg-primary-dark) 0%, #1a1b1f 100%);
}

/* Enhanced banner hero - larger and fills space */
.gsg-venue-hero--enhanced {
	height: 500px;
}

.gsg-venue-hero__image {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
	padding: var(--gsg-spacing-lg);
	/* Add subtle dark overlay to ensure white logos/images are visible */
	filter: brightness(0.85) contrast(1.05);
}

/* Enhanced banner image - cover mode with no padding */
.gsg-venue-hero--enhanced .gsg-venue-hero__image {
	object-fit: cover;
	padding: 0;
	filter: none; /* Remove filter for generated banners */
}

.gsg-venue-hero__overlay {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	background: linear-gradient(to top, rgba(18, 19, 22, 0.9) 0%, rgba(18, 19, 22, 0.3) 60%, transparent 100%);
	padding: var(--gsg-spacing-xl) var(--gsg-spacing-lg) var(--gsg-spacing-lg);
}

.gsg-venue-hero__title {
	color: var(--gsg-white);
	font-size: 2.5rem;
	font-weight: 700;
	margin: 0 0 var(--gsg-spacing-sm);
	line-height: 1.2;
}

.gsg-venue-hero__badge-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--gsg-spacing-md);
	flex-wrap: wrap;
}

.gsg-venue-hero__title {
	margin: 0;
	flex: 0 1 auto;
}

.gsg-venue-hero__actions {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-shrink: 0;
}

/* Simple Header (no hero image) - Dark Theme */
.gsg-venue-header {
	background: var(--gsg-slate-dark, #4A5663);
	padding: var(--gsg-spacing-xl) 0;
	margin-bottom: var(--gsg-spacing-xl);
}

.gsg-venue-header__title {
	color: var(--gsg-white, #fff);
	font-size: 2.5rem;
	font-weight: 700;
	margin: 0;
	line-height: 1.2;
	flex: 0 1 auto;
}

.gsg-venue-header__badge-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--gsg-spacing-md);
	flex-wrap: wrap;
}

.gsg-venue-header__actions {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-shrink: 0;
}

/* Share Button */
.gsg-share-button {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.75rem 1.25rem;
	background: var(--gsg-orange-bright, #E07227);
	border: 1px solid var(--gsg-orange-bright, #E07227);
	border-radius: var(--gsg-radius-xs, 2px);
	color: var(--gsg-white);
	font-size: 0.9375rem;
	font-weight: 600;
	cursor: pointer;
	transition: transform 0.2s ease;
	flex-shrink: 0;
}

.gsg-share-button:hover {
	background: var(--gsg-orange-bright, #E07227);
	border-color: var(--gsg-orange-bright, #E07227);
	color: var(--gsg-white);
	transform: translateY(-2px);
}

.gsg-share-button:active {
	transform: translateY(0);
}

.gsg-share-button__icon {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

/* Share button in non-hero header - Dark Theme */
.gsg-venue-header .gsg-share-button {
	background: var(--gsg-orange-bright, #E07227);
	border: 1px solid var(--gsg-orange-bright, #E07227);
	color: var(--gsg-white);
}

.gsg-venue-header .gsg-share-button:hover {
	background: var(--gsg-orange-bright, #E07227);
	border-color: var(--gsg-orange-bright, #E07227);
	color: var(--gsg-white);
}

/* Chat Now Button */
.gsg-chat-button {
	background: var(--gsg-cyan-bright, #3ECFC4);
	border: 1px solid var(--gsg-cyan-bright, #3ECFC4);
	color: var(--gsg-white);
	text-decoration: none;
}

.gsg-chat-button:hover {
	background: var(--gsg-cyan-bright, #3ECFC4);
	border-color: var(--gsg-cyan-bright, #3ECFC4);
	color: var(--gsg-white);
}

/* Chat button in non-hero header - Dark Theme */
.gsg-venue-header .gsg-chat-button {
	background: var(--gsg-cyan-bright, #3ECFC4);
	border: 1px solid var(--gsg-cyan-bright, #3ECFC4);
	color: var(--gsg-white);
}

.gsg-venue-header .gsg-chat-button:hover {
	background: var(--gsg-cyan-bright, #3ECFC4);
	border-color: var(--gsg-cyan-bright, #3ECFC4);
	color: var(--gsg-white);
}

/* Share Feedback Toast */
.gsg-share-feedback {
	position: fixed;
	bottom: 2rem;
	left: 50%;
	transform: translateX(-50%) translateY(100px);
	background: var(--gsg-primary-dark);
	color: var(--gsg-white);
	padding: 1rem 1.5rem;
	border-radius: var(--gsg-radius-md);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
	font-size: 0.9375rem;
	font-weight: 500;
	z-index: 10000;
	opacity: 0;
	transition: all 0.3s ease;
	pointer-events: none;
}

.gsg-share-feedback--visible {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

.gsg-share-feedback--error {
	background: #D63638;
}

/* Content Layout */
.gsg-venue-content {
	display: grid;
	grid-template-columns: 1fr 350px;
	gap: var(--gsg-spacing-xl);
	align-items: start;
}

.gsg-venue-main {
	min-width: 0; /* Prevent grid overflow */
}

.gsg-venue-sidebar {
	position: sticky;
	top: var(--gsg-spacing-lg);
	background: transparent;
}

/* Venue Sections */
.gsg-venue-excerpt,
.gsg-venue-description,
.gsg-venue-amenities,
.gsg-venue-hours,
.gsg-venue-gallery {
	margin-bottom: var(--gsg-spacing-xl);
}

.gsg-venue-main h2 {
	color: var(--gsg-white, #fff);
	font-size: 1.75rem;
	font-weight: 700;
	margin: 0 0 var(--gsg-spacing-md);
	padding-bottom: var(--gsg-spacing-sm);
	border-bottom: 2px solid var(--gsg-cyan-bright, #3ECFC4);
}

.gsg-venue-excerpt p {
	font-size: 1.125rem;
	line-height: 1.6;
	color: var(--gsg-white, #fff);
	font-weight: 500;
}

.gsg-venue-description__content {
	color: var(--gsg-white, #fff);
	font-size: 1rem;
	line-height: 1.8;
}

.gsg-venue-description__content p {
	margin-bottom: var(--gsg-spacing-md);
	color: var(--gsg-white, #fff);
}

/* Read More Toggle Button - Dark Theme */
.gsg-venue-description__content .gsg-read-more-toggle,
.gsg-venue-description .gsg-venue-description__content .gsg-read-more-toggle,
button.gsg-read-more-toggle {
	display: inline-block !important;
	margin-top: var(--gsg-spacing-sm) !important;
	margin-bottom: 0 !important;
	padding: 0.75rem 1.5rem !important;
	background: var(--gsg-cyan-bright, #3ECFC4) !important;
	background-color: var(--gsg-cyan-bright, #3ECFC4) !important;
	background-image: none !important;
	border: none !important;
	border-radius: var(--gsg-radius-xs, 2px) !important;
	color: var(--gsg-primary-dark, #121316) !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	font-family: inherit !important;
	line-height: 1.5 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-shadow: none !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	box-shadow: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	vertical-align: baseline !important;
	width: auto !important;
	min-width: auto !important;
	max-width: none !important;
}

.gsg-venue-description__content .gsg-read-more-toggle:hover,
.gsg-venue-description .gsg-venue-description__content .gsg-read-more-toggle:hover,
button.gsg-read-more-toggle:hover,
.gsg-venue-description__content .gsg-read-more-toggle:focus,
.gsg-venue-description .gsg-venue-description__content .gsg-read-more-toggle:focus,
button.gsg-read-more-toggle:focus {
	background: var(--gsg-orange-bright, #FF6B35) !important;
	background-color: var(--gsg-orange-bright, #FF6B35) !important;
	background-image: none !important;
	color: var(--gsg-white, #fff) !important;
	border: none !important;
	text-decoration: none !important;
	box-shadow: 0 4px 12px rgba(255, 107, 53, 0.3) !important;
	transform: translateY(-2px) !important;
}

.gsg-venue-description__content .gsg-read-more-toggle i,
.gsg-venue-description .gsg-venue-description__content .gsg-read-more-toggle i,
button.gsg-read-more-toggle i {
	margin-left: 0.25rem !important;
	margin-right: 0 !important;
	font-size: 0.875rem !important;
	transition: transform 0.2s ease !important;
	vertical-align: baseline !important;
}

/* Status Badges */
.gsg-badge {
	display: inline-block;
	padding: 0.375rem 0.875rem;
	border-radius: var(--gsg-radius-sm);
	font-size: 0.875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.gsg-badge--draft {
	background: #F0F0F1;
	color: #646970;
}

.gsg-badge--published {
	background: #00A32A;
	color: var(--gsg-white);
}

.gsg-badge--claimed {
	background: var(--gsg-accent-teal);
	color: var(--gsg-white);
}

.gsg-badge--premium {
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color: var(--gsg-white);
	box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
}

.gsg-badge--premium-plus {
	background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
	color: var(--gsg-white);
	box-shadow: 0 2px 8px rgba(245, 87, 108, 0.3);
	font-weight: 700;
}

.gsg-badge--closed {
	background: #D63638;
	color: var(--gsg-white);
}

/* Opening Hours Status Badges */
.gsg-badge--open {
	background: #00A32A;
	color: var(--gsg-white);
}

.gsg-badge--opens-soon {
	background: var(--gsg-accent-orange);
	color: var(--gsg-white);
}

.gsg-badge--closed {
	background: #646970;
	color: var(--gsg-white);
}

/* Amenities Grid - Accordion for all viewports - Dark Theme */
.gsg-amenities-category {
	margin-bottom: var(--gsg-spacing-md);
	border: none;
	border-radius: var(--gsg-radius-xs, 2px);
	overflow: hidden;
	background: var(--gsg-background-dark, #1b2026);
}

.gsg-amenities-category:last-child {
	margin-bottom: 0;
}

.gsg-amenities-category__title {
	color: var(--gsg-white, #fff);
	font-size: 1.125rem;
	font-weight: 600;
	margin: 0;
	padding: var(--gsg-spacing-sm) var(--gsg-spacing-md);
	background: var(--gsg-slate-dark, #4A5663);
	border-left: 4px solid var(--gsg-orange-bright, #FF6B35);
	border-bottom: 1px solid transparent;
	display: flex;
	align-items: center;
	gap: var(--gsg-spacing-xs);
	cursor: pointer;
	user-select: none;
	position: relative;
	transition: all 0.2s ease;
}

.gsg-amenities-category[open] .gsg-amenities-category__title {
	border-bottom-color: var(--gsg-slate-light, #6B7785);
	background: var(--gsg-slate-medium, #53616D);
}

.gsg-amenities-category__title:hover {
	background: var(--gsg-slate-medium, #53616D);
}

/* Remove default details marker */
.gsg-amenities-category__title::-webkit-details-marker,
.gsg-amenities-category__title::marker {
	display: none;
}

.gsg-amenities-category__icon {
	font-size: 1.25rem;
	line-height: 1;
}

.gsg-amenities-category__label {
	flex: 1;
	display: flex;
	align-items: baseline;
	gap: 0.375rem;
}

.gsg-amenities-category__count {
	color: var(--gsg-white, #fff);
	font-size: 0.875rem;
	font-weight: 400;
	opacity: 0.7;
}

/* Chevron toggle indicator - visible on all viewports */
.gsg-amenities-category__toggle {
	display: block;
	width: 20px;
	height: 20px;
	position: relative;
	flex-shrink: 0;
	transition: transform 0.2s ease;
}

/* Chevron pointing down (closed state) - Dark Theme */
.gsg-amenities-category__toggle::before {
	content: '';
	position: absolute;
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--gsg-white, #fff);
	border-bottom: 2px solid var(--gsg-white, #fff);
	top: 50%;
	left: 50%;
	transform: translate(-50%, -60%) rotate(45deg);
	transition: transform 0.2s ease;
}

/* Chevron pointing up (open state) */
.gsg-amenities-category[open] .gsg-amenities-category__toggle::before {
	transform: translate(-50%, -40%) rotate(-135deg);
}

.gsg-amenities-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 10px;
	margin-top: 10px;
}

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

.gsg-amenity-item {
	display: flex;
	align-items: center;
	padding: var(--gsg-spacing-sm);
	background: var(--gsg-slate-dark, #4A5663);
	border: 1px solid var(--gsg-slate-light, #6B7785);
	border-radius: var(--gsg-radius-xs, 2px);
	transition: all 0.2s ease;
}

.gsg-amenity-item:hover {
	border-color: var(--gsg-cyan-bright, #3ECFC4);
	box-shadow: 0 2px 8px rgba(62, 207, 196, 0.3);
}

.gsg-amenity-item__icon {
	width: 20px;
	text-align: center;
	color: var(--gsg-cyan-bright, #3ECFC4);
	margin-right: var(--gsg-spacing-sm);
	font-size: 1.125rem;
}

.gsg-amenity-item__name {
	color: var(--gsg-white, #fff);
	font-size: 0.9375rem;
	font-weight: 500;
}

/* Opening Hours Table - Dark Theme */
.gsg-hours-table {
	width: 100%;
	border-collapse: collapse;
	background: var(--gsg-slate-medium, #53616D);
	border: 1px solid var(--gsg-slate-light, #6B7785);
	border-radius: var(--gsg-radius-xs, 2px);
	overflow: hidden;
}

.gsg-hours-table__row {
	border-bottom: 1px solid var(--gsg-slate-light, #6B7785);
}

.gsg-hours-table__row:last-child {
	border-bottom: none;
}

.gsg-hours-table__row--today {
	background: rgba(62, 207, 196, 0.15);
}

.gsg-hours-table__row--today .gsg-hours-table__day {
	color: var(--gsg-cyan-bright, #3ECFC4);
	font-weight: 700;
}

.gsg-hours-table__day,
.gsg-hours-table__hours {
	padding: var(--gsg-spacing-md);
	color: var(--gsg-white, #fff);
	font-size: 0.9375rem;
}

.gsg-hours-table__day {
	font-weight: 600;
	width: 180px;
	vertical-align: middle;
}

.gsg-hours-table__today-badge {
	display: inline-block;
	padding: 0.25rem 0.5rem;
	background: var(--gsg-cyan-bright, #3ECFC4);
	color: var(--gsg-primary-dark, #121316);
	font-size: 0.6875rem;
	font-weight: 700;
	border-radius: var(--gsg-radius-xs, 2px);
	margin-left: 0.5rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	vertical-align: middle;
	line-height: 1;
}

.gsg-hours-table__hours {
	color: var(--gsg-white, #fff);
	vertical-align: middle;
	opacity: 0.9;
}

.gsg-hours-table__hours-text {
	display: block;
	color: var(--gsg-white, #fff);
	font-weight: 500;
}

.gsg-hours-table__note {
	display: block;
	font-size: 0.8125rem;
	color: var(--gsg-white, #fff);
	font-style: italic;
	margin-top: 0.25rem;
	opacity: 0.7;
}

/* Photo Gallery - Dark Theme */
.gsg-photo-count {
	color: var(--gsg-white, #fff);
	font-size: 1.125rem;
	font-weight: 400;
	opacity: 0.7;
}

.gsg-gallery-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: var(--gsg-spacing-sm);
}

.gsg-gallery-item {
	position: relative;
	border-radius: var(--gsg-radius-xs, 2px);
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--gsg-slate-dark, #4A5663);
	border: 1px solid var(--gsg-slate-light, #6B7785);
	cursor: pointer;
	transition: all 0.3s ease;
}

.gsg-gallery-item:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
	border-color: var(--gsg-cyan-bright, #3ECFC4);
}

.gsg-gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.gsg-gallery-item:hover img {
	transform: scale(1.05);
}

.gsg-gallery-item-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(18, 19, 22, 0.7);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
}

.gsg-gallery-item:hover .gsg-gallery-item-overlay {
	opacity: 1;
}

.gsg-gallery-item-overlay i {
	font-size: 2rem;
	color: var(--gsg-white);
}

/* View All Tile (Mobile Only) */
.gsg-gallery-item--view-all {
	display: none; /* Hidden on desktop */
	background: var(--gsg-slate-dark, #4A5663);
	border: 2px dashed var(--gsg-cyan-bright, #3ECFC4);
}

.gsg-gallery-view-all {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	color: var(--gsg-white);
	font-weight: 600;
}

.gsg-gallery-view-all i {
	font-size: 2rem;
	color: var(--gsg-cyan-bright, #3ECFC4);
}

.gsg-gallery-view-all span {
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.gsg-gallery-view-all-count {
	font-size: 0.75rem;
	color: var(--gsg-cyan-bright, #3ECFC4);
	font-weight: 700;
}

/* Photo Pending Approval Badge (Admin Only) */
.gsg-photo-pending-badge {
	position: absolute;
	top: var(--gsg-spacing-sm);
	right: var(--gsg-spacing-sm);
	background: rgba(255, 152, 0, 0.95);
	color: var(--gsg-white);
	padding: 0.4rem 0.8rem;
	border-radius: var(--gsg-radius-sm);
	font-size: 0.75rem;
	font-weight: 600;
	z-index: 10;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
	display: flex;
	align-items: center;
	gap: 0.3rem;
}

.gsg-photo-pending-badge--hero {
	top: var(--gsg-spacing-md);
	right: var(--gsg-spacing-md);
	font-size: 0.85rem;
	padding: 0.5rem 1rem;
}

.gsg-photo-pending-badge i {
	font-size: 0.85em;
	animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.6; }
}

/* Lightbox Modal */
.gsg-lightbox {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 99999;
	animation: gsgFadeIn 0.3s ease;
}

.gsg-lightbox__overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.95);
}

.gsg-lightbox__content {
	position: relative;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.gsg-lightbox__image-container {
	max-width: 90%;
	max-height: 90%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.gsg-lightbox__image-container img {
	max-width: 100%;
	max-height: 90vh;
	height: auto;
	width: auto;
	border-radius: var(--gsg-radius-md);
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}

.gsg-lightbox__close {
	position: absolute;
	top: 20px;
	right: 20px;
	background: rgba(255, 255, 255, 0.1);
	border: 2px solid var(--gsg-white);
	color: var(--gsg-white);
	font-size: 2rem;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
	line-height: 1;
	padding: 0;
	z-index: 10;
}

.gsg-lightbox__close:hover {
	background: var(--gsg-white);
	color: var(--gsg-primary-dark);
	transform: rotate(90deg);
}

.gsg-lightbox__prev,
.gsg-lightbox__next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(255, 255, 255, 0.1);
	border: 2px solid var(--gsg-white);
	color: var(--gsg-white);
	font-size: 1.5rem;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
	z-index: 10;
}

.gsg-lightbox__prev {
	left: 20px;
}

.gsg-lightbox__next {
	right: 20px;
}

.gsg-lightbox__prev:hover,
.gsg-lightbox__next:hover {
	background: var(--gsg-white);
	color: var(--gsg-primary-dark);
}

.gsg-lightbox__prev:disabled,
.gsg-lightbox__next:disabled {
	opacity: 0.3;
	cursor: not-allowed;
}

.gsg-lightbox__counter {
	position: absolute;
	bottom: 30px;
	left: 50%;
	transform: translateX(-50%);
	background: rgba(255, 255, 255, 0.9);
	color: var(--gsg-primary-dark);
	padding: 0.5rem 1.5rem;
	border-radius: 50px;
	font-size: 0.875rem;
	font-weight: 600;
	z-index: 10;
}

@keyframes gsgFadeIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

/* Sidebar Card - Dark Theme */
.gsg-venue-card,
.gsg-venue-sidebar .gsg-venue-card {
	background: var(--gsg-slate-dark, #4A5663) !important;
	background-color: var(--gsg-slate-dark, #4A5663) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
	border-radius: var(--gsg-radius-xs, 2px) !important;
	padding: var(--gsg-spacing-lg) !important;
	margin-bottom: var(--gsg-spacing-md) !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
}

.gsg-venue-card:last-child {
	margin-bottom: 0;
}

.gsg-venue-card__title,
.gsg-venue-card h3 {
	color: var(--gsg-white, #fff) !important;
	font-size: 1.125rem;
	font-weight: 700;
	margin: 0 0 var(--gsg-spacing-md);
	padding-bottom: var(--gsg-spacing-sm);
	border-bottom: 1px solid var(--gsg-slate-light, #6B7785);
}

.gsg-venue-card__item {
	display: flex;
	align-items: center;
	margin-bottom: var(--gsg-spacing-sm);
	padding-bottom: var(--gsg-spacing-sm);
	border-bottom: 1px solid var(--gsg-slate-light, #6B7785);
}

.gsg-venue-card__item:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}

.gsg-venue-card__item .gsg-icon,
.gsg-venue-card__item i,
.gsg-venue-card__item .fa,
.gsg-venue-card__item .fas,
.gsg-venue-card__item .far {
	width: 24px;
	text-align: center;
	color: var(--gsg-cyan-bright, #3ECFC4) !important;
	margin-right: 0.75rem;
	flex-shrink: 0;
	font-size: 18px;
	display: inline-block;
	font-style: normal;
	font-variant: normal;
	text-rendering: auto;
	line-height: 1;
}

.gsg-venue-card__content {
	flex: 1;
	padding: 0;
}

.gsg-venue-card__content strong {
	display: block;
	color: var(--gsg-white, #fff);
	font-size: 0.875rem;
	font-weight: 600;
	margin-bottom: 0.25rem;
}

.gsg-venue-card__content p,
.gsg-venue-card p {
	color: var(--gsg-white, #fff) !important;
	font-size: 0.9375rem;
	line-height: 1.6;
	margin: 0 0 1rem 0;
	opacity: 0.9;
}

.gsg-venue-card__content a:not(.gsg-btn) {
	color: var(--gsg-cyan-bright, #3ECFC4);
	text-decoration: none;
	transition: color 0.2s ease;
}

.gsg-venue-card__content a:not(.gsg-btn):hover {
	color: var(--gsg-orange-bright, #FF6B35);
	text-decoration: underline;
}

/* Opening hours status in sidebar */
.gsg-venue-card__status {
	font-size: 1rem !important;
	padding: 0 !important;
	margin: 0 !important;
}

.gsg-venue-card__status--open {
	color: #00A32A !important;
}

.gsg-venue-card__status--soon {
	color: var(--gsg-accent-orange) !important;
}

.gsg-venue-card__status--closed {
	color: var(--gsg-white, #fff) !important;
}

/* Claim Card - Dark Theme */
.gsg-venue-card--claim {
	background: var(--gsg-slate-medium, #53616D);
	border-color: var(--gsg-cyan-bright, #3ECFC4);
}

.gsg-venue-card--claim p {
	color: var(--gsg-white, #fff);
	font-size: 0.9375rem;
	line-height: 1.6;
	margin-bottom: var(--gsg-spacing-md);
	opacity: 0.9;
}

/* Premium Card - Dark Theme */
.gsg-venue-card--premium {
	background: linear-gradient(135deg, rgba(102, 126, 234, 0.2) 0%, var(--gsg-slate-dark, #4A5663) 100%);
	border-color: #667eea;
	text-align: center;
}

.gsg-venue-card--premium-plus {
	background: linear-gradient(135deg, rgba(240, 147, 251, 0.2) 0%, var(--gsg-slate-dark, #4A5663) 100%);
	border-color: #f5576c;
	text-align: center;
}

.gsg-premium-badge {
	display: inline-flex;
	align-items: center;
	gap: var(--gsg-spacing-sm);
	padding: var(--gsg-spacing-sm) var(--gsg-spacing-md);
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color: var(--gsg-white);
	font-size: 1rem;
	font-weight: 700;
	border-radius: var(--gsg-radius-xs, 2px);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
}

.gsg-premium-badge--plus {
	background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
	box-shadow: 0 4px 12px rgba(245, 87, 108, 0.3);
}

/* Map Container - Dark Theme */
.gsg-map-container {
	width: 100%;
	height: 300px;
	border-radius: var(--gsg-radius-xs, 2px);
	overflow: hidden;
	background: var(--gsg-slate-medium, #53616D);
}

/* Buttons - HIGH SPECIFICITY to override Elementor theme */
.gsg-button,
button.gsg-button,
a.gsg-button,
input.gsg-button {
	display: inline-block !important;
	padding: 0.75rem 1.5rem !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	text-align: center !important;
	text-decoration: none !important;
	border-radius: var(--gsg-radius-xs, 2px) !important;
	border: none !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	line-height: 1.5 !important;
}

.gsg-button--primary,
button.gsg-button--primary,
a.gsg-button--primary,
input.gsg-button--primary {
	background: var(--gsg-cyan-bright, #3ECFC4) !important;
	color: var(--gsg-primary-dark, #121316) !important;
}

.gsg-button--primary:hover,
button.gsg-button--primary:hover,
a.gsg-button--primary:hover,
input.gsg-button--primary:hover {
	background: var(--gsg-orange-bright, #FF6B35) !important;
	color: var(--gsg-white, #fff) !important;
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(62, 207, 196, 0.4);
}

.gsg-button--secondary,
button.gsg-button--secondary,
a.gsg-button--secondary,
input.gsg-button--secondary {
	background: var(--gsg-orange-bright, #FF6B35) !important;
	color: var(--gsg-white, #fff) !important;
}

.gsg-button--secondary:hover,
button.gsg-button--secondary:hover,
a.gsg-button--secondary:hover,
input.gsg-button--secondary:hover {
	background: var(--gsg-cyan-bright, #3ECFC4) !important;
	color: var(--gsg-primary-dark, #121316) !important;
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(255, 107, 53, 0.4);
}

.gsg-button--block,
button.gsg-button--block,
a.gsg-button--block,
input.gsg-button--block {
	display: block !important;
	width: 100% !important;
}

.gsg-button--small,
button.gsg-button--small,
a.gsg-button--small,
input.gsg-button--small {
	padding: 0.5rem 1rem !important;
	font-size: 0.875rem !important;
}

.gsg-button--full,
button.gsg-button--full,
a.gsg-button--full,
input.gsg-button--full {
	display: block !important;
	width: 100% !important;
	justify-content: center !important;
}

.gsg-link {
	color: var(--gsg-cyan-bright, #3ECFC4);
	text-decoration: none;
	font-size: 0.9375rem;
	font-weight: 500;
	transition: color 0.2s ease;
}

.gsg-link:hover {
	color: var(--gsg-orange-bright, #FF6B35);
	text-decoration: underline;
}

.gsg-link i {
	font-size: 0.75rem;
	margin-left: 0.25rem;
}

/* ===== Responsive Design ===== */

/* Tablets (768px and below) */
@media (max-width: 768px) {
	.gsg-venue-content {
		grid-template-columns: 1fr;
		gap: var(--gsg-spacing-lg);
	}

	.gsg-venue-sidebar {
		position: static;
	}

	.gsg-venue-hero {
		height: 300px;
	}

	.gsg-venue-hero--enhanced {
		height: 400px;
	}

	.gsg-venue-hero__title,
	.gsg-venue-header__title {
		font-size: 2rem;
	}

	/* Mobile header layout - Simple vertical stack */
	.gsg-venue-hero__badge-row,
	.gsg-venue-header__badge-row {
		display: flex !important;
		flex-direction: column !important;
		gap: 0.5rem !important;
		align-items: stretch !important;
	}

	/* Title centered */
	.gsg-venue-hero__title,
	.gsg-venue-header__title {
		text-align: center !important;
		width: 100% !important;
	}

	/* Actions container - horizontal flex with explicit widths */
	.gsg-venue-hero__actions,
	.gsg-venue-header__actions {
		display: flex !important;
		flex-direction: row !important;
		gap: 0.5rem !important;
		width: 100% !important;
	}

	/* Chat button (link) takes 75% width */
	.gsg-venue-hero__actions a.gsg-chat-button,
	.gsg-venue-header__actions a.gsg-chat-button,
	.gsg-venue-hero__actions a.gsg-share-button,
	.gsg-venue-header__actions a.gsg-share-button {
		width: calc(75% - 0.25rem) !important;
		flex-shrink: 0 !important;
	}

	/* Share button (button element) takes 25% width */
	.gsg-venue-hero__actions button.gsg-share-button,
	.gsg-venue-header__actions button.gsg-share-button {
		width: calc(25% - 0.25rem) !important;
		flex-shrink: 0 !important;
		justify-content: center !important;
	}

	/* Share button mobile adjustments - hide text on button element only, show icon only */
	.gsg-venue-hero__actions button.gsg-share-button .gsg-share-button__text,
	.gsg-venue-header__actions button.gsg-share-button .gsg-share-button__text {
		display: none !important;
	}

	.gsg-venue-hero__actions button.gsg-share-button .gsg-share-button__icon,
	.gsg-venue-header__actions button.gsg-share-button .gsg-share-button__icon {
		width: 22px !important;
		height: 22px !important;
		margin: 0 !important;
	}

	/* Mobile: Single column for amenities grid */
	.gsg-amenities-grid {
		grid-template-columns: 1fr;
	}

	.gsg-gallery-grid {
		grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
		gap: 0.5rem;
	}

	.gsg-lightbox__close {
		top: 10px;
		right: 10px;
		width: 40px;
		height: 40px;
		font-size: 1.5rem;
	}

	.gsg-lightbox__prev,
	.gsg-lightbox__next {
		width: 40px;
		height: 40px;
		font-size: 1.25rem;
	}

	.gsg-lightbox__prev {
		left: 10px;
	}

	.gsg-lightbox__next {
		right: 10px;
	}

	.gsg-lightbox__counter {
		bottom: 20px;
		font-size: 0.75rem;
		padding: 0.375rem 1rem;
	}

	.gsg-hours-table__day {
		width: 120px;
	}
}

/* Mobile (480px and below) */
@media (max-width: 480px) {
	:root {
		--gsg-spacing-lg: 1.5rem;
		--gsg-spacing-xl: 2rem;
	}

	.gsg-container {
		padding-left: var(--gsg-spacing-sm);
		padding-right: var(--gsg-spacing-sm);
	}

	.gsg-venue-hero {
		height: 250px;
	}

	.gsg-venue-hero--enhanced {
		height: 350px;
	}

	.gsg-venue-hero__title,
	.gsg-venue-header__title {
		font-size: 1.5rem;
	}

	.gsg-venue-main h2 {
		font-size: 1.375rem;
	}

	.gsg-hours-table__day,
	.gsg-hours-table__hours {
		padding: var(--gsg-spacing-sm);
		font-size: 0.875rem;
	}

	.gsg-hours-table__day {
		width: 100px;
	}

	.gsg-hours-table__today-badge {
		display: block;
		margin-left: 0;
		margin-top: 0.25rem;
		width: fit-content;
	}

	.gsg-gallery-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 0.5rem;
	}

	/* Hide photos after the first 3 on mobile */
	.gsg-gallery-item--mobile-hidden {
		display: none;
	}

	/* Show View All tile on mobile when there are more than 4 photos */
	.gsg-gallery-item--view-all {
		display: flex;
	}

	.gsg-venue-card {
		padding: var(--gsg-spacing-md);
	}
}

/* ===== Directory Styles ===== */

/* Directory Container */
.gsg-directory {
	background: var(--gsg-background-dark);
	padding: var(--gsg-spacing-xl) 0;
}

.gsg-directory__container {
	max-width: var(--gsg-container-width);
	margin: 0 auto;
	padding: 0 var(--gsg-spacing-md);
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: var(--gsg-spacing-xl);
}

/* Single column on mobile */
@media (max-width: 768px) {
	.gsg-directory__container {
		grid-template-columns: 1fr;
		gap: var(--gsg-spacing-lg);
	}
}

/* ===== Filter Sidebar ===== */
.gsg-directory__filters {
	background: var(--gsg-slate-dark);
	border-radius: var(--gsg-radius-xs);
	padding: var(--gsg-spacing-md);
	position: sticky;
	top: var(--gsg-spacing-md);
	max-height: calc(100vh - 2 * var(--gsg-spacing-md));
	overflow-y: auto;
	overflow-x: hidden;
}

.gsg-directory__filters-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: var(--gsg-spacing-md);
	padding-bottom: var(--gsg-spacing-sm);
	border-bottom: 1px solid var(--gsg-slate-light);
}

.gsg-directory__filters-title {
	margin: 0;
	font-size: 1.125rem;
	color: var(--gsg-white);
}

/* Mobile Filter Toggle Button - Hidden on Desktop */
.gsg-directory__filters-toggle {
	display: none !important; /* Hidden by default - shown only on mobile. Using !important to override theme reset.css */
}

.gsg-directory__clear-filters {
	font-size: 0.875rem;
	color: var(--gsg-accent-orange);
	text-decoration: none;
	transition: color 0.2s;
}

.gsg-directory__clear-filters:hover {
	color: var(--gsg-accent-teal);
}

/* Filter Form */
.gsg-filter-group {
	margin-bottom: var(--gsg-spacing-md);
}

.gsg-filter-group h4 {
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--gsg-white);
	margin: 0 0 var(--gsg-spacing-sm);
	font-weight: 600;
}

.gsg-filter-select,
.gsg-filter-input {
	width: 100%;
	padding: var(--gsg-spacing-sm);
	border: 1px solid var(--gsg-border-color);
	border-radius: var(--gsg-radius-sm);
	font-size: 0.875rem;
	color: var(--gsg-primary-dark);
	background: var(--gsg-white);
	transition: border-color 0.2s;
}

.gsg-filter-select:focus,
.gsg-filter-input:focus {
	outline: none;
	border-color: var(--gsg-accent-teal);
}

/* Search Input Container */
.gsg-filter-search {
	position: relative;
}

.gsg-filter-search i {
	position: absolute;
	right: var(--gsg-spacing-sm);
	top: 50%;
	transform: translateY(-50%);
	color: var(--gsg-primary-gray);
	pointer-events: none;
}

.gsg-filter-search .gsg-filter-input {
	padding-right: 2.5rem;
}

/* Filter Amenities - max-height and overflow removed since parent filter sidebar is now scrollable */

.gsg-filter-amenities__category {
	margin-bottom: var(--gsg-spacing-sm);
}

.gsg-filter-amenities__category-name {
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--gsg-primary-gray);
	margin: 0 0 0.25rem;
	text-transform: capitalize;
}

.gsg-filter-checkbox--hidden {
	display: none !important;
}

.gsg-directory__filters .gsg-filter-show-more {
	display: flex !important;
	align-items: center !important;
	gap: 0.375rem !important;
	width: 100% !important;
	padding: 0.5rem 0 !important;
	margin: 0.25rem 0 0.75rem !important;
	background: transparent !important;
	border: none !important;
	color: var(--gsg-cyan-bright) !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	transition: color 0.2s !important;
	text-align: left !important;
	line-height: 1.4 !important;
}

.gsg-directory__filters .gsg-filter-show-more:hover {
	color: var(--gsg-white) !important;
	background: transparent !important;
}

.gsg-directory__filters .gsg-filter-show-more i {
	transition: transform 0.3s !important;
}

.gsg-directory__filters .gsg-filter-show-more.expanded i {
	transform: rotate(180deg) !important;
}

.gsg-filter-checkbox {
	display: flex;
	align-items: center;
	gap: var(--gsg-spacing-xs);
	padding: 0.375rem 0;
	font-size: 0.875rem;
	cursor: pointer;
	color: var(--gsg-white);
	transition: color 0.2s;
}

.gsg-filter-checkbox:hover {
	color: var(--gsg-cyan-bright);
}

.gsg-filter-checkbox input[type="checkbox"] {
	margin: 0;
	cursor: pointer;
	accent-color: var(--gsg-cyan-bright);
}

.gsg-filter-checkbox i {
	width: 16px;
	text-align: center;
	color: var(--gsg-cyan-bright);
}

/* Open Now Toggle Button */
.gsg-filter-group--open-now {
	margin: var(--gsg-spacing-md) 0;
}

/* Reduce spacing in map search filters */
.gsg-map-search__filter-form .gsg-filter-group--open-now {
	margin-top: 0;
}

.gsg-directory__filter-form .gsg-open-now-toggle,
.gsg-map-search__filter-form .gsg-open-now-toggle,
button.gsg-open-now-toggle {
	width: 100% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: var(--gsg-spacing-xs) !important;
	padding: var(--gsg-spacing-sm) var(--gsg-spacing-md) !important;
	background: transparent !important;
	background-color: transparent !important;
	border: 2px solid var(--gsg-slate-light) !important;
	border-radius: var(--gsg-radius-xs) !important;
	color: var(--gsg-white) !important;
	font-size: 0.9375rem !important;
	font-weight: 500 !important;
	font-family: inherit !important;
	line-height: 1.5 !important;
	cursor: pointer !important;
	transition: all 0.2s !important;
	text-align: left !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: none !important;
	text-shadow: none !important;
	min-height: auto !important;
	height: auto !important;
}

.gsg-directory__filter-form .gsg-open-now-toggle:hover,
.gsg-map-search__filter-form .gsg-open-now-toggle:hover,
button.gsg-open-now-toggle:hover {
	background: transparent !important;
	background-color: transparent !important;
	border-color: var(--gsg-cyan-bright) !important;
	color: var(--gsg-cyan-bright) !important;
	box-shadow: none !important;
	transform: none !important;
}

.gsg-directory__filter-form .gsg-open-now-toggle--active,
.gsg-map-search__filter-form .gsg-open-now-toggle--active,
button.gsg-open-now-toggle.gsg-open-now-toggle--active {
	background: var(--gsg-cyan-bright) !important;
	background-color: var(--gsg-cyan-bright) !important;
	border-color: var(--gsg-cyan-bright) !important;
	color: var(--gsg-primary-dark) !important;
}

.gsg-directory__filter-form .gsg-open-now-toggle--active:hover,
.gsg-map-search__filter-form .gsg-open-now-toggle--active:hover,
button.gsg-open-now-toggle.gsg-open-now-toggle--active:hover {
	background: var(--gsg-cyan-bright) !important;
	background-color: var(--gsg-cyan-bright) !important;
	border-color: var(--gsg-cyan-bright) !important;
	color: var(--gsg-primary-dark) !important;
	box-shadow: none !important;
	transform: none !important;
}

.gsg-open-now-toggle__text {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 0.25rem;
}

.gsg-open-now-toggle .fa-clock {
	font-size: 1rem !important;
	margin: 0 !important;
}

.gsg-open-now-toggle__close {
	margin-left: auto !important;
	font-size: 1.125rem !important;
	opacity: 0.9;
}

.gsg-open-now-toggle--active .gsg-open-now-toggle__close:hover {
	opacity: 1;
}

.gsg-filter-count {
	font-size: 0.8125rem !important;
	opacity: 0.85;
	font-weight: 400 !important;
}

.gsg-directory__filter-form .gsg-filter-submit {
	width: 100%;
	padding: var(--gsg-spacing-sm) !important;
	background: var(--gsg-cyan-bright) !important;
	color: var(--gsg-primary-dark) !important;
	border: none !important;
	border-radius: var(--gsg-radius-xs);
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.05em !important;
	cursor: pointer;
	transition: background 0.2s;
	margin-top: var(--gsg-spacing-md);
}

.gsg-directory__filter-form .gsg-filter-submit:hover {
	background: var(--gsg-cyan-bright) !important;
	opacity: 0.9;
}

/* ===== Main Content Area ===== */
.gsg-directory__main {
	min-width: 0;
}

/* Results Header */
.gsg-directory__header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: var(--gsg-spacing-lg);
	padding-bottom: var(--gsg-spacing-sm);
	border-bottom: 2px solid var(--gsg-border-color);
}

.gsg-directory__count {
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--gsg-white);
}

.gsg-directory__layout-toggle {
	display: flex;
	gap: var(--gsg-spacing-xs);
}

.gsg-directory__layout-toggle .gsg-layout-btn {
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--gsg-background-light) !important;
	border: 1px solid var(--gsg-border-color) !important;
	border-radius: var(--gsg-radius-sm);
	color: var(--gsg-primary-gray) !important;
	cursor: pointer;
	transition: all 0.2s;
	padding: 0 !important;
}

.gsg-directory__layout-toggle .gsg-layout-btn:hover {
	background: var(--gsg-white) !important;
	color: var(--gsg-accent-teal) !important;
}

.gsg-directory__layout-toggle .gsg-layout-btn.active {
	background: var(--gsg-accent-teal) !important;
	color: var(--gsg-white) !important;
	border-color: var(--gsg-accent-teal) !important;
}

/* ===== Venue Cards ===== */
.gsg-directory__venues {
	display: grid;
	gap: var(--gsg-spacing-xl);
}

/* Grid Layout (2 columns for better card width) */
.gsg-directory__venues--grid {
	grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 900px) {
	.gsg-directory__venues--grid {
		grid-template-columns: 1fr;
		gap: var(--gsg-spacing-lg);
	}
}

/* List Layout (1 column) */
.gsg-directory__venues--list {
	grid-template-columns: 1fr;
}

/* Venue Card - Directory Specific Styling */
.gsg-directory__venues .gsg-venue-card,
.gsg-directory__venues .gsg-venue-card--premium,
.gsg-directory__venues .gsg-venue-card--premium-plus {
	background: var(--gsg-slate-medium) !important;
	border: none !important;
	border-radius: var(--gsg-radius-xs) !important;
	overflow: hidden;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	display: flex;
	flex-direction: column;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.gsg-directory__venues .gsg-venue-card:hover {
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
	transform: translateY(-4px);
}

/* Card Image */
.gsg-venue-card__image {
	position: relative;
	width: 100%;
	height: 280px;
	overflow: hidden;
	/* Dark gradient background like hero - ensures white logos/images are visible */
	background: linear-gradient(135deg, var(--gsg-primary-dark) 0%, #1a1b1f 100%);
}

.gsg-venue-card__image a {
	display: block;
	width: 100%;
	height: 100%;
}

.gsg-venue-card__image img {
	width: 100%;
	height: 100%;
	min-height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

.gsg-venue-card:hover .gsg-venue-card__image img {
	transform: scale(1.05);
	filter: brightness(0.9) contrast(1.05);
}

.gsg-venue-card__placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, var(--gsg-background-light) 0%, #E1E4E8 100%);
}

.gsg-venue-card__placeholder i {
	font-size: 3rem;
	color: var(--gsg-primary-gray);
	opacity: 0.5;
}

/* Card Overlay (like hero) */
/* Title in content section */
.gsg-directory__venues .gsg-venue-card__title {
	margin: 0 0 var(--gsg-spacing-sm);
	padding-bottom: var(--gsg-spacing-sm);
	font-size: 1.125rem;
	line-height: 1.3;
	font-weight: 700;
	border-bottom: 1px solid var(--gsg-white);
}

.gsg-directory__venues .gsg-venue-card__title a {
	color: var(--gsg-white);
	text-decoration: none;
	transition: color 0.2s;
}

.gsg-directory__venues .gsg-venue-card__title a:hover {
	color: var(--gsg-cyan-bright);
}

/* Card Badges (in content section) */
.gsg-venue-card__badges {
	display: flex;
	flex-wrap: wrap;
	gap: var(--gsg-spacing-xs);
	margin-bottom: var(--gsg-spacing-sm);
}

.gsg-directory__venues .gsg-venue-card__info {
	display: flex;
	flex-direction: column;
	gap: var(--gsg-spacing-xs);
	margin-bottom: var(--gsg-spacing-md);
	background: #8191A0;
	padding: 1.5rem;
	border-radius: var(--gsg-radius-xs);
}

/* Card Content */
.gsg-directory__venues .gsg-venue-card__content {
	padding: var(--gsg-spacing-md) 0;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.gsg-directory__venues .gsg-venue-card__location {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	margin: 0;
	font-size: 1rem;
	color: var(--gsg-white);
	font-weight: 600;
	background: transparent;
	padding: 0;
}

.gsg-directory__venues .gsg-venue-card__location i {
	color: var(--gsg-orange-bright);
	font-size: 1rem;
}

.gsg-directory__venues .gsg-venue-card__hours-badge {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	margin: 0;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1;
	background: transparent;
	padding: 0;
	color: var(--gsg-white);
}

.gsg-directory__venues .gsg-venue-card__hours-badge--open {
	color: #4ADE80;
}

.gsg-directory__venues .gsg-venue-card__hours-badge--soon {
	color: var(--gsg-orange-bright);
}

.gsg-directory__venues .gsg-venue-card__hours-badge--closed {
	color: #E5E7EB;
}

.gsg-directory__venues .gsg-venue-card__hours-badge i {
	font-size: 1rem;
}

/* Occupancy Display (below title) */
.gsg-directory__venues .gsg-venue-card__occupancy {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0.75rem 0 1rem 0;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1;
	background: transparent;
	padding: 0;
	color: var(--gsg-cyan-bright);
}

.gsg-directory__venues .gsg-venue-card__occupancy i {
	font-size: 1rem;
	color: var(--gsg-cyan-bright);
}

.gsg-directory__venues .gsg-venue-card__occupancy-mobile {
	display: inline;
}

.gsg-directory__venues .gsg-venue-card__occupancy-desktop {
	display: none;
}

@media (min-width: 768px) {
	.gsg-directory__venues .gsg-venue-card__occupancy-mobile {
		display: none;
	}

	.gsg-directory__venues .gsg-venue-card__occupancy-desktop {
		display: inline;
	}
}

.gsg-directory__venues .gsg-venue-card__excerpt {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--gsg-white);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex: 1;
}

/* Card Action (grid view button) */
.gsg-venue-card__action {
	margin-top: auto;
	padding-top: var(--gsg-spacing-md);
}

/* Card Footer (list view only) */
.gsg-venue-card__footer {
	display: none;
}

/* List Layout Modifications */
.gsg-directory__venues--list .gsg-venue-card {
	flex-direction: row;
	min-height: 240px;
	position: relative;
}

.gsg-directory__venues--list .gsg-venue-card__image {
	width: 360px;
	height: 360px;
	flex-shrink: 0;
}

.gsg-directory__venues--list .gsg-venue-card__image img {
	width: 360px;
	height: 360px;
	object-fit: cover;
}

.gsg-directory__venues--list .gsg-venue-card__content {
	padding: var(--gsg-spacing-lg) var(--gsg-spacing-xl);
	padding-right: var(--gsg-spacing-lg);
	justify-content: flex-start;
	position: relative;
}

.gsg-directory__venues--list .gsg-venue-card__title {
	font-size: 1.5rem;
	margin-bottom: var(--gsg-spacing-sm);
}

.gsg-directory__venues--list .gsg-venue-card__location {
	margin-bottom: var(--gsg-spacing-md);
}

.gsg-directory__venues--list .gsg-venue-card__excerpt {
	-webkit-line-clamp: 4;
	font-size: 1rem;
	line-height: 1.7;
	margin-bottom: 60px; /* Space for button below */
}

.gsg-directory__venues--list .gsg-venue-card__action {
	display: none;
}

.gsg-directory__venues--list .gsg-venue-card__footer {
	position: absolute;
	bottom: var(--gsg-spacing-lg);
	right: var(--gsg-spacing-lg);
	padding: 0;
	display: block;
}

.gsg-directory__venues--list .gsg-btn {
	width: auto;
	justify-content: center;
}

@media (max-width: 900px) {
	.gsg-directory__venues--list .gsg-venue-card {
		flex-direction: column;
		min-height: auto;
	}

	.gsg-directory__venues--list .gsg-venue-card__image {
		width: 100%;
		height: 284px;
	}

	.gsg-directory__venues--list .gsg-venue-card__image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.gsg-directory__venues--list .gsg-venue-card__content {
		padding: var(--gsg-spacing-md) 0 var(--gsg-spacing-sm);
		position: static;
	}

	.gsg-directory__venues--list .gsg-venue-card__title {
		font-size: 1.375rem;
	}

	.gsg-directory__venues--list .gsg-venue-card__excerpt {
		-webkit-line-clamp: 3;
		font-size: 0.9375rem;
		line-height: 1.6;
		padding-right: 0;
	}

	.gsg-directory__venues--list .gsg-venue-card__footer {
		position: static;
		padding: var(--gsg-spacing-md) 0 0;
	}

	.gsg-directory__venues--list .gsg-btn {
		width: 100%;
	}
}

/* ===== Pagination ===== */
.gsg-directory__pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--gsg-spacing-sm);
	margin-top: var(--gsg-spacing-xl);
	padding-top: var(--gsg-spacing-lg);
	border-top: 1px solid var(--gsg-border-color);
}

.gsg-pagination__btn {
	display: inline-flex;
	align-items: center;
	gap: var(--gsg-spacing-xs);
	padding: var(--gsg-spacing-sm) var(--gsg-spacing-md);
	background: var(--gsg-white);
	border: 1px solid var(--gsg-border-color);
	border-radius: var(--gsg-radius-sm);
	color: var(--gsg-primary-dark);
	text-decoration: none;
	font-weight: 600;
	transition: all 0.2s;
}

.gsg-pagination__btn:hover {
	background: var(--gsg-accent-teal);
	color: var(--gsg-white);
	border-color: var(--gsg-accent-teal);
}

.gsg-pagination__numbers {
	display: flex;
	gap: var(--gsg-spacing-xs);
}

.gsg-pagination__number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 var(--gsg-spacing-sm);
	background: var(--gsg-white);
	border: 1px solid var(--gsg-border-color);
	border-radius: var(--gsg-radius-sm);
	color: var(--gsg-primary-dark);
	text-decoration: none;
	font-weight: 600;
	transition: all 0.2s;
}

.gsg-pagination__number:hover {
	background: var(--gsg-background-light);
	border-color: var(--gsg-accent-teal);
	color: var(--gsg-accent-teal);
}

.gsg-pagination__number.active {
	background: var(--gsg-accent-teal);
	color: var(--gsg-white);
	border-color: var(--gsg-accent-teal);
	pointer-events: none;
}

.gsg-pagination__ellipsis {
	display: inline-flex;
	align-items: center;
	padding: 0 var(--gsg-spacing-xs);
	color: var(--gsg-primary-gray);
}

/* ===== No Results ===== */
.gsg-directory__no-results {
	text-align: center;
	padding: var(--gsg-spacing-xl);
	background: var(--gsg-background-light);
	border-radius: var(--gsg-radius-lg);
}

.gsg-directory__no-results i {
	font-size: 4rem;
	color: var(--gsg-primary-gray);
	opacity: 0.3;
	margin-bottom: var(--gsg-spacing-md);
}

.gsg-directory__no-results p {
	font-size: 1.125rem;
	color: var(--gsg-primary-gray);
	margin: 0 0 var(--gsg-spacing-md);
}

/* ===== Buttons ===== */
.gsg-btn {
	display: inline-flex;
	align-items: center;
	gap: var(--gsg-spacing-xs);
	padding: var(--gsg-spacing-sm) var(--gsg-spacing-md);
	border-radius: var(--gsg-radius-sm);
	font-weight: 700;
	font-size: 0.9375rem;
	text-decoration: none;
	transition: all 0.2s;
	border: none;
	cursor: pointer;
	justify-content: center;
	letter-spacing: 0.02em;
}

.gsg-btn--primary {
	background: var(--gsg-accent-teal);
	color: var(--gsg-white);
	box-shadow: 0 2px 4px rgba(43, 193, 191, 0.2);
}

.gsg-btn--primary:hover {
	background: var(--gsg-accent-orange);
	box-shadow: 0 4px 8px rgba(199, 107, 54, 0.3);
	transform: translateY(-1px);
}

.gsg-btn--secondary {
	background: var(--gsg-white);
	color: var(--gsg-primary-dark);
	border: 1px solid var(--gsg-border-color);
}

.gsg-btn--secondary:hover {
	background: var(--gsg-background-light);
	border-color: var(--gsg-accent-teal);
	color: var(--gsg-accent-teal);
}

.gsg-btn--small {
	padding: 0.5rem 1rem;
	font-size: 0.875rem;
}

/* ===== Responsive Design ===== */
@media (max-width: 768px) {
	.gsg-directory__filters {
		position: static;
		padding: 0;
		background: transparent !important;
	}

	.gsg-directory__filters-header {
		flex-wrap: wrap;
		border-bottom: none;
		padding: 0 !important;
		margin: 0 !important;
		background: transparent !important;
	}

	/* Show and style mobile toggle button */
	.gsg-directory__filters-header .gsg-directory__filters-toggle {
		display: flex !important;
		align-items: center;
		gap: var(--gsg-spacing-sm);
		width: 100%;
		padding: var(--gsg-spacing-md) !important;
		background: var(--gsg-cyan-bright) !important;
		color: var(--gsg-primary-dark) !important;
		border: none !important;
		border-radius: var(--gsg-radius-xs);
		font-size: 1rem !important;
		font-weight: 600 !important;
		font-family: inherit;
		cursor: pointer;
		transition: all 0.2s ease;
		order: 1;
		margin-bottom: var(--gsg-spacing-sm);
		box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	}

	.gsg-directory__filters-header .gsg-directory__filters-toggle:hover {
		opacity: 0.9;
		transform: translateY(-1px);
		box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
	}

	.gsg-directory__filters-header .gsg-directory__filters-toggle:active {
		transform: translateY(0);
	}

	/* Active state (when filters are open) */
	.gsg-directory__filters-header .gsg-directory__filters-toggle.active {
		background: var(--gsg-orange-bright) !important;
		color: var(--gsg-white) !important;
	}

	/* Ensure orange stays when closing (clicking on active button) */
	.gsg-directory__filters-header .gsg-directory__filters-toggle.active:active {
		background: var(--gsg-orange-bright) !important;
		color: var(--gsg-white) !important;
	}

	.gsg-directory__filters-toggle span {
		flex: 1;
		text-align: left;
	}

	/* Keep arrow icon from flexing */
	.gsg-directory__filters-toggle .gsg-directory__filters-toggle-icon {
		flex: 0 0 auto;
	}

	.gsg-directory__filters-toggle-icon {
		transition: transform 0.3s ease;
		font-size: 0.875rem;
	}

	.gsg-directory__filters-header .gsg-directory__filters-toggle.active .gsg-directory__filters-toggle-icon {
		transform: rotate(180deg);
	}

	/* Hide desktop title */
	.gsg-directory__filters-title {
		display: none;
	}

	/* Position clear all button */
	.gsg-directory__clear-filters {
		order: 2;
		width: 100%;
		text-align: center;
		padding: var(--gsg-spacing-sm) var(--gsg-spacing-md) !important;
		background: var(--gsg-slate-medium) !important;
		color: var(--gsg-white) !important;
		border-radius: var(--gsg-radius-xs);
		font-size: 0.875rem !important;
		font-weight: 600 !important;
		text-decoration: none !important;
		display: block;
		transition: all 0.2s ease;
	}

	.gsg-directory__clear-filters:hover {
		background: var(--gsg-orange-bright) !important;
		color: var(--gsg-white) !important;
	}

	/* Hide filter form by default on mobile */
	.gsg-directory__filter-form {
		max-height: 0;
		overflow: hidden;
		opacity: 0;
		transition: max-height 0.3s ease, opacity 0.3s ease;
		background: var(--gsg-slate-dark) !important;
		border-radius: var(--gsg-radius-xs);
		padding: 0 var(--gsg-spacing-md);
	}

	/* Show filter form when open */
	.gsg-directory__filter-form.open {
		max-height: 2000px;
		opacity: 1;
		padding: var(--gsg-spacing-md);
		margin-bottom: var(--gsg-spacing-md);
	}

	/* Mobile filter button styling */
	.gsg-directory__filter-form .gsg-filter-submit {
		background: var(--gsg-cyan-bright) !important;
		color: var(--gsg-primary-dark) !important;
	}

	.gsg-directory__header {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--gsg-spacing-sm);
	}

	.gsg-directory__layout-toggle {
		align-self: flex-end;
	}
}

/* ========================================
   Map Search Shortcode Styles - Dark Theme
   ======================================== */

/* Map Search Container */
.gsg-map-search {
	display: flex;
	gap: var(--gsg-spacing-lg);
	margin-top: var(--gsg-spacing-xl);
	margin-bottom: var(--gsg-spacing-xl);
	background: var(--gsg-background-dark, #1b2026);
	border-radius: var(--gsg-radius-xs, 2px);
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

/* Filter Sidebar */
.gsg-map-search__filters {
	width: 300px;
	flex-shrink: 0;
	padding: var(--gsg-spacing-lg);
	background: var(--gsg-slate-dark, #4A5663);
	border-right: 1px solid var(--gsg-slate-light, #6B7785);
	overflow-y: auto;
	max-height: 750px;
}

.gsg-map-search__filters-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: var(--gsg-spacing-md);
	padding-bottom: var(--gsg-spacing-sm);
	border-bottom: 2px solid var(--gsg-slate-light, #6B7785);
}

.gsg-map-search__filters-title {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--gsg-white, #fff);
}

/* Clear Filters Button - HIGH SPECIFICITY */
.gsg-map-search__filters .gsg-map-search__clear-filters {
	display: inline-flex !important;
	align-items: center;
	gap: 0.25rem;
	padding: 0.25rem 0.75rem !important;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
	color: var(--gsg-accent-orange) !important;
	background: transparent !important;
	border: 1px solid var(--gsg-accent-orange) !important;
	border-radius: var(--gsg-radius-sm) !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	text-decoration: none !important;
	line-height: 1.4 !important;
}

.gsg-map-search__filters .gsg-map-search__clear-filters:hover {
	background: var(--gsg-accent-orange) !important;
	color: var(--gsg-white) !important;
	border-color: var(--gsg-accent-orange) !important;
}

/* Mobile Toggle Button - Hidden by default (desktop) */
.gsg-map-search__filters-toggle {
	display: none !important; /* Hidden by default - shown only on mobile. Using !important to override theme reset.css */
}

/* Filter Form */
.gsg-map-search__filter-form {
	display: flex;
	flex-direction: column;
	gap: var(--gsg-spacing-md);
}

/* Filter Groups - reuse from directory */
.gsg-map-search__filter-form .gsg-filter-group {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.gsg-map-search__filter-form .gsg-filter-label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 600;
	font-size: 0.875rem;
	color: var(--gsg-white, #fff);
	margin-bottom: 0.25rem;
}

.gsg-map-search__filter-form .gsg-filter-label i {
	color: var(--gsg-cyan-bright, #3ECFC4);
	font-size: 1rem;
}

.gsg-map-search__filter-form .gsg-filter-search,
.gsg-map-search__filter-form .gsg-filter-select {
	width: 100%;
	padding: 0.625rem;
	border: 1px solid var(--gsg-slate-light, #6B7785);
	border-radius: var(--gsg-radius-sm);
	font-size: 0.875rem;
	background: var(--gsg-slate-medium, #53616D);
	color: var(--gsg-white, #fff);
	transition: border-color 0.2s ease;
}

.gsg-map-search__filter-form .gsg-filter-search:focus,
.gsg-map-search__filter-form .gsg-filter-select:focus {
	outline: none;
	border-color: var(--gsg-cyan-bright, #3ECFC4);
	box-shadow: 0 0 0 3px rgba(62, 207, 196, 0.2);
}

/* Amenity Filters */
.gsg-map-search__filter-form .gsg-amenity-category {
	margin-bottom: var(--gsg-spacing-sm);
}

.gsg-map-search__filter-form .gsg-amenity-category-title {
	display: block;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--gsg-white, #fff);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: 0.5rem;
}

.gsg-map-search__filter-form .gsg-amenity-checkboxes {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}

.gsg-map-search__filter-form .gsg-amenity-checkbox {
	display: flex !important;
	align-items: center !important;
	gap: 0.5rem !important;
	padding: 0.375rem !important;
	font-size: 0.8125rem !important;
	color: var(--gsg-white, #fff) !important;
	background: transparent !important;
	border: none !important;
	cursor: pointer !important;
	border-radius: var(--gsg-radius-sm) !important;
	transition: background-color 0.2s ease !important;
}

.gsg-map-search__filter-form .gsg-amenity-checkbox:hover {
	background: rgba(62, 207, 196, 0.1) !important;
}

.gsg-map-search__filter-form .gsg-amenity-checkbox input[type="checkbox"] {
	margin: 0;
	cursor: pointer;
}

.gsg-map-search__filter-form .gsg-amenity-checkbox i {
	font-size: 1rem;
	color: var(--gsg-cyan-bright, #3ECFC4);
	width: 20px;
	text-align: center;
}

.gsg-map-search__filter-form .gsg-amenity-count {
	margin-left: auto;
	font-size: 0.75rem;
	color: var(--gsg-white, #fff);
}

/* Filter Action Buttons */
.gsg-filter-actions {
	display: flex;
	flex-direction: column;
	gap: var(--gsg-spacing-sm);
	margin-top: var(--gsg-spacing-sm);
}

/* Apply Filters Button - HIGH SPECIFICITY */
.gsg-map-search__filter-form .gsg-filter-submit {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	padding: 0.75rem 1rem !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.05em !important;
	color: var(--gsg-primary-dark, #121316) !important;
	background: var(--gsg-cyan-bright, #3ECFC4) !important;
	border: none !important;
	border-radius: var(--gsg-radius-xs, 2px) !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	text-decoration: none !important;
	line-height: 1.5 !important;
}

.gsg-map-search__filter-form .gsg-filter-submit:hover {
	background: var(--gsg-cyan-bright, #3ECFC4) !important;
	opacity: 0.9 !important;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.gsg-map-search__filter-form .gsg-filter-submit:active {
	transform: translateY(0);
}

/* Clear Filters Button - HIGH SPECIFICITY */
.gsg-map-search__filter-form .gsg-filter-clear {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	padding: 0.75rem 1rem !important;
	font-size: 0.875rem !important;
	font-weight: 600 !important;
	color: var(--gsg-primary-gray) !important;
	background: transparent !important;
	border: 2px solid var(--gsg-border-color) !important;
	border-radius: var(--gsg-radius-md) !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	text-decoration: none !important;
	line-height: 1.5 !important;
}

.gsg-map-search__filter-form .gsg-filter-clear:hover {
	color: var(--gsg-accent-orange) !important;
	border-color: var(--gsg-accent-orange) !important;
	background: rgba(255, 111, 97, 0.05) !important;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(255, 111, 97, 0.15);
}

.gsg-map-search__filter-form .gsg-filter-clear:active {
	transform: translateY(0);
}

/* Map Wrapper */
.gsg-map-search__map-wrapper {
	flex: 1;
	position: relative;
	min-height: 750px;
}

.gsg-map-search__canvas {
	width: 100%;
	height: 750px;
	border-radius: 0 var(--gsg-radius-lg) var(--gsg-radius-lg) 0;
}

/* Map Loading */
.gsg-map-search__loading {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: center;
	z-index: 10;
}

.gsg-map-search__spinner {
	width: 50px;
	height: 50px;
	border: 4px solid var(--gsg-slate-light, #6B7785);
	border-top-color: var(--gsg-cyan-bright, #3ECFC4);
	border-radius: 50%;
	animation: gsg-spin 0.8s linear infinite;
	margin: 0 auto var(--gsg-spacing-sm);
}

@keyframes gsg-spin {
	to { transform: rotate(360deg); }
}

.gsg-map-search__loading p {
	margin: 0;
	font-size: 0.875rem;
	color: var(--gsg-white, #fff);
}

/* Venue Count Badge */
.gsg-map-search__venue-count {
	position: absolute;
	top: var(--gsg-spacing-sm);
	left: var(--gsg-spacing-sm);
	background: var(--gsg-slate-dark, #4A5663);
	padding: 0.625rem 1rem;
	border-radius: var(--gsg-radius-xs, 2px);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
	z-index: 5;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 600;
	font-size: 0.875rem;
	color: var(--gsg-white, #fff);
}

.gsg-map-search__venue-count i {
	color: var(--gsg-cyan-bright, #3ECFC4);
	font-size: 1rem;
}

/* Info Window Styling - Dark Theme */
.gsg-info-window {
	max-width: 280px;
	padding: 0;
	font-family: inherit;
	background: var(--gsg-slate-medium, #53616D);
	border-radius: var(--gsg-radius-xs, 2px);
	overflow: hidden;
}

.gsg-info-image {
	width: 100%;
	height: 140px; /* 2:1 landscape aspect ratio for wide banners */
	overflow: hidden;
	border-radius: 0;
	/* Dark gradient background ensures white logos/images are visible */
	background: linear-gradient(135deg, var(--gsg-primary-dark) 0%, #1a1b1f 100%);
}

.gsg-info-image img {
	width: 100%;
	height: 100%;
	object-fit: cover; /* Cover mode fills the container properly */
	display: block;
	/* No padding or filter for generated banners - they have their own background */
}

.gsg-info-content {
	padding: var(--gsg-spacing-sm);
	background: var(--gsg-slate-medium, #53616D);
}

.gsg-info-title {
	margin: 0 0 var(--gsg-spacing-xs);
	font-size: 1rem;
	font-weight: 700;
	color: var(--gsg-white, #fff);
	line-height: 1.3;
}

.gsg-info-badges {
	display: flex;
	gap: 0.375rem;
	flex-wrap: wrap;
	margin-bottom: var(--gsg-spacing-xs);
}

.gsg-info-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.25rem 0.625rem;
	font-size: 0.75rem;
	font-weight: 600;
	border-radius: var(--gsg-radius-sm);
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.gsg-info-badge--premium {
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color: var(--gsg-white);
	box-shadow: 0 2px 6px rgba(102, 126, 234, 0.25);
}

.gsg-info-badge--premium-plus {
	background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
	color: var(--gsg-white);
	box-shadow: 0 2px 6px rgba(245, 87, 108, 0.25);
	font-weight: 700;
}

.gsg-info-badge--verified {
	background: var(--gsg-cyan-bright, #3ECFC4);
	color: var(--gsg-primary-dark, #121316);
	font-weight: 700;
}

.gsg-info-badge--open {
	background: #00A32A;
	color: var(--gsg-white);
}

.gsg-info-badge--opens-soon {
	background: var(--gsg-orange-bright, #FF6B35);
	color: var(--gsg-white);
}

.gsg-info-badge--closed {
	background: #646970;
	color: var(--gsg-white);
}

.gsg-info-location {
	margin: 0 0 var(--gsg-spacing-sm);
	font-size: 0.875rem;
	color: var(--gsg-white, #fff);
	display: flex;
	align-items: center;
	gap: 0.375rem;
}

.gsg-info-location i {
	color: var(--gsg-cyan-bright, #3ECFC4);
}

.gsg-info-button {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 1rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--gsg-primary-dark, #121316);
	background: var(--gsg-cyan-bright, #3ECFC4);
	border: none;
	border-radius: var(--gsg-radius-xs, 2px);
	text-decoration: none;
	transition: all 0.2s ease;
}

.gsg-info-button:hover {
	background: var(--gsg-orange-bright, #FF6B35);
	color: var(--gsg-white, #fff);
	transform: translateY(-1px);
}

.gsg-info-button i {
	font-size: 0.75rem;
}

/* Custom Map Markers */
.gsg-map-marker {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg);
	border: 2px solid var(--gsg-white);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
	transition: all 0.2s ease;
	cursor: pointer;
}

.gsg-map-marker i {
	transform: rotate(45deg);
	font-size: 14px;
}

.gsg-map-marker:hover {
	transform: rotate(-45deg) scale(1.1);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

/* Free Tier Marker - Standard Red */
.gsg-map-marker--free {
	background: linear-gradient(135deg, #DC4E41 0%, #B23A2F 100%);
}

.gsg-map-marker--free i {
	color: var(--gsg-white);
}

/* Premium Tier Marker - Silver/Purple */
.gsg-map-marker--premium {
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	width: 38px;
	height: 38px;
	border: 3px solid var(--gsg-white);
	box-shadow: 0 3px 10px rgba(102, 126, 234, 0.4);
	z-index: 10;
}

.gsg-map-marker--premium i {
	color: var(--gsg-white);
	font-size: 16px;
}

.gsg-map-marker--premium:hover {
	box-shadow: 0 4px 14px rgba(102, 126, 234, 0.5);
}

/* Premium Plus Tier Marker - Gold/Pink with Crown */
.gsg-map-marker--premium-plus {
	background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
	width: 44px;
	height: 44px;
	border: 3px solid var(--gsg-white);
	box-shadow: 0 4px 12px rgba(245, 87, 108, 0.5);
	z-index: 20;
}

.gsg-map-marker--premium-plus i {
	color: #FFD700;
	font-size: 18px;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.gsg-map-marker--premium-plus:hover {
	box-shadow: 0 6px 16px rgba(245, 87, 108, 0.6);
}

/* Error State */
.gsg-map-search__error {
	padding: var(--gsg-spacing-xl);
	text-align: center;
	background: #fff3cd;
	border: 1px solid #ffc107;
	border-radius: var(--gsg-radius-md);
	color: #856404;
}

.gsg-map-search__error p {
	margin: 0;
	font-weight: 500;
}

/* ========================================
   Responsive Design - Map Search
   ======================================== */

/* Tablet */
@media (max-width: 900px) {
	.gsg-map-search {
		flex-direction: column;
	}

	.gsg-map-search__filters {
		width: 100%;
		max-height: none;
		border-right: none;
		border-bottom: 1px solid var(--gsg-border-color);
	}

	.gsg-map-search__canvas {
		border-radius: 0 0 var(--gsg-radius-lg) var(--gsg-radius-lg);
	}
}

/* Mobile */
@media (max-width: 768px) {
	.gsg-map-search {
		gap: 0;
		margin-bottom: var(--gsg-spacing-lg);
	}

	.gsg-map-search__filters {
		padding: var(--gsg-spacing-md);
	}

	.gsg-map-search__filters-header {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--gsg-spacing-sm);
	}

	/* Mobile Accordion Toggle Button - HIGH SPECIFICITY */
	.gsg-map-search__filters-header .gsg-map-search__filters-toggle {
		display: flex !important;
		align-items: center;
		gap: var(--gsg-spacing-sm);
		width: 100%;
		padding: var(--gsg-spacing-md) !important;
		background: var(--gsg-cyan-bright, #3ECFC4) !important;
		color: var(--gsg-primary-dark, #121316) !important;
		border: none !important;
		border-radius: var(--gsg-radius-xs, 2px) !important;
		font-size: 1rem !important;
		font-weight: 700 !important;
		font-family: inherit !important;
		cursor: pointer !important;
		transition: all 0.2s ease !important;
		order: 1;
		margin-bottom: var(--gsg-spacing-sm);
		box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
		line-height: 1.5 !important;
		text-decoration: none !important;
	}

	.gsg-map-search__filters-header .gsg-map-search__filters-toggle:hover {
		opacity: 0.9;
		transform: translateY(-1px);
		box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
	}

	.gsg-map-search__filters-header .gsg-map-search__filters-toggle:active {
		transform: translateY(0);
	}

	/* Active state (when filters are open) - Cyan when closed, Orange when open */
	.gsg-map-search__filters-header .gsg-map-search__filters-toggle.active {
		background: var(--gsg-orange-bright, #FF6B35) !important;
		color: var(--gsg-white, #fff) !important;
	}

	/* Ensure orange stays when closing (clicking on active button) */
	.gsg-map-search__filters-header .gsg-map-search__filters-toggle.active:active {
		background: var(--gsg-orange-bright, #FF6B35) !important;
		color: var(--gsg-white, #fff) !important;
	}

	.gsg-map-search__filters-toggle span {
		flex: 1;
		text-align: left;
	}

	.gsg-map-search__filters-toggle-icon {
		transition: transform 0.3s ease;
		font-size: 0.875rem;
	}

	.gsg-map-search__filters-header .gsg-map-search__filters-toggle.active .gsg-map-search__filters-toggle-icon {
		transform: rotate(180deg);
	}

	/* Hide desktop title on mobile */
	.gsg-map-search__filters-title {
		display: none;
	}

	/* Position clear all button */
	.gsg-map-search__clear-filters {
		order: 2;
		width: 100%;
		text-align: center;
		padding: var(--gsg-spacing-xs);
	}

	/* Hide filter form by default on mobile */
	.gsg-map-search__filter-form {
		max-height: 0;
		overflow: hidden;
		opacity: 0;
		transition: max-height 0.3s ease, opacity 0.3s ease;
		background: var(--gsg-slate-dark, #4A5663);
		border-radius: var(--gsg-radius-xs, 2px);
		padding: 0 var(--gsg-spacing-md);
	}

	/* Show filter form when open */
	.gsg-map-search__filter-form.open {
		max-height: none;
		overflow: visible;
		opacity: 1;
		padding: var(--gsg-spacing-md);
		padding-bottom: calc(var(--gsg-spacing-md) + 1rem);
		margin-bottom: var(--gsg-spacing-md);
	}

	.gsg-map-search__map-wrapper,
	.gsg-map-search__canvas {
		min-height: 400px;
		height: 400px;
	}

	.gsg-map-search__venue-count {
		font-size: 0.75rem;
		padding: 0.5rem 0.75rem;
	}

	.gsg-info-window {
		max-width: 240px;
	}

	.gsg-info-image {
		height: 120px; /* Landscape aspect ratio for wide banners on mobile */
	}
}

/* ========================================
   Near Me Search Section - Dark Theme
   ======================================== */

.gsg-near-me-group {
	padding: var(--gsg-spacing-md);
	background: rgba(62, 207, 196, 0.1);
	border: 1px solid var(--gsg-cyan-bright, #3ECFC4);
	border-radius: var(--gsg-radius-xs, 2px);
	margin-bottom: var(--gsg-spacing-md) !important;
}

.gsg-near-me-inputs {
	display: flex;
	flex-direction: column;
	gap: var(--gsg-spacing-sm);
}

.gsg-location-wrapper {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.gsg-near-me-inputs #gsg-location {
	width: 100%;
	margin-bottom: 0;
}

.gsg-search-location-btn {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	width: 100%;
	padding: 0.625rem 1rem !important;
	font-size: 0.875rem !important;
	font-weight: 600 !important;
	color: var(--gsg-primary-dark, #121316) !important;
	background: var(--gsg-cyan-bright, #3ECFC4) !important;
	border: none !important;
	border-radius: var(--gsg-radius-xs, 2px) !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	white-space: nowrap;
	line-height: 1.4 !important;
	text-decoration: none !important;
}

.gsg-search-location-btn:hover {
	opacity: 0.9 !important;
	transform: translateY(-1px);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.gsg-location-hint {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-size: 0.75rem;
	color: var(--gsg-white, #fff);
	font-style: italic;
	margin-top: 0.25rem;
}

.gsg-location-hint i {
	font-size: 0.875rem;
	color: var(--gsg-cyan-bright, #3ECFC4);
}

/* Use My Location Button - HIGH SPECIFICITY */
.gsg-near-me-inputs .gsg-use-location-btn {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.625rem 1rem !important;
	font-size: 0.875rem !important;
	font-weight: 600 !important;
	color: var(--gsg-primary-dark, #121316) !important;
	background: var(--gsg-cyan-bright, #3ECFC4) !important;
	border: none !important;
	border-radius: var(--gsg-radius-xs, 2px) !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	white-space: nowrap;
	line-height: 1.4 !important;
	text-decoration: none !important;
	width: 100%;
}

.gsg-near-me-inputs .gsg-use-location-btn:hover:not(:disabled) {
	background: var(--gsg-cyan-bright, #3ECFC4) !important;
	opacity: 0.9 !important;
	transform: translateY(-1px);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

.gsg-near-me-inputs .gsg-use-location-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed !important;
}

.gsg-near-me-inputs .gsg-use-location-btn i {
	font-size: 1rem;
}

.gsg-distance-row {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: var(--gsg-spacing-sm);
}

.gsg-distance-label {
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--gsg-white, #fff);
	white-space: nowrap;
}

.gsg-distance-select {
	min-width: 0;
}

/* ===== Claims Modal ===== */
.gsg-modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 999999;
	display: none;
}

.gsg-modal-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.7);
	backdrop-filter: blur(4px);
}

.gsg-modal-content {
	position: relative;
	width: 90%;
	max-width: 600px;
	max-height: 90vh;
	margin: 5vh auto;
	background: var(--gsg-slate-dark, #4A5663);
	border-radius: var(--gsg-radius-xs, 2px);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
	overflow: hidden;
	z-index: 1000000;
	border: 1px solid var(--gsg-slate-light, #6B7785);
}

.gsg-modal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: var(--gsg-spacing-lg);
	background: var(--gsg-slate-medium, #53616D);
	color: var(--gsg-white, #fff);
	border-bottom: 1px solid var(--gsg-slate-light, #6B7785);
}

.gsg-modal-title {
	margin: 0;
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--gsg-white, #fff);
}

.gsg-modal-close {
	background: transparent !important;
	background-color: transparent !important;
	border: none !important;
	color: var(--gsg-white) !important;
	font-size: 2rem !important;
	line-height: 1 !important;
	cursor: pointer !important;
	padding: 0 !important;
	width: 32px !important;
	height: 32px !important;
	min-width: 32px !important;
	min-height: 32px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: 50% !important;
	transition: background-color 0.2s ease !important;
	box-shadow: none !important;
	text-decoration: none !important;
	font-weight: normal !important;
	font-family: inherit !important;
	transform: none !important;
}

.gsg-modal-close:hover {
	background: rgba(255, 255, 255, 0.1) !important;
	background-color: rgba(255, 255, 255, 0.1) !important;
	color: var(--gsg-white) !important;
	transform: none !important;
	box-shadow: none !important;
}

.gsg-modal-close:focus {
	outline: 2px solid rgba(255, 255, 255, 0.5) !important;
	outline-offset: 2px !important;
	background: rgba(255, 255, 255, 0.1) !important;
	background-color: rgba(255, 255, 255, 0.1) !important;
}

.gsg-modal-body {
	padding: var(--gsg-spacing-lg);
	max-height: calc(90vh - 80px);
	overflow-y: auto;
	background: var(--gsg-slate-dark, #4A5663);
}

.gsg-modal-intro {
	margin-top: 0;
	margin-bottom: var(--gsg-spacing-lg);
	color: var(--gsg-white, #fff);
	font-size: 0.95rem;
	line-height: 1.6;
	opacity: 0.9;
}

body.gsg-modal-open {
	overflow: hidden;
}

/* ===== Claim Form ===== */
.gsg-form-row {
	margin-bottom: var(--gsg-spacing-md);
}

.gsg-form-row-2col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--gsg-spacing-md);
}

.gsg-form-group {
	display: flex;
	flex-direction: column;
}

.gsg-form-group label {
	margin-bottom: var(--gsg-spacing-xs);
	font-weight: 500;
	color: var(--gsg-white, #fff);
	font-size: 0.9rem;
}

.gsg-required {
	color: var(--gsg-orange-bright, #FF6B35);
}

.gsg-form-group input[type="text"],
.gsg-form-group input[type="email"],
.gsg-form-group input[type="tel"],
.gsg-form-group select,
.gsg-form-group textarea {
	padding: 0.75rem;
	border: 1px solid var(--gsg-slate-light, #6B7785);
	border-radius: var(--gsg-radius-xs, 2px);
	font-size: 0.95rem;
	font-family: inherit;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	background: var(--gsg-slate-medium, #53616D);
	color: var(--gsg-white, #fff);
}

.gsg-form-group input[type="text"]:focus,
.gsg-form-group input[type="email"]:focus,
.gsg-form-group input[type="tel"]:focus,
.gsg-form-group select:focus,
.gsg-form-group textarea:focus {
	outline: none;
	border-color: var(--gsg-cyan-bright, #3ECFC4);
	box-shadow: 0 0 0 3px rgba(62, 207, 196, 0.2);
	background: var(--gsg-slate-medium, #53616D);
}

.gsg-form-group input[type="file"] {
	padding: 0.5rem 0;
	font-size: 0.9rem;
}

.gsg-help-text {
	display: block;
	margin-top: var(--gsg-spacing-xs);
	font-size: 0.8rem;
	color: var(--gsg-white, #fff);
	line-height: 1.4;
	opacity: 0.7;
}

.gsg-form-notice {
	background: var(--gsg-slate-medium, #53616D);
	padding: var(--gsg-spacing-md);
	border-radius: var(--gsg-radius-xs, 2px);
	border-left: 4px solid var(--gsg-cyan-bright, #3ECFC4);
	margin-bottom: var(--gsg-spacing-md);
	border: 1px solid var(--gsg-slate-light, #6B7785);
	border-left-width: 4px;
}

.gsg-form-notice p {
	margin: 0;
	color: var(--gsg-white, #fff);
}

.gsg-form-actions {
	display: flex;
	gap: var(--gsg-spacing-sm);
	margin-top: var(--gsg-spacing-lg);
}

/* Modal form buttons - override Elementor - Dark Theme */
.gsg-form-actions .gsg-button--primary,
.gsg-modal .gsg-button--primary,
button.gsg-submit-claim {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0.75rem 1.5rem !important;
	background: var(--gsg-cyan-bright, #3ECFC4) !important;
	background-color: var(--gsg-cyan-bright, #3ECFC4) !important;
	color: var(--gsg-primary-dark, #121316) !important;
	border: none !important;
	border-radius: var(--gsg-radius-xs, 2px) !important;
	font-weight: 600 !important;
	font-size: 1rem !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	text-decoration: none !important;
	font-family: inherit !important;
	line-height: 1.5 !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
}

.gsg-form-actions .gsg-button--primary:hover,
.gsg-modal .gsg-button--primary:hover,
button.gsg-submit-claim:hover {
	background: var(--gsg-orange-bright, #FF6B35) !important;
	background-color: var(--gsg-orange-bright, #FF6B35) !important;
	color: var(--gsg-white, #fff) !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 4px 12px rgba(62, 207, 196, 0.4) !important;
}

.gsg-form-actions .gsg-button--secondary,
.gsg-modal .gsg-button--secondary,
.gsg-modal-close.gsg-button,
button.gsg-modal-close.gsg-button--secondary {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0.75rem 1.5rem !important;
	background: var(--gsg-slate-medium, #53616D) !important;
	background-color: var(--gsg-slate-medium, #53616D) !important;
	color: var(--gsg-white, #fff) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
	border-radius: var(--gsg-radius-xs, 2px) !important;
	font-weight: 600 !important;
	font-size: 1rem !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	text-decoration: none !important;
	font-family: inherit !important;
	line-height: 1.5 !important;
	width: auto !important;
	min-width: 120px !important;
	height: auto !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
}

.gsg-form-actions .gsg-button--secondary:hover,
.gsg-modal .gsg-button--secondary:hover,
.gsg-modal-close.gsg-button:hover,
button.gsg-modal-close.gsg-button--secondary:hover {
	background: var(--gsg-slate-light, #6B7785) !important;
	background-color: var(--gsg-slate-light, #6B7785) !important;
	color: var(--gsg-white, #fff) !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
}

button.gsg-submit-claim:disabled {
	opacity: 0.6 !important;
	cursor: not-allowed !important;
	transform: none !important;
}

.gsg-form-messages {
	margin-top: var(--gsg-spacing-md);
}

.gsg-message {
	padding: var(--gsg-spacing-md);
	border-radius: var(--gsg-radius-sm);
	margin-bottom: var(--gsg-spacing-sm);
	line-height: 1.5;
}

.gsg-message-success {
	background: #d4edda;
	color: #155724;
	border: 1px solid #c3e6cb;
}

.gsg-message-error {
	background: #f8d7da;
	color: #721c24;
	border: 1px solid #f5c6cb;
}

/* ===== Claim Button ===== */
.gsg-claim-button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: var(--gsg-spacing-xs) !important;
	padding: 0.75rem 1.5rem !important;
	background: var(--gsg-accent-orange) !important;
	background-color: var(--gsg-accent-orange) !important;
	color: var(--gsg-white) !important;
	text-decoration: none !important;
	border-radius: var(--gsg-radius-sm) !important;
	font-weight: 600 !important;
	transition: all 0.2s ease !important;
	border: none !important;
	cursor: pointer !important;
	font-size: 1rem !important;
	width: 100% !important;
	font-family: inherit !important;
	line-height: 1.5 !important;
}

.gsg-claim-button:hover {
	background: #b35e2e !important;
	background-color: #b35e2e !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 4px 12px rgba(199, 107, 54, 0.3) !important;
	color: var(--gsg-white) !important;
}

.gsg-claim-button:focus {
	background: var(--gsg-accent-orange) !important;
	background-color: var(--gsg-accent-orange) !important;
	color: var(--gsg-white) !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(199, 107, 54, 0.2) !important;
}

.gsg-claim-button i {
	font-size: 1.1rem !important;
	margin-right: 0.25rem !important;
}

/* ===== Claimed Badge ===== */
.gsg-claimed-badge {
	display: inline-flex;
	align-items: center;
	gap: var(--gsg-spacing-sm);
	padding: var(--gsg-spacing-sm) var(--gsg-spacing-md);
	background: var(--gsg-accent-teal);
	color: var(--gsg-white);
	border-radius: var(--gsg-radius-xs, 2px);
	font-size: 1rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	box-shadow: 0 4px 12px rgba(62, 207, 196, 0.3);
}

.gsg-claimed-badge i {
	font-size: 1rem;
}

/* Venue card claimed badge - reset to original smaller styling for directory */
.gsg-venue-card__badges .gsg-claimed-badge {
	gap: 0.4rem;
	padding: 0.4rem 0.8rem;
	border-radius: var(--gsg-radius-sm);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: none;
	letter-spacing: normal;
	box-shadow: none;
}

.gsg-venue-card__badges .gsg-claimed-badge i {
	font-size: 0.9rem;
}

/* Contact Venue Button - Match badge sizing and make icon/text white */
.gsg-contact-venue-button,
button.gsg-contact-venue-button {
	padding: var(--gsg-spacing-sm) var(--gsg-spacing-md) !important; /* 1rem 1.5rem = 16px 24px to match badges */
	font-weight: 700 !important; /* Match badge font-weight */
	color: var(--gsg-white, #fff) !important;
}

.gsg-contact-venue-button i,
button.gsg-contact-venue-button i {
	color: var(--gsg-white, #fff) !important;
}

/* ===== Responsive ===== */
@media (max-width: 768px) {
	.gsg-modal-content {
		width: 95%;
		margin: 2vh auto;
		max-height: 96vh;
	}

	.gsg-modal-body {
		max-height: calc(96vh - 80px);
		padding: var(--gsg-spacing-md);
	}

	.gsg-modal-title {
		font-size: 1.25rem;
	}

	.gsg-form-row-2col {
		grid-template-columns: 1fr;
		gap: var(--gsg-spacing-md);
	}

	.gsg-form-actions {
		flex-direction: column;
	}

	.gsg-form-actions .gsg-button {
		width: 100%;
		justify-content: center;
	}
}

/* ========================================
   DASHBOARD STYLES
   ======================================== */

/* Dashboard Container */
.gsg-dashboard {
	max-width: var(--gsg-container-width);
	margin: 0 auto;
	padding: var(--gsg-spacing-xl) var(--gsg-spacing-md);
}

/* Dashboard Header */
.gsg-dashboard__header {
	margin-bottom: var(--gsg-spacing-xl);
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: var(--gsg-spacing-lg);
}

.gsg-dashboard__header > div:first-child {
	flex: 1;
}

.gsg-dashboard__title {
	font-size: 2.5rem;
	font-weight: 700;
	color: var(--gsg-white, #fff);
	margin: 0 0 var(--gsg-spacing-sm);
}

.gsg-dashboard__welcome {
	font-size: 1.125rem;
	color: var(--gsg-white, #fff);
	margin: 0;
	opacity: 0.9;
}

/* Increase specificity to override Elementor/theme defaults */
.gsg-dashboard a.gsg-button--logout,
a.gsg-button.gsg-button--logout {
	white-space: nowrap;
	align-self: flex-start;
}

.gsg-dashboard__intro {
	font-size: 1rem;
	color: var(--gsg-white, #fff);
	margin: 0 0 var(--gsg-spacing-lg);
	opacity: 0.9;
}

/* Photo Limit Badge */
.gsg-photo-limit-badge {
	background: var(--gsg-white);
	border: 2px solid var(--gsg-border-color);
	border-radius: var(--gsg-radius-md);
	padding: var(--gsg-spacing-md);
	text-align: center;
	min-width: 180px;
}

.gsg-photo-count {
	display: block;
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--gsg-primary);
	margin-bottom: var(--gsg-spacing-xs);
}

.gsg-photo-tier {
	display: block;
	font-size: 0.875rem;
	color: var(--gsg-primary-gray);
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Venue Selector - Dark Theme */
.gsg-dashboard__venue-selector {
	margin-bottom: var(--gsg-spacing-xl);
	display: flex;
	align-items: center;
	gap: var(--gsg-spacing-md);
	justify-content: center;
}

.gsg-dashboard__venue-selector label {
	font-weight: 600;
	color: var(--gsg-white, #fff);
	font-size: 1rem;
}

.gsg-dashboard__select {
	padding: 0.75rem 1rem;
	border: 2px solid var(--gsg-border-color);
	border-radius: var(--gsg-radius-md);
	font-size: 1rem;
	min-width: 300px;
	background: var(--gsg-white);
	color: var(--gsg-primary-dark);
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.gsg-dashboard__select:hover,
.gsg-dashboard__select:focus {
	border-color: var(--gsg-accent-teal);
	outline: none;
}

/* Tab Navigation */
.gsg-dashboard__tabs {
	display: flex;
	gap: var(--gsg-spacing-sm);
	margin-bottom: var(--gsg-spacing-xl);
	border-bottom: 2px solid var(--gsg-border-color);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.gsg-dashboard__tab {
	padding: 1rem 1.5rem;
	background: transparent;
	border: none;
	border-bottom: 3px solid transparent;
	color: var(--gsg-primary-gray);
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: all 0.2s ease;
	white-space: nowrap;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.gsg-dashboard__tab:hover {
	color: var(--gsg-primary-dark);
	background: var(--gsg-background-light);
}

.gsg-dashboard__tab--active {
	color: var(--gsg-accent-teal);
	border-bottom-color: var(--gsg-accent-teal);
}

/* Dashboard Content - Dark Theme */
.gsg-dashboard__content {
	background: var(--gsg-background-dark, #1b2026);
	border-radius: var(--gsg-radius-xs, 2px);
	padding: var(--gsg-spacing-xl);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
	border: 1px solid var(--gsg-slate-light, #6B7785);
}

/* Dashboard Messages - Dark Theme */
.gsg-dashboard__messages {
	margin-bottom: var(--gsg-spacing-lg);
}

.gsg-dashboard-message {
	padding: 1rem 1.5rem;
	border-radius: var(--gsg-radius-xs, 2px);
	margin-bottom: var(--gsg-spacing-md);
	display: flex;
	align-items: flex-start;
	gap: 1rem;
}

.gsg-dashboard-message p {
	margin: 0;
	line-height: 1.6;
	color: var(--gsg-white, #fff);
}

.gsg-dashboard-message i {
	font-size: 1.25rem;
	flex-shrink: 0;
	margin-top: 0.125rem;
}

.gsg-dashboard-message--success {
	background: rgba(34, 197, 94, 0.2);
	color: var(--gsg-white, #fff);
	border: 1px solid rgba(34, 197, 94, 0.4);
}

.gsg-dashboard-message--success i {
	color: #22c55e;
}

.gsg-dashboard-message--error {
	background: rgba(239, 68, 68, 0.2);
	color: var(--gsg-white, #fff);
	border: 1px solid rgba(239, 68, 68, 0.4);
}

.gsg-dashboard-message--error i {
	color: #ef4444;
}

.gsg-dashboard-message--info {
	background: var(--gsg-slate-medium, #53616D);
	color: var(--gsg-white, #fff);
	border: 1px solid var(--gsg-slate-light, #6B7785);
	border-left: 4px solid var(--gsg-cyan-bright, #3ECFC4);
}

.gsg-dashboard-message--info i {
	color: var(--gsg-cyan-bright, #3ECFC4);
}

/* MY VENUES TAB - Dark Theme */
.gsg-dashboard__venue-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
	gap: var(--gsg-spacing-lg);
}

.gsg-dashboard__venue-cards .gsg-venue-card,
.gsg-dashboard-tab .gsg-venue-card {
	background: var(--gsg-slate-dark, #4A5663) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
	border-radius: var(--gsg-radius-xs, 2px) !important;
	overflow: hidden !important;
	transition: all 0.2s ease !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
	padding: 0 !important;
	margin-bottom: 0 !important;
}

.gsg-dashboard__venue-cards .gsg-venue-card:hover,
.gsg-dashboard-tab .gsg-venue-card:hover {
	border-color: var(--gsg-cyan-bright, #3ECFC4) !important;
	box-shadow: 0 4px 12px rgba(62, 207, 196, 0.3) !important;
	transform: translateY(-2px) !important;
}

.gsg-dashboard__venue-cards .gsg-venue-card--active,
.gsg-dashboard-tab .gsg-venue-card--active {
	border-color: var(--gsg-cyan-bright, #3ECFC4) !important;
	box-shadow: 0 4px 12px rgba(62, 207, 196, 0.4) !important;
}

.gsg-venue-card__image {
	width: 100%;
	height: 200px;
	overflow: hidden;
	/* Dark gradient background ensures white logos/images are visible */
	background: linear-gradient(135deg, var(--gsg-primary-dark) 0%, #1a1b1f 100%);
	display: flex;
	align-items: center;
	justify-content: center;
}

.gsg-venue-card__image img {
	width: 100%;
	height: 100%;
	min-height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

@media (max-width: 900px) {
	.gsg-venue-card__image {
		height: 284px;
	}
}

.gsg-venue-card__image--placeholder {
	color: var(--gsg-white, #fff);
	font-size: 3rem;
	opacity: 0.5;
}

.gsg-dashboard__venue-cards .gsg-venue-card__content,
.gsg-dashboard-tab .gsg-venue-card__content {
	padding: var(--gsg-spacing-lg) !important;
	background: var(--gsg-slate-dark, #4A5663) !important;
}

.gsg-dashboard__venue-cards .gsg-venue-card__title,
.gsg-dashboard-tab .gsg-venue-card__title {
	font-size: 1.25rem !important;
	font-weight: 700 !important;
	color: var(--gsg-white, #fff) !important;
	margin: 0 0 var(--gsg-spacing-sm) !important;
}

.gsg-dashboard__venue-cards .gsg-venue-card__location,
.gsg-dashboard-tab .gsg-venue-card__location {
	color: var(--gsg-white, #fff) !important;
	margin: 0 0 var(--gsg-spacing-md) !important;
	display: flex !important;
	align-items: center !important;
	gap: 0.5rem !important;
	opacity: 0.9 !important;
}

.gsg-dashboard__venue-cards .gsg-venue-card__location i,
.gsg-dashboard-tab .gsg-venue-card__location i {
	color: var(--gsg-cyan-bright, #3ECFC4) !important;
}

.gsg-venue-card__meta {
	display: flex;
	gap: var(--gsg-spacing-sm);
	margin-bottom: var(--gsg-spacing-md);
	flex-wrap: wrap;
}

.gsg-venue-card__status {
	padding: 0.25rem 0.75rem;
	border-radius: var(--gsg-radius-xs, 2px);
	font-size: 0.875rem;
	font-weight: 600;
}

.gsg-venue-card__status--published {
	background: rgba(34, 197, 94, 0.2);
	color: #22c55e;
	border: 1px solid rgba(34, 197, 94, 0.4);
}

.gsg-venue-card__status--draft {
	background: rgba(251, 191, 36, 0.2);
	color: #fbbf24;
	border: 1px solid rgba(251, 191, 36, 0.4);
}

.gsg-venue-card__status--claimed {
	background: rgba(62, 207, 196, 0.2);
	color: var(--gsg-cyan-bright, #3ECFC4);
	border: 1px solid rgba(62, 207, 196, 0.4);
}

.gsg-venue-card__status--closed {
	color: var(--gsg-white, #fff);
}

.gsg-venue-card__badge {
	padding: 0.25rem 0.75rem;
	border-radius: var(--gsg-radius-xs, 2px);
	font-size: 0.875rem;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
}

.gsg-venue-card__badge--premium {
	background: linear-gradient(135deg, #FFD700, #FFA500);
	color: var(--gsg-primary-dark, #121316);
	border: 1px solid #FFD700;
}

.gsg-venue-card__badge--premium i {
	color: var(--gsg-primary-dark, #121316);
}

.gsg-venue-card__actions {
	display: flex;
	gap: var(--gsg-spacing-sm);
	flex-wrap: wrap;
}

/* FORM STYLES */
.gsg-dashboard-form {
	max-width: 900px;
}

.gsg-dashboard-tab h2 {
	font-size: 2rem;
	font-weight: 700;
	color: var(--gsg-white, #fff);
	margin: 0 0 var(--gsg-spacing-md);
	padding-bottom: var(--gsg-spacing-sm);
	border-bottom: 2px solid var(--gsg-cyan-bright, #3ECFC4);
}

.gsg-form-section-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--gsg-white, #fff);
	margin: var(--gsg-spacing-xl) 0 var(--gsg-spacing-md);
	padding-bottom: var(--gsg-spacing-sm);
	border-bottom: 2px solid var(--gsg-cyan-bright, #3ECFC4);
}

.gsg-form-group {
	margin-bottom: var(--gsg-spacing-lg);
}

.gsg-form-label {
	display: block;
	font-weight: 600;
	color: var(--gsg-white, #fff);
	margin-bottom: var(--gsg-spacing-xs);
}

.gsg-required {
	color: var(--gsg-accent-orange);
}

.gsg-form-input,
.gsg-form-textarea {
	width: 100%;
	padding: 0.75rem 1rem;
	border: 2px solid var(--gsg-border-color);
	border-radius: var(--gsg-radius-md);
	font-size: 1rem;
	font-family: inherit;
	transition: border-color 0.2s ease;
}

.gsg-form-input:focus,
.gsg-form-textarea:focus {
	outline: none;
	border-color: var(--gsg-accent-teal);
}

.gsg-form-input--small {
	padding: 0.5rem 0.75rem;
	font-size: 0.875rem;
}

.gsg-form-textarea {
	resize: vertical;
	min-height: 120px;
}

.gsg-form-help {
	font-size: 0.875rem;
	color: var(--gsg-white, #fff);
	margin: 0.5rem 0 0;
	opacity: 0.7;
	font-style: italic;
}

.gsg-form-row--two-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--gsg-spacing-lg);
}

.gsg-form-actions {
	display: flex;
	align-items: center;
	gap: var(--gsg-spacing-md);
	margin-top: var(--gsg-spacing-xl);
	padding-top: var(--gsg-spacing-lg);
	border-top: 2px solid var(--gsg-border-color);
}

.gsg-form-spinner {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--gsg-primary-gray);
	font-size: 0.875rem;
}

/* OPENING HOURS TABLE - Dark Theme */
.gsg-opening-hours-table {
	background: var(--gsg-slate-medium, #53616D);
	border: 1px solid var(--gsg-slate-light, #6B7785);
	border-radius: var(--gsg-radius-xs, 2px);
	overflow: hidden;
}

.gsg-opening-hours-row {
	display: grid;
	grid-template-columns: 150px 1fr;
	gap: var(--gsg-spacing-md);
	padding: var(--gsg-spacing-md);
	border-bottom: 1px solid var(--gsg-slate-light, #6B7785);
}

.gsg-opening-hours-row:last-child {
	border-bottom: none;
}

.gsg-opening-hours-day {
	display: flex;
	align-items: center;
	color: var(--gsg-white, #fff);
	font-weight: 600;
}

.gsg-opening-hours-controls {
	display: flex;
	flex-direction: column;
	gap: var(--gsg-spacing-sm);
}

.gsg-checkbox-label {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
	font-size: 0.875rem;
	color: var(--gsg-white, #fff);
	opacity: 0.9;
}

.gsg-checkbox-label input[type="checkbox"] {
	cursor: pointer;
	accent-color: var(--gsg-cyan-bright, #3ECFC4);
}

.gsg-opening-hours-times {
	display: flex;
	align-items: center;
	gap: var(--gsg-spacing-sm);
}

.gsg-time-input {
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--gsg-slate-light, #6B7785);
	border-radius: var(--gsg-radius-xs, 2px);
	font-size: 0.875rem;
	font-family: inherit;
	min-width: 120px;
	background: var(--gsg-slate-dark, #4A5663);
	color: var(--gsg-white, #fff);
}

.gsg-time-input:focus {
	outline: none;
	border-color: var(--gsg-cyan-bright, #3ECFC4);
	box-shadow: 0 0 0 3px rgba(62, 207, 196, 0.2);
}

.gsg-time-separator {
	color: var(--gsg-white, #fff);
	font-weight: 600;
	opacity: 0.7;
}

.gsg-opening-hours-note {
	margin-top: var(--gsg-spacing-xs);
}

/* AMENITIES GRID - Dark Theme */
.gsg-dashboard-tab--amenities .gsg-amenities-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
	gap: 10px !important;
	margin-top: 10px !important;
}

.gsg-dashboard-tab .gsg-amenities-category {
	background: var(--gsg-slate-dark, #4A5663);
	border: 1px solid var(--gsg-slate-light, #6B7785);
	border-radius: var(--gsg-radius-xs, 2px);
	padding: var(--gsg-spacing-md);
}

.gsg-dashboard-tab .gsg-amenities-category__title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--gsg-white, #fff);
	margin: 0 0 var(--gsg-spacing-md);
	padding-bottom: var(--gsg-spacing-sm);
	border-bottom: 2px solid var(--gsg-orange-bright, #FF6B35);
}

.gsg-amenities-category__list {
	display: flex;
	flex-direction: column;
	gap: var(--gsg-spacing-xs);
}

.gsg-amenity-checkbox {
	display: flex;
	align-items: center;
	gap: var(--gsg-spacing-sm);
	padding: 0.75rem 1rem;
	background: var(--gsg-white, #fff);
	border: 2px solid transparent;
	border-radius: var(--gsg-radius-xs, 2px);
	cursor: pointer;
	transition: all 0.2s ease;
}

.gsg-amenity-checkbox:hover {
	background: var(--gsg-white);
	border-color: var(--gsg-cyan-bright, #3ECFC4);
	box-shadow: 0 2px 8px rgba(62, 207, 196, 0.2);
}

.gsg-amenity-checkbox input[type="checkbox"] {
	cursor: pointer;
	accent-color: var(--gsg-cyan-bright, #3ECFC4);
}

.gsg-amenity-checkbox input[type="checkbox"]:checked + .gsg-amenity-checkbox__icon {
	color: var(--gsg-cyan-bright, #3ECFC4);
}

.gsg-amenity-checkbox__icon {
	width: 1.5rem;
	height: 1.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	color: var(--gsg-slate-light, #6B7785);
	transition: color 0.2s ease;
}

.gsg-amenity-checkbox__label {
	flex: 1;
	font-size: 0.875rem;
	color: var(--gsg-primary-dark, #121316);
	font-weight: 500;
}

/* AMENITIES - Dark Theme for Dashboard */
.gsg-dashboard-tab--amenities .gsg-amenity-checkbox {
	background: var(--gsg-slate-medium, #53616D) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
	padding: 0.5rem 0.75rem !important;
}

.gsg-dashboard-tab--amenities .gsg-amenity-checkbox:hover {
	background: var(--gsg-slate-light, #6B7785) !important;
	border-color: var(--gsg-cyan-bright, #3ECFC4) !important;
	box-shadow: 0 2px 8px rgba(62, 207, 196, 0.2) !important;
}

.gsg-dashboard-tab--amenities .gsg-amenity-checkbox__label {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard-tab--amenities .gsg-amenity-checkbox__icon {
	color: var(--gsg-slate-light, #6B7785) !important;
}

.gsg-dashboard-tab--amenities .gsg-amenity-checkbox input[type="checkbox"]:checked + .gsg-amenity-checkbox__icon {
	color: var(--gsg-cyan-bright, #3ECFC4) !important;
}

/* PHOTOS TAB - Dark Theme */
.gsg-dashboard-tab .gsg-photo-limit-badge {
	background: var(--gsg-slate-medium, #53616D) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-dashboard-tab .gsg-photo-count {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard-tab .gsg-photo-tier {
	color: var(--gsg-white, #fff) !important;
	opacity: 0.7;
}

.gsg-dashboard-tab--photos .gsg-photo-item {
	background: var(--gsg-slate-medium, #53616D) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-dashboard-tab--photos .gsg-photo-item:hover {
	border-color: var(--gsg-cyan-bright, #3ECFC4) !important;
	box-shadow: 0 4px 12px rgba(62, 207, 196, 0.3) !important;
}

.gsg-dashboard-tab--photos .gsg-photo-item__info {
	color: var(--gsg-white, #fff) !important;
	opacity: 0.8;
	border-top: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-dashboard-tab--photos .gsg-photo-item__actions {
	background: var(--gsg-slate-medium, #53616D) !important;
}

.gsg-dashboard-tab .gsg-dashboard__header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: var(--gsg-spacing-lg);
}

/* FAQs TAB - Dark Theme */
.gsg-dashboard__section-title {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard__section-title i {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard__description {
	color: var(--gsg-white, #fff) !important;
}

.gsg-faq-item {
	background: var(--gsg-slate-dark, #4A5663) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-faq-field label {
	color: var(--gsg-white, #fff) !important;
}

.gsg-char-count {
	color: var(--gsg-white, #fff) !important;
	opacity: 0.7;
}

/* PRICE LIST TAB - Dark Theme */
.gsg-dashboard-price-section {
	background: var(--gsg-slate-dark, #4A5663) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-dashboard-price-section-header {
	background: var(--gsg-slate-medium, #53616D) !important;
}

.gsg-dashboard-price-item {
	background: var(--gsg-slate-medium, #53616D) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-section-drag-handle,
.gsg-item-drag-handle {
	color: var(--gsg-white, #fff) !important;
	opacity: 0.6;
}

/* EVENTS TAB - Dark Theme */
.gsg-events-header h3 {
	color: var(--gsg-white, #fff) !important;
}

.gsg-no-events {
	color: var(--gsg-white, #fff) !important;
}

.gsg-events-tab-content table.wp-list-table {
	color: var(--gsg-white, #fff) !important;
}

.gsg-events-tab-content table.wp-list-table th,
.gsg-events-tab-content table.wp-list-table td {
	color: var(--gsg-white, #fff) !important;
}

.gsg-events-tab-content table.wp-list-table thead th {
	background: var(--gsg-slate-medium, #53616D) !important;
	border-color: var(--gsg-slate-light, #6B7785) !important;
}

.gsg-events-tab-content table.wp-list-table tbody tr {
	background: var(--gsg-slate-dark, #4A5663) !important;
}

.gsg-events-tab-content table.wp-list-table tbody tr:nth-child(even) {
	background: var(--gsg-slate-medium, #53616D) !important;
}

/* Event Modal - Dark Theme */
.gsg-modal-header h2 {
	color: var(--gsg-white, #fff) !important;
}

.gsg-modal-body .gsg-form-field label {
	color: var(--gsg-white, #fff) !important;
}

.gsg-modal-body .description,
.gsg-modal-body p.description {
	color: var(--gsg-white, #fff) !important;
	opacity: 0.8;
}

.gsg-modal-body .required {
	color: var(--gsg-orange-bright, #FF6B35) !important;
}

/* CLOSURES TAB - Dark Theme */
.gsg-dashboard__subsection-title {
	color: var(--gsg-white, #fff) !important;
}

.gsg-closure-item {
	background: var(--gsg-slate-dark, #4A5663) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-closure-field label {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard__empty {
	color: var(--gsg-white, #fff) !important;
}

/* RESPONSIVE: DASHBOARD */
@media (max-width: 768px) {
	.gsg-dashboard__tabs {
		flex-wrap: nowrap;
		justify-content: flex-start;
	}

	.gsg-dashboard__tab {
		font-size: 0.875rem;
		padding: 0.75rem 1rem;
	}

	.gsg-dashboard__content {
		padding: var(--gsg-spacing-md);
	}

	.gsg-dashboard__venue-cards {
		grid-template-columns: 1fr;
	}

	.gsg-form-row--two-col {
		grid-template-columns: 1fr;
	}

	.gsg-opening-hours-row {
		grid-template-columns: 1fr;
		gap: var(--gsg-spacing-sm);
	}

	.gsg-opening-hours-day {
		font-size: 0.875rem;
	}

	.gsg-opening-hours-times {
		flex-wrap: wrap;
	}

	.gsg-amenities-category__list {
		grid-template-columns: 1fr;
	}

	/* Keep amenities grid responsive on dashboard */
	.gsg-dashboard-tab--amenities .gsg-amenities-grid {
		grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
	}

	.gsg-venue-card__actions {
		flex-direction: column;
	}

	.gsg-venue-card__actions .gsg-button {
		width: 100%;
		justify-content: center;
	}

	.gsg-dashboard__venue-selector {
		flex-direction: column;
		align-items: stretch;
	}

	.gsg-dashboard__select {
		min-width: 100%;
	}
}

/* ========================================
   DASHBOARD LOGIN FORM - Dark Theme
   ======================================== */

.gsg-login-container {
	max-width: 500px;
	margin: var(--gsg-spacing-xl) auto;
	padding: var(--gsg-spacing-md);
}

.gsg-login-box {
	background: var(--gsg-slate-dark, #4A5663);
	border-radius: var(--gsg-radius-xs, 2px);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
	padding: var(--gsg-spacing-xl);
	border: 1px solid var(--gsg-slate-light, #6B7785);
}

.gsg-login-header {
	text-align: center;
	margin-bottom: var(--gsg-spacing-xl);
	padding-bottom: var(--gsg-spacing-lg);
	border-bottom: 2px solid var(--gsg-cyan-bright, #3ECFC4);
}

.gsg-login-title {
	font-size: 2rem;
	font-weight: 700;
	color: var(--gsg-white, #fff);
	margin: 0 0 var(--gsg-spacing-xs);
}

.gsg-login-subtitle {
	font-size: 1rem;
	color: var(--gsg-white, #fff);
	margin: 0;
	opacity: 0.8;
}

.gsg-form-group--checkbox {
	margin-bottom: var(--gsg-spacing-md);
}

.gsg-form-actions--login {
	margin-top: var(--gsg-spacing-lg);
	padding-top: 0;
	border-top: none;
}

.gsg-button--full {
	width: 100%;
	justify-content: center;
	font-size: 1.125rem;
	padding: 1rem 1.5rem;
}

.gsg-login-footer {
	text-align: center;
	margin-top: var(--gsg-spacing-lg);
	padding-top: var(--gsg-spacing-lg);
	border-top: 1px solid var(--gsg-slate-light, #6B7785);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--gsg-spacing-sm);
	flex-wrap: wrap;
}

.gsg-login-link {
	color: var(--gsg-cyan-bright, #3ECFC4);
	text-decoration: none;
	font-size: 0.875rem;
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	transition: color 0.2s ease;
}

.gsg-login-link:hover {
	color: var(--gsg-orange-bright, #FF6B35);
	text-decoration: underline;
}

.gsg-login-separator {
	color: var(--gsg-white, #fff);
	font-size: 0.875rem;
	opacity: 0.5;
}

/* Login form input focus states */
#gsg-loginform .gsg-form-input:focus {
	border-color: var(--gsg-cyan-bright, #3ECFC4);
	box-shadow: 0 0 0 3px rgba(62, 207, 196, 0.2);
}

/* Responsive: Login Form */
@media (max-width: 480px) {
	.gsg-login-container {
		padding: var(--gsg-spacing-sm);
	}

	.gsg-login-box {
		padding: var(--gsg-spacing-lg);
	}

	.gsg-login-title {
		font-size: 1.5rem;
	}

	.gsg-login-footer {
		flex-direction: column;
		gap: var(--gsg-spacing-xs);
	}

	.gsg-login-separator {
		display: none;
	}
}

/* ========================================
   DASHBOARD PHOTOS TAB
   ======================================== */

.gsg-photo-upload-section {
	margin-bottom: var(--gsg-spacing-xl);
	padding-bottom: var(--gsg-spacing-xl);
	border-bottom: 2px solid var(--gsg-border-color);
}

.gsg-file-input {
	cursor: pointer;
	padding: 0.75rem;
	border: 2px dashed var(--gsg-border-color);
	background: var(--gsg-background-light);
	border-radius: var(--gsg-radius-md);
}

.gsg-file-input:hover {
	border-color: var(--gsg-accent-teal);
	background: var(--gsg-white);
}

.gsg-photo-preview {
	margin-top: var(--gsg-spacing-md);
	padding: var(--gsg-spacing-md);
	background: var(--gsg-background-light);
	border-radius: var(--gsg-radius-md);
}

.gsg-file-list {
	list-style: none;
	padding: 0;
	margin: var(--gsg-spacing-sm) 0 0;
}

.gsg-file-list li {
	padding: 0.5rem 0;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--gsg-primary-dark);
	font-size: 0.875rem;
}

.gsg-file-list li i {
	color: var(--gsg-accent-teal);
}

/* Photo Gallery Grid */
.gsg-photo-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: var(--gsg-spacing-lg);
}

.gsg-photo-item {
	background: var(--gsg-white);
	border: 2px solid var(--gsg-border-color);
	border-radius: var(--gsg-radius-lg);
	overflow: hidden;
	transition: all 0.2s ease;
	position: relative;
}

.gsg-photo-item:hover {
	border-color: var(--gsg-accent-teal);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Drag Handle */
.gsg-photo-drag-handle {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10;
	padding: 0.75rem;
	cursor: grab;
	background: rgba(0, 0, 0, 0.6);
	color: var(--gsg-white);
	border-radius: var(--gsg-radius-lg) 0 var(--gsg-radius-md) 0;
	transition: all 0.2s ease;
	opacity: 0;
}

.gsg-photo-item:hover .gsg-photo-drag-handle {
	opacity: 1;
}

.gsg-photo-drag-handle:active {
	cursor: grabbing;
}

.gsg-photo-drag-handle i {
	font-size: 1rem;
	display: block;
}

/* Always visible on mobile/touch devices */
@media (hover: none) and (pointer: coarse) {
	.gsg-photo-drag-handle {
		opacity: 0.7;
		background: rgba(0, 0, 0, 0.5);
	}

	.gsg-photo-item:hover .gsg-photo-drag-handle {
		opacity: 0.9;
	}
}

/* Drag States */
.gsg-photo-item--ghost {
	opacity: 0.4;
	border: 2px dashed var(--gsg-accent-teal);
	background: rgba(62, 207, 196, 0.1);
}

.gsg-photo-item--dragging {
	opacity: 0.8;
	transform: scale(1.05);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
	cursor: grabbing;
	z-index: 1000;
}

.gsg-photo-item--chosen {
	border-color: var(--gsg-accent-teal);
	box-shadow: 0 0 0 3px rgba(62, 207, 196, 0.3);
}

/* Success animation after reordering */
.gsg-photo-item--updated {
	animation: photoUpdatedPulse 0.6s ease-out;
}

@keyframes photoUpdatedPulse {
	0% {
		transform: scale(1);
	}
	50% {
		transform: scale(1.05);
		box-shadow: 0 0 0 4px rgba(62, 207, 196, 0.4);
		border-color: var(--gsg-accent-teal);
	}
	100% {
		transform: scale(1);
	}
}

.gsg-photo-item__image {
	position: relative;
	width: 100%;
	height: 200px;
	overflow: hidden;
}

.gsg-photo-item__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.gsg-photo-badge {
	position: absolute;
	top: var(--gsg-spacing-sm);
	right: var(--gsg-spacing-sm);
	padding: 0.375rem 0.75rem;
	border-radius: var(--gsg-radius-sm);
	font-size: 0.75rem;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.gsg-photo-badge--primary {
	background: linear-gradient(135deg, #FFD700, #FFA500);
	color: var(--gsg-primary-dark);
	top: auto;
	bottom: var(--gsg-spacing-sm);
	left: var(--gsg-spacing-sm);
	right: auto;
}

.gsg-photo-badge--approved {
	background: #28a745;
	color: var(--gsg-white);
}

.gsg-photo-badge--pending {
	background: #ffc107;
	color: var(--gsg-primary-dark);
}

.gsg-photo-item__actions {
	padding: var(--gsg-spacing-md);
	display: flex;
	gap: var(--gsg-spacing-sm);
	flex-wrap: wrap;
}

.gsg-photo-item__actions .gsg-button {
	flex: 1;
	min-width: 120px;
	justify-content: center;
}

.gsg-photo-item__info {
	padding: 0 var(--gsg-spacing-md) var(--gsg-spacing-md);
	color: var(--gsg-primary-gray);
	font-size: 0.75rem;
	text-align: center;
	border-top: 1px solid var(--gsg-border-color);
	padding-top: var(--gsg-spacing-sm);
	margin-top: var(--gsg-spacing-sm);
}

.gsg-button--danger,
button.gsg-button--danger,
a.gsg-button--danger,
input.gsg-button--danger {
	background: #dc3545 !important;
	border-color: #dc3545 !important;
	color: var(--gsg-white) !important;
}

.gsg-button--danger:hover,
button.gsg-button--danger:hover,
a.gsg-button--danger:hover,
input.gsg-button--danger:hover {
	background: #c82333 !important;
	border-color: #bd2130 !important;
}

/* Responsive: Photos */
@media (max-width: 768px) {
	.gsg-photo-gallery {
		grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
		gap: var(--gsg-spacing-md);
	}

	.gsg-photo-item__image {
		height: 160px;
	}

	.gsg-photo-item__actions {
		flex-direction: column;
	}

	.gsg-photo-item__actions .gsg-button {
		width: 100%;
	}
}

@media (max-width: 480px) {
	.gsg-photo-gallery {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Analytics Tab (Free Tier) - Phase 16
   ========================================================================== */

/* Main analytics container */
.gsg-dashboard .gsg-dashboard__analytics {
	padding: 0 !important;
	margin: 0 !important;
}

/* Stats Grid (3 cards) */
.gsg-dashboard .gsg-analytics__stats-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
	gap: var(--gsg-spacing-lg) !important;
	margin-bottom: var(--gsg-spacing-xl) !important;
}

/* Individual Stat Card */
.gsg-dashboard .gsg-analytics__stat-card {
	display: flex !important;
	align-items: flex-start !important;
	gap: var(--gsg-spacing-md) !important;
	padding: var(--gsg-spacing-lg) !important;
	background: var(--gsg-background-light) !important;
	border: 1px solid var(--gsg-border-color) !important;
	border-radius: var(--gsg-border-radius-md) !important;
	transition: all 0.3s ease !important;
}

.gsg-dashboard .gsg-analytics__stat-card:hover {
	transform: translateY(-2px) !important;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
	border-color: var(--gsg-accent-teal) !important;
}

/* Stat Icon Container */
.gsg-dashboard .gsg-analytics__stat-icon {
	flex-shrink: 0 !important;
	width: 60px !important;
	height: 60px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	border-radius: var(--gsg-border-radius-md) !important;
	font-size: 28px !important;
}

.gsg-dashboard .gsg-analytics__stat-icon--views {
	background: rgba(43, 193, 191, 0.1) !important;
	color: var(--gsg-accent-teal) !important;
}

.gsg-dashboard .gsg-analytics__stat-icon--month {
	background: rgba(199, 107, 54, 0.1) !important;
	color: var(--gsg-accent-orange) !important;
}

.gsg-dashboard .gsg-analytics__stat-icon--clicks {
	background: rgba(18, 19, 22, 0.1) !important;
	color: var(--gsg-primary-dark) !important;
}

.gsg-dashboard .gsg-analytics__stat-icon i {
	margin: 0 !important;
	padding: 0 !important;
}

/* Stat Content */
.gsg-dashboard .gsg-analytics__stat-content {
	flex: 1 !important;
}

.gsg-dashboard h3.gsg-analytics__stat-label {
	margin: 0 0 var(--gsg-spacing-xs) 0 !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: var(--gsg-primary-gray) !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
}

.gsg-dashboard .gsg-analytics__stat-value {
	font-size: 36px !important;
	font-weight: 700 !important;
	color: var(--gsg-primary-dark) !important;
	line-height: 1.2 !important;
	margin-bottom: var(--gsg-spacing-xs) !important;
}

.gsg-dashboard p.gsg-analytics__stat-description {
	margin: 0 !important;
	font-size: 13px !important;
	color: var(--gsg-primary-gray) !important;
	line-height: 1.4 !important;
}

/* Premium Upgrade Card */
.gsg-dashboard .gsg-analytics__upgrade-card {
	display: flex !important;
	gap: var(--gsg-spacing-xl) !important;
	padding: var(--gsg-spacing-xl) !important;
	background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%) !important;
	border: 2px solid var(--gsg-accent-orange) !important;
	border-radius: var(--gsg-border-radius-lg) !important;
	position: relative !important;
	overflow: hidden !important;
}

.gsg-dashboard .gsg-analytics__upgrade-card::before {
	content: '' !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	height: 4px !important;
	background: linear-gradient(90deg, var(--gsg-accent-teal) 0%, var(--gsg-accent-orange) 100%) !important;
}

/* Upgrade Icon */
.gsg-dashboard .gsg-analytics__upgrade-icon {
	flex-shrink: 0 !important;
	width: 80px !important;
	height: 80px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: linear-gradient(135deg, var(--gsg-accent-teal) 0%, var(--gsg-accent-orange) 100%) !important;
	border-radius: var(--gsg-border-radius-md) !important;
	color: #fff !important;
	font-size: 36px !important;
}

.gsg-dashboard .gsg-analytics__upgrade-icon i {
	margin: 0 !important;
	padding: 0 !important;
}

/* Upgrade Content */
.gsg-dashboard .gsg-analytics__upgrade-content {
	flex: 1 !important;
}

.gsg-dashboard h3.gsg-analytics__upgrade-title {
	margin: 0 0 var(--gsg-spacing-sm) 0 !important;
	font-size: 24px !important;
	font-weight: 700 !important;
	color: var(--gsg-primary-dark) !important;
	line-height: 1.3 !important;
}

.gsg-dashboard p.gsg-analytics__upgrade-description {
	margin: 0 0 var(--gsg-spacing-md) 0 !important;
	font-size: 16px !important;
	color: var(--gsg-primary-gray) !important;
	line-height: 1.6 !important;
}

/* Feature List */
.gsg-dashboard ul.gsg-analytics__upgrade-features {
	list-style: none !important;
	margin: 0 0 var(--gsg-spacing-lg) 0 !important;
	padding: 0 !important;
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
	gap: var(--gsg-spacing-sm) !important;
}

.gsg-dashboard .gsg-analytics__upgrade-features li {
	display: flex !important;
	align-items: center !important;
	gap: var(--gsg-spacing-sm) !important;
	font-size: 15px !important;
	color: var(--gsg-primary-dark) !important;
	line-height: 1.5 !important;
	margin: 0 !important;
	padding: 0 !important;
}

.gsg-dashboard .gsg-analytics__upgrade-features li i {
	color: var(--gsg-accent-teal) !important;
	font-size: 16px !important;
	flex-shrink: 0 !important;
}

/* Upgrade Button */
.gsg-dashboard button.gsg-analytics__upgrade-button {
	width: 100% !important;
	padding: 16px 32px !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	background: linear-gradient(135deg, var(--gsg-accent-teal) 0%, var(--gsg-accent-orange) 100%) !important;
	color: #fff !important;
	border: none !important;
	border-radius: var(--gsg-border-radius-md) !important;
	cursor: pointer !important;
	transition: all 0.3s ease !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	box-shadow: 0 4px 12px rgba(43, 193, 191, 0.3) !important;
}

.gsg-dashboard button.gsg-analytics__upgrade-button:hover {
	transform: translateY(-2px) !important;
	box-shadow: 0 6px 20px rgba(43, 193, 191, 0.4) !important;
}

.gsg-dashboard button.gsg-analytics__upgrade-button i {
	margin-right: var(--gsg-spacing-xs) !important;
}

.gsg-dashboard p.gsg-analytics__upgrade-footer {
	margin: var(--gsg-spacing-sm) 0 0 0 !important;
	font-size: 13px !important;
	color: var(--gsg-primary-gray) !important;
	text-align: center !important;
	font-style: italic !important;
}

/* ===== Premium Analytics Dashboard Styles ===== */

/* 4-column stats grid for premium tiers */
.gsg-dashboard .gsg-analytics__stats-grid--4col {
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
}

/* Date Range Filter */
.gsg-dashboard .gsg-analytics__filters {
	background: var(--gsg-white) !important;
	border: 1px solid var(--gsg-border-color) !important;
	border-radius: var(--gsg-border-radius-md) !important;
	padding: var(--gsg-spacing-lg) !important;
	margin-bottom: var(--gsg-spacing-xl) !important;
}

.gsg-dashboard .gsg-analytics__date-filter {
	display: flex !important;
	flex-direction: column !important;
	gap: var(--gsg-spacing-md) !important;
}

.gsg-dashboard .gsg-analytics__date-inputs {
	display: flex !important;
	align-items: center !important;
	gap: var(--gsg-spacing-md) !important;
	flex-wrap: wrap !important;
}

.gsg-dashboard .gsg-analytics__date-inputs label {
	font-size: 14px !important;
	font-weight: 600 !important;
	color: var(--gsg-primary-dark) !important;
}

.gsg-dashboard .gsg-analytics__date-inputs input[type="date"] {
	padding: 8px 12px !important;
	border: 1px solid var(--gsg-border-color) !important;
	border-radius: var(--gsg-border-radius-sm) !important;
	font-size: 14px !important;
}

.gsg-dashboard .gsg-analytics__presets {
	display: flex !important;
	gap: var(--gsg-spacing-sm) !important;
	flex-wrap: wrap !important;
}

/* Analytics Sections */
.gsg-dashboard .gsg-analytics__section {
	background: var(--gsg-white) !important;
	border: 1px solid var(--gsg-border-color) !important;
	border-radius: var(--gsg-border-radius-md) !important;
	padding: var(--gsg-spacing-lg) !important;
	margin-bottom: var(--gsg-spacing-xl) !important;
}

.gsg-dashboard .gsg-analytics__section--half {
	flex: 1 !important;
	min-width: 300px !important;
}

.gsg-dashboard h3.gsg-analytics__section-title {
	margin: 0 0 var(--gsg-spacing-lg) 0 !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	color: var(--gsg-primary-dark) !important;
	display: flex !important;
	align-items: center !important;
	gap: var(--gsg-spacing-sm) !important;
}

.gsg-dashboard .gsg-analytics__section-title i {
	color: var(--gsg-accent-teal) !important;
}

/* Interaction Breakdown */
.gsg-dashboard .gsg-analytics__click-breakdown {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
	gap: var(--gsg-spacing-lg) !important;
}

.gsg-dashboard .gsg-analytics__click-item {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: var(--gsg-spacing-sm) !important;
	padding: var(--gsg-spacing-lg) !important;
	background: var(--gsg-background-light) !important;
	border-radius: var(--gsg-border-radius-md) !important;
}

.gsg-dashboard .gsg-analytics__click-item i {
	font-size: 28px !important;
	color: var(--gsg-accent-teal) !important;
}

.gsg-dashboard .gsg-analytics__click-label {
	font-size: 13px !important;
	font-weight: 600 !important;
	color: var(--gsg-primary-gray) !important;
	text-transform: uppercase !important;
}

.gsg-dashboard .gsg-analytics__click-value {
	font-size: 24px !important;
	font-weight: 700 !important;
	color: var(--gsg-primary-dark) !important;
}

/* Charts Row */
.gsg-dashboard .gsg-analytics__charts-row {
	display: flex !important;
	gap: var(--gsg-spacing-xl) !important;
	margin-bottom: var(--gsg-spacing-xl) !important;
	flex-wrap: wrap !important;
}

.gsg-dashboard .gsg-analytics__chart {
	position: relative !important;
	height: 300px !important;
}

/* Traffic Sources */
.gsg-dashboard .gsg-analytics__sources {
	display: flex !important;
	flex-direction: column !important;
	gap: var(--gsg-spacing-md) !important;
}

.gsg-dashboard .gsg-analytics__source-item {
	display: flex !important;
	align-items: center !important;
	gap: var(--gsg-spacing-md) !important;
	padding: var(--gsg-spacing-md) !important;
	background: var(--gsg-background-light) !important;
	border-radius: var(--gsg-border-radius-sm) !important;
}

.gsg-dashboard .gsg-analytics__source-item i {
	font-size: 20px !important;
	color: var(--gsg-accent-teal) !important;
}

.gsg-dashboard .gsg-analytics__source-label {
	flex: 1 !important;
	font-weight: 600 !important;
	color: var(--gsg-primary-dark) !important;
}

.gsg-dashboard .gsg-analytics__source-value {
	font-weight: 700 !important;
	color: var(--gsg-primary-gray) !important;
}

/* Device Breakdown */
.gsg-dashboard .gsg-analytics__devices {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
	gap: var(--gsg-spacing-lg) !important;
}

.gsg-dashboard .gsg-analytics__device-item {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: var(--gsg-spacing-sm) !important;
	padding: var(--gsg-spacing-lg) !important;
	background: var(--gsg-background-light) !important;
	border-radius: var(--gsg-border-radius-md) !important;
}

.gsg-dashboard .gsg-analytics__device-item i {
	font-size: 32px !important;
	color: var(--gsg-accent-orange) !important;
}

.gsg-dashboard .gsg-analytics__device-label {
	font-size: 13px !important;
	font-weight: 600 !important;
	color: var(--gsg-primary-gray) !important;
	text-transform: uppercase !important;
}

.gsg-dashboard .gsg-analytics__device-value {
	font-size: 24px !important;
	font-weight: 700 !important;
	color: var(--gsg-primary-dark) !important;
}

/* Competitor Benchmarking (Premium Plus) */
.gsg-dashboard .gsg-analytics__benchmarking {
	background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%) !important;
	border: 2px solid var(--gsg-premium-plus-color, #f5576c) !important;
}

.gsg-dashboard .gsg-analytics__benchmark-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
	gap: var(--gsg-spacing-lg) !important;
}

.gsg-dashboard .gsg-analytics__benchmark-card {
	padding: var(--gsg-spacing-lg) !important;
	background: var(--gsg-white) !important;
	border-radius: var(--gsg-border-radius-md) !important;
	text-align: center !important;
}

.gsg-dashboard .gsg-analytics__benchmark-label {
	font-size: 12px !important;
	font-weight: 600 !important;
	color: var(--gsg-primary-gray) !important;
	text-transform: uppercase !important;
	margin-bottom: var(--gsg-spacing-sm) !important;
}

.gsg-dashboard .gsg-analytics__benchmark-value {
	font-size: 32px !important;
	font-weight: 700 !important;
	color: var(--gsg-primary-dark) !important;
	margin-bottom: var(--gsg-spacing-sm) !important;
}

.gsg-dashboard .gsg-analytics__benchmark-value--yours {
	color: var(--gsg-accent-teal) !important;
}

.gsg-dashboard .gsg-analytics__benchmark-comparison {
	font-size: 14px !important;
	font-weight: 600 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: var(--gsg-spacing-xs) !important;
}

.gsg-dashboard .gsg-analytics__benchmark-comparison--positive {
	color: #28a745 !important;
}

.gsg-dashboard .gsg-analytics__benchmark-comparison--negative {
	color: #dc3545 !important;
}

.gsg-dashboard .gsg-analytics__benchmark-description {
	font-size: 13px !important;
	color: var(--gsg-primary-gray) !important;
}

/* Export Buttons */
.gsg-dashboard .gsg-analytics__export {
	display: flex !important;
	gap: var(--gsg-spacing-md) !important;
	justify-content: center !important;
	padding: var(--gsg-spacing-xl) 0 !important;
}

/* Additional stat icon colors for premium features */
.gsg-dashboard .gsg-analytics__stat-icon--ctr {
	background: rgba(245, 87, 108, 0.1) !important;
	color: #f5576c !important;
}

.gsg-dashboard .gsg-analytics__stat-icon--bounce {
	background: rgba(139, 69, 255, 0.1) !important;
	color: #8b45ff !important;
}

/* ANALYTICS TAB - Dark Theme (must come after base analytics styles) */
.gsg-dashboard .gsg-analytics__stat-card {
	background: var(--gsg-slate-dark, #4A5663) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-dashboard h3.gsg-analytics__stat-label {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard .gsg-analytics__stat-value {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard p.gsg-analytics__stat-description {
	color: var(--gsg-white, #fff) !important;
	opacity: 0.8;
}

.gsg-dashboard .gsg-analytics__upgrade-card {
	background: var(--gsg-slate-dark, #4A5663) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-dashboard h3.gsg-analytics__upgrade-title {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard p.gsg-analytics__upgrade-description {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard .gsg-analytics__upgrade-features li {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard p.gsg-analytics__upgrade-footer {
	color: var(--gsg-white, #fff) !important;
	opacity: 0.7;
}

.gsg-dashboard .gsg-analytics__date-inputs label {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard h3.gsg-analytics__section-title {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard .gsg-analytics__click-label,
.gsg-dashboard .gsg-analytics__click-value,
.gsg-dashboard .gsg-analytics__source-label,
.gsg-dashboard .gsg-analytics__source-value,
.gsg-dashboard .gsg-analytics__device-label,
.gsg-dashboard .gsg-analytics__device-value {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard .gsg-analytics__benchmark-label,
.gsg-dashboard .gsg-analytics__benchmark-value,
.gsg-dashboard .gsg-analytics__benchmark-description {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard .gsg-analytics__section {
	background: var(--gsg-slate-dark, #4A5663) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-dashboard .gsg-analytics__click-item,
.gsg-dashboard .gsg-analytics__source-item,
.gsg-dashboard .gsg-analytics__device-item,
.gsg-dashboard .gsg-analytics__benchmark-card {
	background: var(--gsg-slate-medium, #53616D) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-dashboard .gsg-analytics__filters {
	background: var(--gsg-slate-dark, #4A5663) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

/* ACCOUNT TAB - Dark Theme */
.gsg-dashboard-tab--account h2,
.gsg-dashboard-tab--account h3 {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard-tab--account .gsg-form-group label,
.gsg-dashboard-tab--account .gsg-form-group label strong {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard-tab--account .gsg-form-group p,
.gsg-dashboard-tab--account .gsg-help-text {
	color: var(--gsg-white, #fff) !important;
}

.gsg-dashboard-tab--account .gsg-dashboard__intro {
	color: var(--gsg-white, #fff) !important;
}

/* SUBSCRIPTION TAB - Dark Theme */
.gsg-dashboard__subscription h2,
.gsg-dashboard__subscription h3 {
	color: var(--gsg-white, #fff) !important;
}

.gsg-subscription__status-title,
.gsg-subscription__plans-title,
.gsg-subscription__plans-description {
	color: var(--gsg-white, #fff) !important;
}

.gsg-subscription__status-label,
.gsg-subscription__status-value {
	color: var(--gsg-white, #fff) !important;
}

.gsg-subscription__status-description {
	color: var(--gsg-white, #fff) !important;
}

.gsg-subscription__alert-title,
.gsg-subscription__alert-message {
	color: var(--gsg-white, #fff) !important;
}

.gsg-subscription__plan-name,
.gsg-subscription__plan-tagline,
.gsg-subscription__feature-item span {
	color: var(--gsg-white, #fff) !important;
}

.gsg-subscription__trust-item span {
	color: var(--gsg-white, #fff) !important;
}

/* Full dark theme for subscription cards and elements */
.gsg-subscription__status-card {
	background: var(--gsg-slate-dark, #4A5663) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-subscription__plan-card {
	background: var(--gsg-slate-dark, #4A5663) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-subscription__alert {
	background: var(--gsg-slate-dark, #4A5663) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-subscription__trust {
	background: var(--gsg-slate-dark, #4A5663) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-subscription__plan-header {
	background: var(--gsg-slate-medium, #53616D) !important;
}

.gsg-subscription__plan-price-amount,
.gsg-subscription__plan-price-period {
	color: var(--gsg-white, #fff) !important;
}

/* Responsive: Tablet */
@media (max-width: 768px) {
	.gsg-dashboard .gsg-analytics__stats-grid {
		grid-template-columns: 1fr !important;
	}

	.gsg-dashboard .gsg-analytics__upgrade-card {
		flex-direction: column !important;
		gap: var(--gsg-spacing-lg) !important;
	}

	.gsg-dashboard .gsg-analytics__upgrade-icon {
		width: 100% !important;
		height: 80px !important;
	}

	.gsg-dashboard ul.gsg-analytics__upgrade-features {
		grid-template-columns: 1fr !important;
	}
}

/* Responsive: Mobile */
@media (max-width: 480px) {
	.gsg-dashboard .gsg-analytics__stat-card {
		flex-direction: column !important;
		text-align: center !important;
	}

	.gsg-dashboard .gsg-analytics__stat-value {
		font-size: 32px !important;
	}

	.gsg-dashboard h3.gsg-analytics__upgrade-title {
		font-size: 20px !important;
	}

	.gsg-dashboard button.gsg-analytics__upgrade-button {
		font-size: 16px !important;
		padding: 14px 24px !important;
	}
}

/* ===== Dashboard Subscription Tab ===== */

/* Container */
.gsg-dashboard__subscription {
	padding: var(--gsg-spacing-lg);
	max-width: 100%;
	overflow-x: hidden;
}

/* Current Status Card */
.gsg-subscription__status-card {
	background: var(--gsg-white);
	border: 1px solid var(--gsg-border-color);
	border-radius: var(--gsg-radius-md);
	padding: var(--gsg-spacing-lg);
	margin-bottom: var(--gsg-spacing-xl);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
	max-width: 100%;
	overflow-x: hidden;
}

.gsg-subscription__status-header {
	display: flex;
	align-items: center;
	gap: var(--gsg-spacing-md);
	margin-bottom: var(--gsg-spacing-lg);
}

.gsg-subscription__status-icon {
	font-size: 48px;
	line-height: 1;
}

.gsg-subscription__status-title {
	font-size: 16px;
	font-weight: 600;
	color: var(--gsg-primary-gray);
	margin: 0 0 8px 0;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.gsg-subscription__status-tier {
	display: flex;
	align-items: center;
	gap: var(--gsg-spacing-sm);
	flex-wrap: wrap;
}

.gsg-subscription__tier-badge {
	display: inline-block;
	padding: 8px 16px;
	border-radius: var(--gsg-radius-sm);
	font-size: 20px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.gsg-subscription__tier-badge--free {
	background: #E5E7EB;
	color: #6B7280;
}

.gsg-subscription__tier-badge--premium {
	background: linear-gradient(135deg, #C0C0C0 0%, #A8A8A8 100%);
	color: var(--gsg-white);
}

.gsg-subscription__tier-badge--premium_plus {
	background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
	color: var(--gsg-primary-dark);
}

.gsg-subscription__tier-price {
	font-size: 18px;
	font-weight: 600;
	color: var(--gsg-primary-dark);
}

/* Status CTA (Free Tier) */
.gsg-subscription__status-cta {
	padding-top: var(--gsg-spacing-lg);
	border-top: 1px solid var(--gsg-border-color);
}

.gsg-subscription__status-description {
	font-size: 16px;
	color: var(--gsg-primary-gray);
	margin-bottom: var(--gsg-spacing-md);
}

.gsg-subscription__upgrade-button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

/* Status Details (Active Subscription) */
.gsg-subscription__status-details {
	padding-top: var(--gsg-spacing-lg);
	border-top: 1px solid var(--gsg-border-color);
}

.gsg-subscription__status-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 12px 0;
	border-bottom: 1px solid var(--gsg-border-color);
}

.gsg-subscription__status-row:last-of-type {
	border-bottom: none;
}

.gsg-subscription__status-label {
	font-size: 14px;
	font-weight: 600;
	color: var(--gsg-primary-gray);
}

.gsg-subscription__status-value {
	font-size: 16px;
	font-weight: 600;
	color: var(--gsg-primary-dark);
}

.gsg-subscription__status-value--active {
	color: #10B981;
	display: flex;
	align-items: center;
	gap: 6px;
}

.gsg-subscription__status-value--warning {
	color: #F59E0B;
	display: flex;
	align-items: center;
	gap: 6px;
}

.gsg-subscription__status-value--error {
	color: #EF4444;
	display: flex;
	align-items: center;
	gap: 6px;
}

/* Payment failure alert banner */
.gsg-subscription__alert {
	display: flex;
	gap: 16px;
	padding: 20px;
	border-radius: 8px;
	margin-bottom: 24px;
	border: 1px solid;
	max-width: 100%;
	overflow-x: hidden;
	word-wrap: break-word;
}

.gsg-subscription__alert--error {
	background-color: #FEF2F2;
	border-color: #FEE2E2;
	color: #991B1B;
}

.gsg-subscription__alert--success {
	background-color: #F0FDF4;
	border-color: #D1FAE5;
	color: #065F46;
}

.gsg-subscription__alert-icon {
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	color: #DC2626;
}

.gsg-subscription__alert--success .gsg-subscription__alert-icon {
	color: #10B981;
}

.gsg-subscription__alert--success .gsg-subscription__alert-title {
	color: #065F46;
}

.gsg-subscription__alert--success .gsg-subscription__alert-message {
	color: #047857;
}

.gsg-subscription__alert-content {
	flex: 1;
}

.gsg-subscription__alert-title {
	margin: 0 0 8px 0;
	font-size: 16px;
	font-weight: 600;
	color: #991B1B;
}

.gsg-subscription__alert-message {
	margin: 0 0 16px 0;
	font-size: 14px;
	line-height: 1.5;
	color: #7F1D1D;
}

.gsg-subscription__alert-message strong {
	font-weight: 600;
}

.gsg-button--danger {
	background-color: #DC2626;
	color: #FFFFFF;
	border: none;
}

.gsg-button--danger:hover {
	background-color: #B91C1C;
}

.gsg-subscription__status-actions {
	display: flex;
	gap: var(--gsg-spacing-sm);
	margin-top: var(--gsg-spacing-md);
	flex-wrap: wrap;
}

/* Plans Section */
.gsg-subscription__plans {
	margin-bottom: var(--gsg-spacing-xl);
}

.gsg-subscription__plans-title {
	font-size: 28px;
	font-weight: 700;
	color: var(--gsg-primary-dark);
	margin-bottom: var(--gsg-spacing-sm);
	text-align: center;
}

.gsg-subscription__plans-description {
	font-size: 16px;
	color: var(--gsg-primary-gray);
	text-align: center;
	margin-bottom: var(--gsg-spacing-xl);
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
}

.gsg-subscription__plans-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--gsg-spacing-lg);
	max-width: 1100px;
	margin: 0 auto;
}

/* Plan Card */
.gsg-subscription__plan-card {
	background: var(--gsg-white);
	border: 2px solid var(--gsg-border-color);
	border-radius: var(--gsg-radius-md);
	padding: var(--gsg-spacing-lg);
	position: relative;
	transition: all 0.3s ease;
	display: flex;
	flex-direction: column;
	max-width: 100%;
	overflow-x: hidden;
	word-wrap: break-word;
}

.gsg-subscription__plan-card:hover {
	border-color: var(--gsg-accent-teal);
	box-shadow: 0 8px 16px rgba(43, 193, 191, 0.15);
	transform: translateY(-4px);
}

.gsg-subscription__plan-card--featured {
	border-color: var(--gsg-accent-teal);
	border-width: 3px;
}

.gsg-subscription__plan-card--current {
	border-color: var(--gsg-accent-orange);
	background: linear-gradient(to bottom, #FFF9F5 0%, var(--gsg-white) 100%);
}

.gsg-subscription__plan-badge {
	display: block;
	margin: 12px auto 16px;
	background: var(--gsg-primary-gray);
	color: var(--gsg-white);
	padding: 6px 16px;
	border-radius: 16px;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	text-align: center;
	max-width: fit-content;
}

.gsg-subscription__plan-badge--popular {
	background: var(--gsg-accent-teal);
}

.gsg-subscription__plan-badge--best {
	background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
	color: var(--gsg-primary-dark);
}

.gsg-subscription__plan-header {
	text-align: center;
	margin-bottom: var(--gsg-spacing-lg);
	padding-bottom: var(--gsg-spacing-lg);
	border-bottom: 1px solid var(--gsg-border-color);
}

.gsg-subscription__plan-name {
	font-size: 24px;
	font-weight: 700;
	color: var(--gsg-primary-dark);
	margin: 12px 0 var(--gsg-spacing-sm) 0;
}

.gsg-subscription__plan-price {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 4px;
	margin-bottom: var(--gsg-spacing-sm);
}

.gsg-subscription__plan-price-amount {
	font-size: 48px;
	font-weight: 800;
	color: var(--gsg-primary-dark);
	line-height: 1;
}

.gsg-subscription__plan-price-period {
	font-size: 16px;
	font-weight: 600;
	color: var(--gsg-primary-gray);
}

.gsg-subscription__plan-tagline {
	font-size: 14px;
	color: var(--gsg-primary-gray);
	margin: 0;
}

/* Plan Features */
.gsg-subscription__plan-features {
	flex: 1;
	margin-bottom: var(--gsg-spacing-lg);
}

.gsg-subscription__features-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.gsg-subscription__feature-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 10px 0;
	font-size: 14px;
	color: var(--gsg-primary-dark);
	line-height: 1.5;
}

.gsg-subscription__feature-icon {
	color: var(--gsg-accent-teal);
	font-size: 16px;
	margin-top: 2px;
	flex-shrink: 0;
}

/* Plan Action */
.gsg-subscription__plan-action {
	margin-top: auto;
}

/* Trust Badges */
.gsg-subscription__trust {
	background: var(--gsg-background-light);
	border-radius: var(--gsg-radius-md);
	padding: var(--gsg-spacing-lg);
	text-align: center;
}

.gsg-subscription__trust-items {
	display: flex;
	justify-content: center;
	gap: var(--gsg-spacing-xl);
	flex-wrap: wrap;
}

.gsg-subscription__trust-item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	font-weight: 600;
	color: var(--gsg-primary-gray);
}

.gsg-subscription__trust-item i {
	font-size: 20px;
	color: var(--gsg-accent-teal);
}

/* Responsive */
@media (max-width: 768px) {
	.gsg-dashboard__subscription {
		padding: var(--gsg-spacing-md) var(--gsg-spacing-xs);
		overflow-x: hidden;
	}

	.gsg-subscription__plans-grid {
		grid-template-columns: 1fr;
		gap: var(--gsg-spacing-md);
	}

	.gsg-subscription__status-header {
		flex-direction: column;
		text-align: center;
	}

	.gsg-subscription__status-tier {
		justify-content: center;
		flex-direction: column;
		text-align: center;
		gap: 8px;
	}

	.gsg-subscription__status-actions {
		flex-direction: column;
		gap: 12px;
	}

	.gsg-subscription__status-actions .gsg-button {
		width: 100%;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		font-size: 14px;
		padding: 10px 16px;
	}

	.gsg-subscription__status-card {
		padding: var(--gsg-spacing-md) var(--gsg-spacing-sm);
		overflow-x: hidden;
	}

	.gsg-subscription__plan-card {
		padding: var(--gsg-spacing-sm) var(--gsg-spacing-sm) var(--gsg-spacing-md);
		overflow-x: hidden;
	}

	.gsg-subscription__plan-header {
		padding-top: 0;
		margin-top: 0;
	}

	.gsg-subscription__trust-items {
		flex-direction: column;
		gap: var(--gsg-spacing-md);
	}

	.gsg-subscription__plan-price-amount {
		font-size: 36px;
	}

	.gsg-subscription__tier-badge {
		font-size: 16px;
		padding: 6px 12px;
	}

	.gsg-subscription__tier-price {
		font-size: 16px;
	}

	.gsg-subscription__status-row {
		flex-wrap: wrap;
		gap: 8px;
	}

	.gsg-subscription__status-label,
	.gsg-subscription__status-value {
		font-size: 14px;
	}

	.gsg-subscription__alert {
		padding: 14px 12px;
		gap: 10px;
	}

	.gsg-subscription__alert-icon {
		font-size: 20px;
	}

	.gsg-subscription__alert-title {
		font-size: 14px;
	}

	.gsg-subscription__alert-message {
		font-size: 13px;
	}

	.gsg-subscription__plans-title {
		font-size: 24px;
	}

	.gsg-subscription__plans-description {
		font-size: 14px;
		padding: 0 var(--gsg-spacing-sm);
	}

	.gsg-subscription__plan-name {
		font-size: 20px;
		word-wrap: break-word;
	}

	.gsg-subscription__plan-tagline {
		font-size: 13px;
		word-wrap: break-word;
	}

	.gsg-subscription__feature-item {
		font-size: 13px;
	}

	.gsg-subscription__status-icon {
		font-size: 36px;
	}

	.gsg-subscription__status-title {
		font-size: 14px;
	}

	.gsg-subscription__plan-badge {
		position: relative;
		top: 0;
		right: auto;
		left: auto;
		display: block;
		margin: 0 auto 12px;
		text-align: center;
		padding: 6px 12px;
		font-size: 11px;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		max-width: 100%;
		border-radius: 16px;
	}

	.gsg-subscription__plan-action .gsg-button {
		font-size: 14px;
		padding: 12px 12px;
		white-space: normal;
		line-height: 1.4;
		min-height: 44px;
		word-wrap: break-word;
		overflow-wrap: break-word;
		hyphens: auto;
	}

	.gsg-subscription__plan-action .gsg-button i {
		font-size: 14px;
		vertical-align: middle;
	}

	.gsg-button--full {
		width: 100%;
		text-align: center;
	}
}

/* ===== FAQ Accordion ===== */
.gsg-single-venue .gsg-venue-faqs,
.gsg-venue-faqs {
	margin-top: var(--gsg-spacing-xl) !important;
}

.gsg-single-venue .gsg-venue-faqs h2,
.gsg-venue-faqs h2 {
	font-size: 1.75rem !important;
	font-weight: 700 !important;
	color: var(--gsg-white, #fff) !important;
	margin-bottom: var(--gsg-spacing-md) !important;
	border-bottom: 2px solid var(--gsg-cyan-bright, #3ECFC4) !important;
	padding-bottom: var(--gsg-spacing-sm) !important;
}

.gsg-single-venue .gsg-faq-accordion,
.gsg-faq-accordion {
	display: flex !important;
	flex-direction: column !important;
	gap: var(--gsg-spacing-sm) !important;
}

.gsg-single-venue .gsg-faq-item,
.gsg-faq-accordion .gsg-faq-item {
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
	border-radius: var(--gsg-radius-xs, 2px) !important;
	overflow: hidden !important;
	background: var(--gsg-slate-dark, #4A5663) !important;
	background-color: var(--gsg-slate-dark, #4A5663) !important;
	transition: all 0.3s ease !important;
	margin-bottom: 12px !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
}

.gsg-single-venue .gsg-faq-item:hover,
.gsg-faq-accordion .gsg-faq-item:hover {
	border-color: var(--gsg-cyan-bright, #3ECFC4) !important;
	box-shadow: 0 4px 12px rgba(62, 207, 196, 0.3) !important;
}

.gsg-single-venue .gsg-faq-question,
.gsg-faq-accordion .gsg-faq-question,
button.gsg-faq-question {
	width: 100% !important;
	padding: var(--gsg-spacing-md) !important;
	background: var(--gsg-slate-dark, #4A5663) !important;
	background-color: var(--gsg-slate-dark, #4A5663) !important;
	background-image: none !important;
	border: none !important;
	border-width: 0 !important;
	text-align: left !important;
	cursor: pointer !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: var(--gsg-spacing-md) !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	color: var(--gsg-white, #fff) !important;
	transition: background-color 0.2s ease !important;
	box-shadow: none !important;
	outline: none !important;
}

.gsg-single-venue .gsg-faq-question:hover,
.gsg-faq-accordion .gsg-faq-question:hover,
button.gsg-faq-question:hover {
	background: var(--gsg-slate-medium, #53616D) !important;
	background-color: var(--gsg-slate-medium, #53616D) !important;
	color: var(--gsg-white, #fff) !important;
	transform: none !important;
}

.gsg-single-venue .gsg-faq-question:focus,
.gsg-faq-accordion .gsg-faq-question:focus,
button.gsg-faq-question:focus {
	outline: 2px solid var(--gsg-cyan-bright, #3ECFC4) !important;
	outline-offset: 2px !important;
}

.gsg-single-venue .gsg-faq-question span,
.gsg-faq-accordion .gsg-faq-question span {
	flex: 1 !important;
	color: var(--gsg-white, #fff) !important;
}

.gsg-single-venue .gsg-faq-icon,
.gsg-faq-accordion .gsg-faq-icon,
.gsg-faq-question .gsg-faq-icon {
	color: var(--gsg-cyan-bright, #3ECFC4) !important;
	font-size: 0.875rem !important;
	transition: transform 0.3s ease !important;
	flex-shrink: 0 !important;
}

.gsg-single-venue .gsg-faq-question[aria-expanded="true"] .gsg-faq-icon,
.gsg-faq-accordion .gsg-faq-question[aria-expanded="true"] .gsg-faq-icon {
	transform: rotate(180deg) !important;
}

.gsg-single-venue .gsg-faq-answer,
.gsg-faq-accordion .gsg-faq-answer {
	max-height: 0 !important;
	overflow: hidden !important;
	transition: max-height 0.4s ease, padding 0.4s ease !important;
	background: var(--gsg-slate-medium, #53616D) !important;
}

.gsg-single-venue .gsg-faq-answer.gsg-faq-answer--open,
.gsg-faq-accordion .gsg-faq-answer.gsg-faq-answer--open {
	max-height: 1000px !important;
	padding: var(--gsg-spacing-md) !important;
	padding-top: var(--gsg-spacing-sm) !important;
}

.gsg-single-venue .gsg-faq-answer-content,
.gsg-faq-accordion .gsg-faq-answer-content {
	color: var(--gsg-white, #fff) !important;
	line-height: 1.6 !important;
	margin-top: 0 !important;
	padding-top: 0 !important;
}

.gsg-single-venue .gsg-faq-answer-content p,
.gsg-faq-accordion .gsg-faq-answer-content p {
	color: var(--gsg-white, #fff) !important;
}

.gsg-single-venue .gsg-faq-answer-content p:last-child,
.gsg-faq-accordion .gsg-faq-answer-content p:last-child {
	margin-bottom: 0 !important;
}

/* ========================================
   PRICING SECTION - Dark Theme
   ======================================== */

.gsg-single-venue .gsg-venue-pricing,
.gsg-venue-pricing {
	margin-top: var(--gsg-spacing-xl) !important;
}

.gsg-single-venue .gsg-venue-pricing h2,
.gsg-venue-pricing h2 {
	font-size: 1.75rem !important;
	font-weight: 700 !important;
	color: var(--gsg-white, #fff) !important;
	margin-bottom: var(--gsg-spacing-md) !important;
	border-bottom: 2px solid var(--gsg-cyan-bright, #3ECFC4) !important;
	padding-bottom: var(--gsg-spacing-sm) !important;
}

.gsg-price-section {
	background: var(--gsg-slate-dark, #4A5663) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
	border-radius: var(--gsg-radius-xs, 2px) !important;
	padding: var(--gsg-spacing-md) !important;
	margin-bottom: var(--gsg-spacing-md) !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
	transition: all 0.3s ease !important;
}

.gsg-price-section:hover {
	border-color: var(--gsg-cyan-bright, #3ECFC4) !important;
	box-shadow: 0 4px 12px rgba(62, 207, 196, 0.3) !important;
}

.gsg-price-section-title {
	font-size: 1.25rem !important;
	font-weight: 600 !important;
	color: var(--gsg-cyan-bright, #3ECFC4) !important;
	margin: 0 0 var(--gsg-spacing-md) 0 !important;
	padding-bottom: var(--gsg-spacing-sm) !important;
	border-bottom: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-price-table {
	width: 100% !important;
	border-collapse: collapse !important;
}

.gsg-price-row {
	border-bottom: 1px solid var(--gsg-slate-light, #6B7785) !important;
}

.gsg-price-row:last-child {
	border-bottom: none !important;
}

.gsg-price-label {
	padding: var(--gsg-spacing-sm) var(--gsg-spacing-md) !important;
	font-weight: 500 !important;
	color: var(--gsg-white, #fff) !important;
	width: 40% !important;
}

.gsg-price-amount {
	padding: var(--gsg-spacing-sm) var(--gsg-spacing-md) !important;
	font-weight: 700 !important;
	color: var(--gsg-orange-bright, #FF6B35) !important;
	text-align: right !important;
	white-space: nowrap !important;
	width: 20% !important;
}

.gsg-price-notes {
	padding: var(--gsg-spacing-sm) 0 var(--gsg-spacing-sm) var(--gsg-spacing-md) !important;
	color: var(--gsg-white, #fff) !important;
	font-size: 0.875rem !important;
	font-style: italic !important;
	width: 40% !important;
	opacity: 0.8 !important;
}

/* Responsive pricing table */
@media (max-width: 768px) {
	.gsg-price-table {
		display: block !important;
	}

	.gsg-price-row {
		display: grid !important;
		grid-template-columns: 1fr auto !important;
		gap: var(--gsg-spacing-xs) !important;
		padding: var(--gsg-spacing-sm) 0 !important;
	}

	.gsg-price-label {
		grid-column: 1 !important;
		padding: 0 !important;
		width: auto !important;
	}

	.gsg-price-amount {
		grid-column: 2 !important;
		grid-row: 1 !important;
		padding: 0 !important;
		width: auto !important;
	}

	/* Only show notes column on mobile if section has notes */
	.gsg-price-section--has-notes .gsg-price-notes {
		grid-column: 1 / -1 !important;
		padding: var(--gsg-spacing-xs) 0 0 0 !important;
		width: auto !important;
		font-size: 0.8125rem !important;
	}
}

/* Dashboard FAQ section title */
.gsg-dashboard__section-title {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	margin-bottom: 16px !important;
}

.gsg-dashboard__section-title .gsg-badge {
	margin-left: 0 !important;
	vertical-align: middle !important;
}

/* Dashboard FAQ controls */
.gsg-faq-controls {
	margin-top: 24px !important;
	padding-top: 24px !important;
	border-top: 1px solid #E1E4E8 !important;
	display: flex !important;
	gap: 12px !important;
	align-items: center !important;
}

/* ========================================
   DASHBOARD PRICE LIST
   ======================================== */

.gsg-dashboard-price-section {
	background: #fff;
	border: 2px solid #E1E4E8;
	border-radius: 8px;
	padding: 1rem;
	margin-bottom: 1rem;
}

.gsg-dashboard-price-section-header {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid #E1E4E8;
}

.gsg-section-drag-handle {
	cursor: move;
	color: #8c8f94;
	font-size: 20px;
}

.gsg-section-drag-handle:hover {
	color: var(--gsg-accent-teal);
}

.gsg-section-title {
	flex: 1;
	font-size: 1rem;
	font-weight: 600;
}

.gsg-dashboard-remove-section {
	flex-shrink: 0;
}

.gsg-dashboard-price-items-container {
	margin-bottom: 1rem;
	min-height: 20px;
}

.gsg-dashboard-price-item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.75rem;
	background: #F6F7F7;
	border: 1px solid #dcdcde;
	border-radius: 4px;
	margin-bottom: 0.5rem;
}

.gsg-item-drag-handle {
	cursor: move;
	color: #8c8f94;
	font-size: 18px;
	flex-shrink: 0;
}

.gsg-item-drag-handle:hover {
	color: var(--gsg-accent-teal);
}

.gsg-dashboard-price-item-fields {
	flex: 1;
	display: grid;
	grid-template-columns: 1fr 150px 1fr;
	gap: 0.75rem;
}

.gsg-dashboard-price-item .gsg-item-label,
.gsg-dashboard-price-item .gsg-item-price,
.gsg-dashboard-price-item .gsg-item-notes {
	margin: 0;
}

.gsg-dashboard-price-item .gsg-item-price {
	max-width: 150px;
}

.gsg-dashboard-remove-item {
	flex-shrink: 0;
}

.gsg-dashboard-add-item {
	margin-top: 0.5rem;
}

.gsg-dashboard-price-list-actions {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid #E1E4E8;
	display: flex;
	gap: 0.75rem;
	align-items: center;
}

.gsg-dashboard-price-list-actions .gsg-spinner {
	margin: 0;
}

.gsg-dashboard-price-list-actions .gsg-save-message {
	font-size: 0.875rem;
	font-weight: 600;
}

/* Sortable placeholders */
.gsg-dashboard-price-section-placeholder {
	background: #f0f6fc;
	border: 2px dashed var(--gsg-accent-teal);
	border-radius: 8px;
	height: 80px;
	margin-bottom: 1rem;
}

.gsg-dashboard-price-item-placeholder {
	background: #f0f6fc;
	border: 2px dashed var(--gsg-accent-teal);
	border-radius: 4px;
	height: 50px;
	margin-bottom: 0.5rem;
}

/* Responsive */
@media (max-width: 768px) {
	.gsg-dashboard-price-item {
		flex-direction: column;
		align-items: stretch;
		gap: 0.5rem;
	}

	.gsg-item-drag-handle {
		display: none;
	}

	.gsg-dashboard-price-item-fields {
		grid-template-columns: 1fr;
		gap: 0.5rem;
	}

	.gsg-dashboard-price-item .gsg-item-price {
		max-width: none;
	}

	.gsg-dashboard-remove-item {
		align-self: flex-end;
	}

	.gsg-dashboard-price-section-header {
		flex-wrap: wrap;
	}

	.gsg-section-title {
		flex-basis: 100%;
		order: 1;
	}

	.gsg-section-drag-handle {
		order: 2;
	}

	.gsg-dashboard-remove-section {
		order: 3;
		width: 100%;
	}

	.gsg-dashboard-price-list-actions {
		flex-direction: column;
		align-items: stretch;
	}
}

@media (max-width: 768px) {
	.gsg-venue-faqs h2 {
		font-size: 1.5rem;
	}

	.gsg-faq-question {
		font-size: 0.9375rem;
		padding: var(--gsg-spacing-sm);
	}

	.gsg-faq-answer.gsg-faq-answer--open {
		padding: 0 var(--gsg-spacing-sm) var(--gsg-spacing-sm);
	}
}

/* ===== Sticky Quick Navigation - Dark Theme ===== */
.gsg-venue-quick-nav {
	position: sticky;
	top: 131px; /* Offset for Elementor sticky header (131px height) */
	z-index: 999; /* Higher z-index to prevent content showing through */
	background: var(--gsg-slate-medium, #53616D);
	border-bottom: 2px solid var(--gsg-slate-light, #6B7785);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
	margin-bottom: var(--gsg-spacing-lg);
	transition: transform 0.3s ease-in-out;
}

.gsg-venue-quick-nav.gsg-venue-quick-nav--hidden {
	transform: translateY(-237px); /* Move up past Elementor header (163px offset + 74px nav height) */
}

.gsg-venue-quick-nav__container {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none; /* Firefox */
}

.gsg-venue-quick-nav__container::-webkit-scrollbar {
	display: none; /* Chrome, Safari */
}

.gsg-venue-quick-nav__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.25rem;
	padding: 0.75rem 1rem;
	text-decoration: none;
	color: var(--gsg-white, #fff);
	font-size: 0.875rem;
	font-weight: 500;
	white-space: nowrap;
	transition: all 0.2s ease;
	border-bottom: 3px solid transparent;
	min-width: fit-content;
	opacity: 0.8;
}

.gsg-venue-quick-nav__item i {
	font-size: 1.25rem;
	transition: transform 0.2s ease;
}

.gsg-venue-quick-nav__item:hover {
	color: var(--gsg-cyan-bright, #3ECFC4);
	background: rgba(62, 207, 196, 0.1);
	opacity: 1;
}

.gsg-venue-quick-nav__item:hover i {
	transform: scale(1.1);
}

.gsg-venue-quick-nav__item.gsg-venue-quick-nav__item--active {
	color: var(--gsg-cyan-bright, #3ECFC4);
	border-bottom-color: var(--gsg-cyan-bright, #3ECFC4);
	background: rgba(62, 207, 196, 0.15);
	opacity: 1;
}

/* Mobile adjustments */
@media (max-width: 768px) {
	.gsg-venue-quick-nav {
		top: 121px; /* Offset for mobile Elementor header (121px height) */
		margin-bottom: var(--gsg-spacing-md);
	}

	.gsg-venue-quick-nav__container {
		justify-content: flex-start;
		padding: 0 0.5rem;
	}

	.gsg-venue-quick-nav__item {
		padding: 0.625rem 0.75rem;
		font-size: 0.8125rem;
		flex: 0 0 auto;
	}

	.gsg-venue-quick-nav__item i {
		font-size: 1.125rem;
	}

	.gsg-venue-quick-nav__item span {
		font-size: 0.75rem;
	}
}

/* Smooth scroll behavior */
html {
	scroll-behavior: smooth;
}

/* Scroll padding to account for sticky header + quick nav */
html {
	scroll-padding-top: 210px; /* 131px header + ~74px quick nav + padding */
}

@media (max-width: 768px) {
	html {
		scroll-padding-top: 191px; /* 121px mobile header + ~65px quick nav + padding */
	}
}

/* ===========================================================================
   Scheduled Closure Banners - Dark Theme
   ========================================================================== */

.gsg-closure-banner {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 1.5rem;
	margin: 0 0 var(--gsg-spacing-lg);
	border-radius: var(--gsg-radius-xs, 2px);
	border-left: 4px solid;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
	/* Span full width across grid columns */
	grid-column: 1 / -1;
}

/* Active closure banner (red/danger theme) - Dark */
.gsg-closure-banner--active {
	background: var(--gsg-slate-medium, #53616D);
	border-left-color: #dc2626;
	border: 1px solid var(--gsg-slate-light, #6B7785);
	border-left: 4px solid #dc2626;
	color: var(--gsg-white, #fff);
}

.gsg-closure-banner--active .gsg-closure-banner__icon {
	color: #dc2626;
}

/* Upcoming closure banner (yellow/warning theme) - Dark */
.gsg-closure-banner--upcoming {
	background: var(--gsg-slate-medium, #53616D);
	border-left-color: #eab308;
	border: 1px solid var(--gsg-slate-light, #6B7785);
	border-left: 4px solid #eab308;
	color: var(--gsg-white, #fff);
}

.gsg-closure-banner--upcoming .gsg-closure-banner__icon {
	color: #eab308;
}

.gsg-closure-banner__icon {
	flex-shrink: 0;
	font-size: 2rem;
	line-height: 1;
}

.gsg-closure-banner__content {
	flex: 1;
}

.gsg-closure-banner__title {
	margin: 0 0 0.5rem;
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--gsg-white, #fff);
}

.gsg-closure-banner__reason {
	font-weight: 400;
	font-size: 1rem;
	opacity: 0.9;
	color: var(--gsg-white, #fff);
}

.gsg-closure-banner__dates {
	margin: 0 0 0.5rem;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--gsg-white, #fff);
}

.gsg-closure-banner__dates strong {
	font-weight: 600;
}

.gsg-closure-banner__message {
	margin: 0.75rem 0 0;
	padding: 0.75rem;
	background: rgba(0, 0, 0, 0.2);
	border-radius: var(--gsg-radius-xs, 2px);
	font-style: italic;
	font-size: 0.9375rem;
	color: var(--gsg-white, #fff);
	border: 1px solid var(--gsg-slate-light, #6B7785);
}

/* Mobile responsive */
@media (max-width: 768px) {
	.gsg-closure-banner {
		flex-direction: column;
		gap: 0.75rem;
		padding: 1rem;
	}

	.gsg-closure-banner__icon {
		font-size: 1.5rem;
	}

	.gsg-closure-banner__title {
		font-size: 1.125rem;
	}

	.gsg-closure-banner__dates {
		font-size: 0.9375rem;
	}

	.gsg-closure-banner__message {
		font-size: 0.875rem;
	}
}

/* Dashboard Closure Management Forms */
.gsg-closures-list .gsg-closure-item {
	background: var(--gsg-white);
	border: 1px solid var(--gsg-border-color);
	border-radius: var(--gsg-border-radius);
	padding: 1.5rem;
	margin-bottom: 1rem;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.gsg-closures-list .gsg-closure-content {
	margin-bottom: 1rem;
}

.gsg-closures-list .gsg-closure-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-bottom: 1rem;
}

.gsg-closures-list .gsg-closure-row:last-child {
	margin-bottom: 0;
}

.gsg-closures-list .gsg-closure-field label {
	display: block;
	margin-bottom: 0.5rem;
	font-weight: 600;
	color: var(--gsg-text-dark);
	font-size: 0.9375rem;
}

.gsg-closures-list .gsg-closure-field input[type="datetime-local"],
.gsg-closures-list .gsg-closure-field select,
.gsg-closures-list .gsg-closure-field input[type="text"] {
	width: 100%;
	padding: 0.625rem 0.875rem;
	border: 1px solid var(--gsg-border-color);
	border-radius: var(--gsg-border-radius);
	font-size: 0.9375rem;
	line-height: 1.5;
	transition: border-color 0.2s ease;
}

.gsg-closures-list .gsg-closure-field input:focus,
.gsg-closures-list .gsg-closure-field select:focus {
	border-color: var(--gsg-accent-teal);
	outline: none;
	box-shadow: 0 0 0 3px rgba(43, 193, 191, 0.1);
}

.gsg-closures-list .gsg-closure-actions {
	display: flex;
	gap: 0.75rem;
	padding-top: 1rem;
	border-top: 1px solid var(--gsg-border-color);
}

.gsg-closures-list .gsg-closure-actions .gsg-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 38px;
	padding: 0.5rem 1rem;
}

.gsg-closures-list .gsg-closure-actions i {
	font-size: 1rem;
}

.gsg-closure-controls {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--gsg-border-color);
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}

.gsg-closure-controls .gsg-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 38px;
	padding: 0.5rem 1.25rem;
}

.gsg-closure-controls i {
	font-size: 1rem;
}

.gsg-closure-controls .gsg-spinner {
	width: 20px;
	height: 20px;
	margin: 0;
}

.gsg-closure-message {
	font-weight: 600;
	font-size: 0.9375rem;
}

/* Past closures in dashboard */
.gsg-past-closures {
	margin-top: 2rem;
}

.gsg-past-closures summary {
	cursor: pointer;
	padding: 0.875rem 1rem;
	background: var(--gsg-background-light);
	border: 1px solid var(--gsg-border-color);
	border-radius: var(--gsg-border-radius);
	user-select: none;
	font-weight: 600;
	transition: background-color 0.2s ease;
}

.gsg-past-closures summary:hover {
	background: var(--gsg-border-color);
}

.gsg-past-closures-list {
	margin-top: 1rem;
}

.gsg-closure-past {
	background: var(--gsg-background-light);
	opacity: 0.8;
	padding: 0.875rem;
	margin-bottom: 0.625rem;
	border-radius: var(--gsg-border-radius);
}

.gsg-closure-summary {
	display: flex;
	flex-wrap: wrap;
	gap: 0.875rem;
	align-items: center;
	font-size: 0.875rem;
}

.gsg-closure-dates {
	flex: 1;
	min-width: 250px;
}

.gsg-closure-reason-badge,
.gsg-closure-status-badge {
	padding: 0.25rem 0.625rem;
	border-radius: 3px;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
}

.gsg-closure-reason-badge {
	background: #e0f2fe;
	color: #0369a1;
}

.gsg-closure-status-badge.gsg-closure-cancelled {
	background: #fee2e2;
	color: #991b1b;
}

/* Responsive closure forms */
@media (max-width: 768px) {
	.gsg-closures-list .gsg-closure-row {
		grid-template-columns: 1fr;
		gap: 0.875rem;
	}

	.gsg-closures-list .gsg-closure-actions {
		flex-direction: column;
	}

	.gsg-closures-list .gsg-closure-actions .gsg-button {
		width: 100%;
	}

	.gsg-closure-controls {
		flex-direction: column;
		align-items: stretch;
	}

	.gsg-closure-controls .gsg-button {
		width: 100%;
	}

	/* Remove list indentation in dashboard messages on mobile */
	.gsg-dashboard-message ul {
		margin-left: 0 !important;
		padding-left: 1rem;
	}

	/* Stack dashboard header on mobile */
	.gsg-dashboard__header {
		flex-direction: column;
		align-items: flex-start;
	}

	.gsg-dashboard a.gsg-button--logout,
	a.gsg-button.gsg-button--logout {
		width: 100%;
		justify-content: center;
	}
}

/* ===== EVENTS SECTION - Dark Theme ===== */
.gsg-venue-events {
	margin: var(--gsg-spacing-xl) 0;
	padding: var(--gsg-spacing-xl) 0;
	border-top: 1px solid var(--gsg-slate-light, #6B7785);
}

.gsg-venue-events .gsg-section-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: var(--gsg-spacing-lg);
	flex-wrap: wrap;
	gap: var(--gsg-spacing-sm);
}

.gsg-venue-events .gsg-section-header h2 {
	margin: 0;
	font-size: 28px;
	font-weight: 700;
	color: var(--gsg-white, #fff);
	border-bottom: 2px solid var(--gsg-cyan-bright, #3ECFC4);
	padding-bottom: var(--gsg-spacing-sm);
}

.gsg-venue-events button.gsg-btn-view-all-events,
button.gsg-btn-view-all-events {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	padding: 10px 20px !important;
	background: var(--gsg-orange-bright, #FF6B35) !important;
	color: var(--gsg-white, #fff) !important;
	border: none !important;
	border-radius: var(--gsg-radius-xs, 2px) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	transition: all 0.3s ease !important;
	text-decoration: none !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
}

.gsg-venue-events button.gsg-btn-view-all-events:hover,
button.gsg-btn-view-all-events:hover {
	background: var(--gsg-cyan-bright, #3ECFC4) !important;
	color: var(--gsg-primary-dark, #121316) !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 4px 12px rgba(255, 107, 53, 0.4) !important;
}

.gsg-events-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--gsg-spacing-md);
}

.gsg-event-card {
	background: var(--gsg-slate-medium, #53616D);
	border-radius: 2px;
	overflow: visible;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
	cursor: pointer;
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	border: 2px solid transparent;
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.gsg-event-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4);
	border-color: var(--gsg-cyan-bright, #3ECFC4);
}

.gsg-event-card__image {
	position: relative;
	width: calc(100% - 36px);
	margin: 18px;
	padding-bottom: calc((100% - 36px) / 1.5); /* 3:2 aspect ratio (340x226) */
	overflow: hidden;
	background: var(--gsg-background-light, #f8f8f8);
	border-radius: var(--gsg-radius-xs, 2px);
}

.gsg-event-card__image img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--gsg-radius-xs, 2px);
}

.gsg-event-card__category {
	position: absolute;
	top: 12px;
	left: 12px;
	background: var(--gsg-teal-bright, #35CCBD);
	color: var(--gsg-white, #fff);
	padding: 5px 10px;
	border-radius: 2px;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.gsg-event-card__content {
	padding: 18px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}

.gsg-event-card__title {
	margin: 0 0 10px 0;
	padding-bottom: 10px;
	font-size: 20px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: #FFFFFF;
	line-height: 1.3;
	border-bottom: 1px solid var(--gsg-white, #fff);
}

.gsg-event-card__info {
	background: #95A6B6B0;
	border: 1px solid var(--gsg-border-light, #95a6b6);
	border-radius: var(--gsg-radius-xs, 2px);
	padding: 12px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.gsg-event-card__venue {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	color: var(--gsg-white, #fff);
	font-weight: 500;
}

.gsg-event-card__venue i {
	color: var(--gsg-white, #fff);
	background: var(--gsg-orange-bright);
	font-size: 11px;
	width: 24px;
	height: 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	flex-shrink: 0;
	text-align: center;
	line-height: 1;
}

.gsg-event-card__city {
	color: var(--gsg-white, #fff);
}

.gsg-event-card__location {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	color: var(--gsg-white, #fff);
	font-weight: 500;
}

.gsg-event-card__location i {
	color: var(--gsg-white, #fff);
	background: var(--gsg-orange-bright);
	font-size: 11px;
	width: 24px;
	height: 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	flex-shrink: 0;
	text-align: center;
	line-height: 1;
}

.gsg-event-card__meta {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13px;
	color: var(--gsg-white, #fff);
}

.gsg-event-card__date,
.gsg-event-card__time {
	display: flex;
	align-items: center;
	gap: 5px;
}

.gsg-event-card__date i,
.gsg-event-card__time i {
	color: var(--gsg-white, #fff);
	background: var(--gsg-orange-bright);
	font-size: 11px;
	width: 24px;
	height: 24px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	flex-shrink: 0;
	text-align: center;
	line-height: 1;
}

.gsg-event-card__description {
	color: var(--gsg-white, #fff);
	font-size: 14px;
	line-height: 1.6;
}

.gsg-event-card__button {
	margin-top: auto;
	display: flex;
	justify-content: flex-start;
}

.gsg-event-card__cta {
	background-color: #35CCBD;
	color: var(--gsg-white, #fff);
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	border-radius: 2px 2px 2px 2px;
	padding: 11px 15px 10px 15px;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	cursor: pointer;
	transition: all 0.3s ease;
	text-decoration: none;
}

.gsg-event-card__cta i {
	font-size: 11px;
}

.gsg-event-card__cta i:last-child {
	margin-left: -4px;
}

.gsg-event-card:hover .gsg-event-card__cta {
	background-color: var(--gsg-cyan-bright, #3ECFC4);
}

/* Keep old button class for backwards compatibility */
.gsg-event-card__ticket-btn {
	background-color: #35CCBD;
	color: var(--gsg-white, #fff);
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	border-radius: 2px 2px 2px 2px;
	padding: 11px 15px 10px 15px;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	cursor: pointer;
	transition: all 0.3s ease;
	text-decoration: none;
}

.gsg-event-card__ticket-btn:hover {
	background-color: var(--gsg-cyan-bright, #3ECFC4);
}

/* Modal Styles for Events - Dark Theme */
.gsg-modal {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 999999;
	align-items: center;
	justify-content: center;
}

.gsg-modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.85);
	z-index: 999998;
	backdrop-filter: blur(4px);
}

.gsg-modal-content {
	position: relative;
	background: var(--gsg-slate-dark, #4A5663);
	border-radius: var(--gsg-radius-xs, 2px);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
	max-width: 600px;
	width: 90%;
	max-height: 85vh;
	z-index: 999999;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--gsg-slate-light, #6B7785);
}

.gsg-modal-header {
	padding: var(--gsg-spacing-lg);
	border-bottom: 1px solid var(--gsg-slate-light, #6B7785);
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-shrink: 0;
	background: var(--gsg-slate-medium, #53616D);
}

.gsg-modal-header h2 {
	margin: 0;
	font-size: 24px;
	font-weight: 700;
	color: var(--gsg-white, #fff);
}

.gsg-modal-close {
	background: transparent;
	border: none;
	color: var(--gsg-white, #fff);
	cursor: pointer;
	padding: 8px;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: all 0.3s ease;
	font-size: 20px;
}

.gsg-modal-close:hover {
	background: rgba(255, 255, 255, 0.1);
	color: var(--gsg-cyan-bright, #3ECFC4);
}

.gsg-modal-body {
	padding: var(--gsg-spacing-lg);
	overflow-y: auto;
	flex: 1;
	background: var(--gsg-slate-dark, #4A5663);
}

/* Event Cards Inside Modal - Force Dark Theme */
.gsg-modal .gsg-event-card,
.gsg-modal-body .gsg-event-card {
	background: var(--gsg-slate-dark, #4A5663) !important;
	background-color: var(--gsg-slate-dark, #4A5663) !important;
	border: 1px solid var(--gsg-slate-light, #6B7785) !important;
	border-radius: var(--gsg-radius-xs, 2px) !important;
	overflow: hidden !important;
	transition: all 0.3s ease !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
}

.gsg-modal .gsg-event-card:hover,
.gsg-modal-body .gsg-event-card:hover {
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4) !important;
	transform: translateY(-2px) !important;
	border-color: var(--gsg-cyan-bright, #3ECFC4) !important;
}

.gsg-modal .gsg-event-card__image,
.gsg-modal-body .gsg-event-card__image {
	background: var(--gsg-slate-medium, #53616D) !important;
}

.gsg-modal .gsg-event-card__content,
.gsg-modal-body .gsg-event-card__content {
	background: transparent !important;
}

.gsg-modal .gsg-event-card__title,
.gsg-modal-body .gsg-event-card__title {
	color: var(--gsg-white, #fff) !important;
}

.gsg-modal .gsg-event-card__meta,
.gsg-modal-body .gsg-event-card__meta {
	color: var(--gsg-white, #fff) !important;
}

.gsg-modal .gsg-event-card__description,
.gsg-modal-body .gsg-event-card__description {
	color: var(--gsg-white, #fff) !important;
}

/* Buttons Inside Modal - Force Dark Theme */
.gsg-modal .gsg-event-card__ticket-btn,
.gsg-modal-body .gsg-event-card__ticket-btn {
	background: var(--gsg-cyan-bright, #3ECFC4) !important;
	background-color: var(--gsg-cyan-bright, #3ECFC4) !important;
	color: var(--gsg-primary-dark, #121316) !important;
	border-radius: var(--gsg-radius-xs, 2px) !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
}

.gsg-modal .gsg-event-card__ticket-btn:hover,
.gsg-modal-body .gsg-event-card__ticket-btn:hover {
	background: var(--gsg-orange-bright, #FF6B35) !important;
	background-color: var(--gsg-orange-bright, #FF6B35) !important;
	color: var(--gsg-white, #fff) !important;
}

/* Responsive Design for Events */
@media (max-width: 1024px) {
	.gsg-events-list {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.gsg-events-list {
		grid-template-columns: 1fr;
	}

	.gsg-venue-events .gsg-section-header {
		flex-direction: column;
		align-items: flex-start;
	}

	.gsg-venue-events button.gsg-btn-view-all-events,
	button.gsg-btn-view-all-events {
		width: 100% !important;
		justify-content: center !important;
	}

	/* Event card images use responsive padding-bottom for aspect ratio - no fixed height needed */

	.gsg-event-card__meta {
		flex-direction: column;
		gap: var(--gsg-spacing-xs);
	}

	.gsg-modal-content {
		width: 95%;
		max-height: 95vh;
	}
}

@media (max-width: 480px) {
	.gsg-venue-events .gsg-section-header h2 {
		font-size: 24px;
	}

	.gsg-event-card__title {
		font-size: 18px;
	}

	.gsg-event-card__content {
		padding: var(--gsg-spacing-md);
	}
}
