/* Pro Theme Enhancements */
:root {
	--brand: #6366f1; /* Indigo */
	--brand-alt: #22d3ee; /* Cyan */
	--bg: #eef2ff; /* Page background */
}

/* Buttons */
.btn-outline-primary {
	color: var(--brand);
	border-color: rgba(99,102,241,.35);
	background: rgba(99,102,241,.08);
}
.btn-outline-primary:hover {
	color: #0e0101;
	background: var(--brand);
	border-color: var(--brand);
}
.btn-gradient {
	background: linear-gradient(135deg, var(--brand) 0%, var(--brand-alt) 100%);
	border: none;
	color: #3f0101;
	box-shadow: 0 8px 24px rgba(99,102,241,.25);
}
.btn-gradient:hover { filter: brightness(1.03); box-shadow: 0 10px 28px rgba(99,102,241,.32); }

/* Navbar polish */
.navbar { backdrop-filter: saturate(140%) blur(6px); }
.navbar.sticky-top { box-shadow: 0 6px 24px rgba(15, 23, 42, .06); }

/* Professional navbar underline + active indicator */
.navbar .nav-link {
	position: relative;
	padding-top: .8rem;
	padding-bottom: .8rem;
	transition: color .2s ease;
}
.navbar .nav-link::after {
	content: "";
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 4px;
	height: 2px;
	background: linear-gradient(90deg, var(--brand), var(--brand-alt));
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .22s ease;
}
.navbar .nav-link:hover { color: var(--brand); }
.navbar .nav-link:hover::after,
.navbar .nav-link.active::after { transform: scaleX(1); }

/* Premium CTA button in navbar */
.navbar .btn-cta {
	border-radius: 999px;
	padding: .35rem .9rem;
	font-weight: 600;
}

/* Creative brand title */
.brand-title {
	font-family: 'Playfair Display', serif;
	font-weight: 700;
	letter-spacing: .2px;
	background: linear-gradient(90deg, var(--brand), var(--brand-alt));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.brand-accent { filter: brightness(0.9); }
.brand-mark {
	width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center;
	border-radius: 10px; background: rgba(99,102,241,.12); color: var(--brand);
}

/* Card elevation & rounding */
.card { border: 1px solid rgba(0,0,0,.06); border-radius: 16px; }
.card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(0,0,0,.10); }
.event-card-img { border-top-left-radius: 16px; border-top-right-radius: 16px; }

/* Glass effect utility */
.glass { backdrop-filter: saturate(160%) blur(10px); background: rgba(255,255,255,.6); border: 1px solid rgba(255,255,255,.45); }

/* Gallery hovers */
.gallery-item { position: relative; overflow: hidden; border-radius: 12px; }
.gallery-item img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; z-index: 0; }
.gallery-item:hover img { transform: scale(1.03); }

/* Strong overrides for gallery tiles */
.gallery-item::before, .gallery-item::after { content: none !important; }
.gallery-badge { z-index: 2; pointer-events: none; }
.gallery-item, .gallery-item .ratio, .gallery-item .ratio > img, .gallery-item img { background: transparent !important; box-shadow: none !important; }
.gallery-item img { position: relative !important; z-index: 3 !important; }
.gallery-badge { z-index: 4 !important; }

/* Final strong reset for gallery preview tiles */
.gallery-item, .gallery-item *, .ratio, .ratio * { background: transparent !important; box-shadow: none !important; filter: none !important; opacity: 1 !important; mix-blend-mode: normal !important; isolation: isolate !important; }
.gallery-item img, .ratio > img, .ratio img { -webkit-filter: none !important; filter: none !important; opacity: 1 !important; mix-blend-mode: normal !important; transform: none !important; }

/* Festival badge on gallery thumbnails */
.gallery-badge {
	position: absolute;
	left: 8px;
	top: 8px;
	background: rgba(0,0,0,0.6);
	color: #fff;
	padding: 4px 8px;
	border-radius: 6px;
	font-size: 12px;
	font-weight: 700;
	z-index: 2;
	text-transform: uppercase;
}

/* Footer detail */
.footer-dark hr { border-color: rgba(255,255,255,.08); }

/* Forms */
.form-control, .form-select, .form-check-input { border-radius: 12px; }
.form-control:focus, .form-select:focus { border-color: var(--brand); box-shadow: 0 0 0 .25rem rgba(99,102,241,.18); }

/* Section spacing & accents */
section { scroll-margin-top: 90px; }
.accent-bar { width: 72px; height: 4px; background: linear-gradient(90deg, var(--brand), var(--brand-alt)); border-radius: 999px; }

/* Archive cards */
.archive-card { padding: 2rem; border-radius: 12px; }
.archive-card h3 { margin: 0; }

/* Reveal animations */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.reveal-up { transform: translateY(20px); }
.reveal-down { transform: translateY(-20px); }
.reveal-left { transform: translateX(-20px); }
.reveal-right { transform: translateX(20px); }
.reveal-visible { opacity: 1; transform: none; }

/* RTL adjustments for reveals */
[dir="rtl"] .reveal-left { transform: translateX(20px); }
[dir="rtl"] .reveal-right { transform: translateX(-20px); }