/* ==========================================================================
   When Nations Pray - Signature Black & Gold Design System & Global Styles
   Color Identity: Obsidian Black (#090A0D, #12141C) & Royal 24k Gold (#D4AF37, #F5D77F)
   ========================================================================== */

:root {
    /* Primary Theme Identity Colors - Black & Gold */
    --theme-black: #090A0D;
    --theme-black-deep: #050608;
    --theme-black-card: #12141C;
    --theme-black-elevated: #181B26;
    --theme-black-border: rgba(212, 175, 55, 0.22);
    
    --theme-gold: #D4AF37;
    --theme-gold-light: #F5D77F;
    --theme-gold-dark: #996515;
    --theme-gold-rich: #C59B27;
    --theme-gold-glow: rgba(212, 175, 55, 0.35);
    
    /* Signature Metallic Gold Gradients */
    --theme-gradient: linear-gradient(135deg, #FFE58F 0%, #D4AF37 50%, #996515 100%);
    --theme-gradient-subtle: linear-gradient(180deg, rgba(212, 175, 55, 0.12) 0%, rgba(9, 10, 13, 0) 100%);
    --theme-gradient-gold: linear-gradient(135deg, #FFF0BD 0%, #D4AF37 50%, #8A6208 100%);
    --theme-gradient-dark: linear-gradient(180deg, #161822 0%, #0D0E14 100%);
    --gold-text-gradient: linear-gradient(135deg, #FFF1C5 0%, #E5B83B 50%, #AA7C11 100%);
    
    /* Neumorphic Lighting Palettes (Dark Obsidian Canvas with Golden Accents) */
    --neu-bg: #090A0D;
    --neu-bg-light: #12141C;
    --neu-bg-soft: #0E1017;
    --neu-surface: #131622;
    --neu-surface-soft: #191D2C;
    
    /* Shadows - Obsidian Neumorphic Depth with Warm Gold Ambient Aura */
    --neu-shadow-raised: 8px 8px 24px rgba(0, 0, 0, 0.65), -4px -4px 18px rgba(212, 175, 55, 0.04);
    --neu-shadow-raised-sm: 4px 4px 14px rgba(0, 0, 0, 0.55), -2px -2px 10px rgba(212, 175, 55, 0.04);
    --neu-shadow-raised-lg: 14px 14px 38px rgba(0, 0, 0, 0.8), -6px -6px 24px rgba(212, 175, 55, 0.07);
    --neu-shadow-inset: inset 3px 3px 9px rgba(0, 0, 0, 0.75), inset -2px -2px 7px rgba(212, 175, 55, 0.06);
    --neu-shadow-inset-sm: inset 2px 2px 5px rgba(0, 0, 0, 0.65), inset -1px -1px 4px rgba(212, 175, 55, 0.05);
    
    /* Stage Gradient Theme (Hero, Banners, Headers) */
    --neu-stage-bg: radial-gradient(ellipse at 50% 15%, #251D09 0%, #0E1016 65%, #050608 100%);
    --neu-stage-text: #FFFFFF;
    
    /* Ministry Identity Colors & High-Contrast Typography */
    --navy-deep: #FFFFFF;
    --navy-royal: #F8FAFC;
    --gold-primary: #D4AF37;
    --gold-light: #F5D77F;
    --gold-glow: #F3CA52;
    --text-dark: #F8FAFC;
    --text-heading: #FFFFFF;
    --text-muted: #CBD5E1;
    --text-light: #FFFFFF;
    
    /* Typography from whennationspray.com */
    --font-heading: 'Roboto Slab', Georgia, serif;
    --font-body: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
    
    /* Layout Constants */
    --radius-sm: 10px;
    --radius-md: 16px;
    --radius-lg: 24px;
    --radius-full: 9999px;
    --transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
    background-color: var(--neu-bg);
}

body.wnp-body {
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.68;
    color: var(--text-dark);
    background-color: var(--neu-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

::selection {
    background-color: var(--theme-gold);
    color: #000000;
}

/* Global Headings: Roboto Slab from whennationspray.com */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--font-heading);
    color: var(--text-heading);
    letter-spacing: -0.2px;
}

/* Text Utility Gold Accents */
.text-gold {
    color: var(--theme-gold) !important;
}

.text-gold-gradient {
    background: var(--gold-text-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    display: inline-block;
}

/* High-Contrast Bright & Visible Global Typography */
p, .p {
    color: #F1F5F9;
}

.text-muted {
    color: #CBD5E1 !important;
}

.text-secondary {
    color: #E2E8F0 !important;
}

.text-light {
    color: #F8FAFC !important;
}

.small, small {
    color: #CBD5E1;
}

.lead {
    color: #FFFFFF !important;
    font-weight: 400;
}

/* Dark Card & Stage Typography Enhancement */
.neu-card p,
.neu-dark-card p,
.neu-gradient-card p,
.theme-stage-banner p {
    color: #F1F5F9;
}

.neu-card h1, .neu-card h2, .neu-card h3, .neu-card h4, .neu-card h5, .neu-card h6,
.neu-dark-card h1, .neu-dark-card h2, .neu-dark-card h3, .neu-dark-card h4, .neu-dark-card h5, .neu-dark-card h6 {
    color: #FFFFFF;
}

/* ==========================================================================
   Neumorphic Surface Primitives (Black & Gold)
   ========================================================================== */

/* Raised Extruded Card */
.neu-card {
    background: var(--neu-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--neu-shadow-raised);
    border: 1px solid var(--theme-black-border);
    transition: var(--transition);
    color: var(--text-dark);
}

.neu-card:hover {
    box-shadow: 10px 10px 30px rgba(0, 0, 0, 0.8), -6px -6px 22px rgba(212, 175, 55, 0.08);
    border-color: rgba(212, 175, 55, 0.4);
    transform: translateY(-2px);
}

.neu-card-sm {
    background: var(--neu-surface);
    border-radius: var(--radius-md);
    box-shadow: var(--neu-shadow-raised-sm);
    border: 1px solid var(--theme-black-border);
    transition: var(--transition);
    color: var(--text-dark);
}

/* Inset / Pressed Surface */
.neu-inset {
    background: var(--neu-surface-soft);
    border-radius: var(--radius-md);
    box-shadow: var(--neu-shadow-inset);
    border: 1px solid rgba(212, 175, 55, 0.15);
    color: var(--text-dark);
}

/* Theme Gradient Feature Card */
.neu-gradient-card {
    background: linear-gradient(145deg, #1F1A0A 0%, #11131A 60%, #0A0B0E 100%);
    border-radius: var(--radius-lg);
    box-shadow: 8px 8px 28px rgba(0, 0, 0, 0.7), -4px -4px 18px rgba(212, 175, 55, 0.08);
    border: 1px solid rgba(212, 175, 55, 0.35);
    color: #FFFFFF;
    transition: var(--transition);
}

.neu-gradient-card:hover {
    box-shadow: 12px 12px 34px rgba(0, 0, 0, 0.85), -6px -6px 24px rgba(212, 175, 55, 0.15);
    border-color: var(--theme-gold);
}

/* Dark Card Alias */
.neu-dark-card {
    background: var(--neu-surface);
    border-radius: var(--radius-lg);
    box-shadow: var(--neu-shadow-raised);
    border: 1px solid var(--theme-black-border);
    color: var(--text-dark);
    transition: var(--transition);
}

.neu-dark-card:hover {
    box-shadow: 12px 12px 32px rgba(0, 0, 0, 0.8);
    border-color: rgba(212, 175, 55, 0.4);
}

/* ==========================================================================
   Neumorphic Interactive Buttons (Black & Gold)
   ========================================================================== */

/* Theme Gold Primary CTA Button */
.btn-neu-gold, .btn-theme-gradient {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: linear-gradient(135deg, #FFE89E 0%, #D4AF37 50%, #996515 100%) !important;
    color: #0B0D12 !important;
    font-weight: 800;
    font-size: 0.95rem;
    padding: 12px 28px;
    border-radius: var(--radius-full);
    border: 1px solid #FFE89E;
    box-shadow: 0 4px 18px rgba(212, 175, 55, 0.35), 4px 4px 14px rgba(0, 0, 0, 0.5);
    cursor: pointer;
    text-decoration: none;
    transition: var(--transition);
}

.btn-neu-gold:hover, .btn-theme-gradient:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 26px rgba(212, 175, 55, 0.55), 6px 6px 18px rgba(0, 0, 0, 0.6);
    color: #000000 !important;
    filter: brightness(1.05);
}

.btn-neu-gold:active, .btn-theme-gradient:active {
    transform: translateY(1px);
    box-shadow: inset 3px 3px 6px rgba(80, 50, 0, 0.5);
}

/* Obsidian Sleek Button with Gold Outline */
.btn-neu-white, .btn-neu-navy, .btn-neu-light, .btn-neu-dark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #141724 !important;
    color: #F8FAFC !important;
    font-weight: 700;
    font-size: 0.95rem;
    padding: 12px 26px;
    border-radius: var(--radius-full);
    border: 1px solid rgba(212, 175, 55, 0.4);
    box-shadow: 5px 5px 16px rgba(0, 0, 0, 0.6), -3px -3px 12px rgba(212, 175, 55, 0.05);
    cursor: pointer;
    text-decoration: none;
    transition: var(--transition);
}

.btn-neu-white:hover, .btn-neu-navy:hover, .btn-neu-light:hover, .btn-neu-dark:hover {
    transform: translateY(-2px);
    box-shadow: 7px 7px 22px rgba(0, 0, 0, 0.75), 0 0 16px rgba(212, 175, 55, 0.3);
    color: var(--theme-gold-light) !important;
    border-color: var(--theme-gold);
    background: #1B2032 !important;
}

.btn-neu-white:active, .btn-neu-navy:active, .btn-neu-light:active, .btn-neu-dark:active {
    transform: translateY(1px);
    box-shadow: var(--neu-shadow-inset-sm);
}

/* Tactile Icon Button */
.neu-icon-btn {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #141724;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--theme-gold);
    box-shadow: 4px 4px 12px rgba(0, 0, 0, 0.6), -2px -2px 8px rgba(212, 175, 55, 0.05);
    border: 1px solid rgba(212, 175, 55, 0.3);
    cursor: pointer;
    text-decoration: none;
    transition: var(--transition);
}

.neu-icon-btn:hover {
    transform: scale(1.06);
    color: #FFFFFF;
    background: #1D2133;
    border-color: var(--theme-gold);
    box-shadow: 6px 6px 16px rgba(0, 0, 0, 0.7), 0 0 14px rgba(212, 175, 55, 0.3);
}

.neu-icon-btn:active {
    transform: scale(0.96);
    box-shadow: var(--neu-shadow-inset-sm);
}

/* ==========================================================================
   Modern Black & Gold Navigation Bar
   ========================================================================== */

/* Top Utility Bar */
.top-utility-bar {
    background: #060709;
    color: #94A3B8;
    font-size: 0.82rem;
    font-weight: 500;
    padding: 8px 0;
    border-bottom: 1px solid rgba(212, 175, 55, 0.2);
    position: relative;
    z-index: 1030; /* Must be higher than .main-header (1020) so dropdown appears on top of the header */
}

.top-utility-bar .dropdown {
    position: relative;
    z-index: 1031;
}

.top-utility-bar .dropdown-menu {
    z-index: 1035 !important;
}

.top-utility-bar a {
    color: #CBD5E1;
    text-decoration: none;
    transition: color 0.2s;
}

.top-utility-bar a:hover {
    color: var(--theme-gold);
}

.announcement-chip {
    background: #151824;
    color: var(--theme-gold);
    border: 1px solid rgba(212, 175, 55, 0.35);
    padding: 4px 14px;
    border-radius: 20px;
    font-size: 0.74rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

/* Modern Sticky Header */
.main-header {
    background: rgba(9, 10, 13, 0.94);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    position: sticky;
    top: 0;
    z-index: 1020;
    padding: 12px 0;
    border-bottom: 1px solid rgba(212, 175, 55, 0.22);
    transition: all 0.3s ease;
}

.main-header.scrolled {
    padding: 8px 0;
    background: rgba(6, 7, 9, 0.98);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.7), 0 2px 10px rgba(212, 175, 55, 0.1);
}

/* Floating Neumorphic Nav Container */
.neu-nav-container {
    background: #11141E;
    border-radius: var(--radius-lg);
    box-shadow: 8px 8px 24px rgba(0, 0, 0, 0.65), -3px -3px 14px rgba(212, 175, 55, 0.05);
    border: 1px solid rgba(212, 175, 55, 0.25);
    padding: 6px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

/* Branding - Bolder, Clearer & Large */
.brand-wrapper {
    display: flex;
    align-items: center;
    gap: 16px;
    text-decoration: none;
    transition: var(--transition);
}

.brand-wrapper:hover {
    opacity: 0.95;
    transform: translateY(-1px);
}

.brand-logo-neu {
    height: auto;
    width: auto;
    min-width: unset;
    border-radius: 0;
    background: transparent !important;
    padding: 0 !important;
    box-shadow: none !important;
    border: none !important;
    display: flex;
    align-items: center;
    justify-content: center;
}

.brand-logo-neu img {
    height: 84px;
    max-height: 88px;
    width: auto;
    object-fit: contain;
    filter: drop-shadow(0 2px 10px rgba(212, 175, 55, 0.45));
    transition: transform 0.25s ease;
}

.brand-text-neu {
    display: flex;
    flex-direction: column;
}

.brand-text-neu .title {
    font-family: var(--font-heading);
    font-size: 1.35rem;
    font-weight: 800;
    color: #FFFFFF;
    line-height: 1.1;
    letter-spacing: 0.5px;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

.brand-text-neu .subtitle {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 800;
    color: var(--theme-gold);
    margin-top: 3px;
}

/* Navigation Links */
.neu-nav-menu {
    display: flex;
    align-items: center;
    gap: 6px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.neu-nav-link {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 9px 16px;
    font-size: 0.92rem;
    font-weight: 600;
    color: #E2E8F0;
    text-decoration: none;
    border-radius: var(--radius-full);
    transition: var(--transition);
}

.neu-nav-link:hover {
    color: var(--theme-gold-light);
    background: rgba(212, 175, 55, 0.12);
    box-shadow: 0 0 14px rgba(212, 175, 55, 0.15);
}

.neu-nav-link.active {
    color: #0B0D12 !important;
    background: linear-gradient(135deg, #FFE89E 0%, #D4AF37 50%, #996515 100%);
    box-shadow: 0 3px 14px rgba(212, 175, 55, 0.4);
    border: 1px solid #FFE89E;
    font-weight: 800;
}

/* Dropdown Menu in Dark Neumorphism */
.neu-dropdown-menu {
    background: #111420;
    border-radius: var(--radius-md);
    box-shadow: 10px 10px 30px rgba(0, 0, 0, 0.8), -4px -4px 18px rgba(212, 175, 55, 0.08);
    border: 1px solid rgba(212, 175, 55, 0.28);
    padding: 10px;
    min-width: 250px;
}

.neu-dropdown-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    font-size: 0.9rem;
    font-weight: 600;
    color: #E2E8F0;
    text-decoration: none;
    border-radius: 10px;
    transition: var(--transition);
}

.neu-dropdown-item:hover {
    background: rgba(212, 175, 55, 0.15);
    color: var(--theme-gold-light);
    box-shadow: 0 2px 10px rgba(212, 175, 55, 0.15);
}

/* ==========================================================================
   Mobile Navigation & Hamburger
   ========================================================================== */

/* Modern Hamburger Button */
.neu-hamburger {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #131726;
    border: 1px solid rgba(212, 175, 55, 0.35);
    box-shadow: 4px 4px 12px rgba(0, 0, 0, 0.6), -2px -2px 8px rgba(212, 175, 55, 0.06);
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    cursor: pointer;
    padding: 0;
    transition: var(--transition);
    z-index: 1055;
}

.neu-hamburger:hover {
    box-shadow: 6px 6px 16px rgba(0, 0, 0, 0.7), 0 0 12px rgba(212, 175, 55, 0.25);
    border-color: var(--theme-gold);
}

.neu-hamburger:active {
    box-shadow: var(--neu-shadow-inset-sm);
}

.neu-hamburger span {
    display: block;
    width: 22px;
    height: 2.5px;
    background: var(--theme-gold);
    border-radius: 2px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Hamburger Open Animation */
.neu-hamburger.is-active span:nth-child(1) {
    transform: translateY(7.5px) rotate(45deg);
}

.neu-hamburger.is-active span:nth-child(2) {
    opacity: 0;
    transform: translateX(10px);
}

.neu-hamburger.is-active span:nth-child(3) {
    transform: translateY(-7.5px) rotate(-45deg);
}

/* Mobile Drawer Overlay Backdrop */
.neu-drawer-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.75);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 1040;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.neu-drawer-backdrop.is-visible {
    opacity: 1;
    visibility: visible;
}

/* Mobile Slide-Out Drawer */
.neu-mobile-drawer {
    position: fixed;
    top: 0;
    right: 0;
    width: 320px;
    max-width: 85vw;
    height: 100vh;
    background: #0D0F18;
    box-shadow: -10px 0 40px rgba(0, 0, 0, 0.85);
    z-index: 1050;
    display: flex;
    flex-direction: column;
    padding: 24px 20px;
    transform: translateX(100%);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    overflow-y: auto;
    border-left: 1px solid rgba(212, 175, 55, 0.25);
}

.neu-mobile-drawer.is-open {
    transform: translateX(0);
}

.neu-drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(212, 175, 55, 0.2);
    margin-bottom: 20px;
}

.neu-drawer-nav {
    display: flex;
    flex-direction: column;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.neu-drawer-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    font-size: 0.95rem;
    font-weight: 600;
    color: #F1F5F9;
    text-decoration: none;
    border-radius: var(--radius-md);
    background: #141724;
    box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.5);
    border: 1px solid rgba(212, 175, 55, 0.18);
    transition: var(--transition);
}

.neu-drawer-link:hover, .neu-drawer-link:active {
    color: var(--theme-gold-light);
    border-color: var(--theme-gold);
    background: #1C2032;
}

.neu-drawer-link.active {
    background: linear-gradient(135deg, #FFE89E 0%, #D4AF37 50%, #996515 100%);
    color: #0B0D12 !important;
    border-color: #FFE89E;
    box-shadow: 0 4px 14px rgba(212, 175, 55, 0.4);
    font-weight: 800;
}

.neu-drawer-footer {
    margin-top: auto;
    padding-top: 24px;
    border-top: 1px solid rgba(212, 175, 55, 0.2);
}

/* ==========================================================================
   Neumorphic Form Controls (Debossed / Inset on Obsidian)
   ========================================================================== */

.neu-form-control {
    width: 100%;
    padding: 13px 18px;
    font-family: inherit;
    font-size: 0.95rem;
    color: #FFFFFF;
    background: #0E1018;
    border: 1px solid rgba(212, 175, 55, 0.25);
    border-radius: var(--radius-md);
    box-shadow: var(--neu-shadow-inset);
    outline: none;
    transition: var(--transition);
}

.neu-form-control::placeholder {
    color: #64748B;
}

.neu-form-control:focus {
    border-color: var(--theme-gold);
    box-shadow: inset 3px 3px 9px rgba(0, 0, 0, 0.8), 0 0 0 3px rgba(212, 175, 55, 0.22);
}

.neu-form-select {
    width: 100%;
    padding: 13px 18px;
    font-family: inherit;
    font-size: 0.95rem;
    color: #FFFFFF;
    background: #0E1018;
    border: 1px solid rgba(212, 175, 55, 0.25);
    border-radius: var(--radius-md);
    box-shadow: var(--neu-shadow-inset);
    outline: none;
    cursor: pointer;
    transition: var(--transition);
}

.neu-form-select option {
    background: #0E1018;
    color: #FFFFFF;
}

.neu-form-select:focus {
    border-color: var(--theme-gold);
    box-shadow: inset 3px 3px 9px rgba(0, 0, 0, 0.8), 0 0 0 3px rgba(212, 175, 55, 0.22);
}

/* ==========================================================================
   Neumorphic Countdown Timer Boxes
   ========================================================================== */

.neu-timer-tile {
    min-width: 95px;
    padding: 16px 14px;
    border-radius: var(--radius-md);
    background: #121522;
    box-shadow: 6px 6px 18px rgba(0, 0, 0, 0.7), -3px -3px 12px rgba(212, 175, 55, 0.05);
    border: 1px solid rgba(212, 175, 55, 0.25);
    text-align: center;
    transition: var(--transition);
}

.neu-timer-tile .number {
    font-family: var(--font-heading);
    font-size: 2.4rem;
    font-weight: 800;
    color: var(--theme-gold);
    line-height: 1;
    margin-bottom: 4px;
    text-shadow: 0 0 12px rgba(212, 175, 55, 0.35);
}

.neu-timer-tile .label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: #94A3B8;
}

/* ==========================================================================
   Theme Stage Banner Component (Dark Obsidian with Warm Gold Radiance)
   ========================================================================== */

.theme-stage-banner {
    background: radial-gradient(ellipse at 50% 20%, #2A2109 0%, #0F1118 65%, #06070A 100%);
    color: #FFFFFF;
    position: relative;
    overflow: hidden;
    border-bottom: 1px solid rgba(212, 175, 55, 0.25);
}

.theme-stage-banner h1, .theme-stage-banner h2, .theme-stage-banner h3 {
    color: #FFFFFF !important;
}

.theme-badge-white, .theme-badge-gold {
    background: #141726;
    color: var(--theme-gold);
    font-weight: 800;
    padding: 6px 18px;
    border-radius: 9999px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.76rem;
    letter-spacing: 0.8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.6);
    border: 1px solid rgba(212, 175, 55, 0.35);
}

/* ==========================================================================
   Gallery & Events Specific Components
   ========================================================================== */

/* Gallery Image Card */
.gallery-card {
    position: relative;
    border-radius: var(--radius-md);
    overflow: hidden;
    background: #121522;
    border: 1px solid rgba(212, 175, 55, 0.22);
    box-shadow: var(--neu-shadow-raised);
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
}

.gallery-card:hover {
    transform: translateY(-5px);
    border-color: var(--theme-gold);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.85), 0 0 20px rgba(212, 175, 55, 0.25);
}

.gallery-card-img-wrap {
    position: relative;
    width: 100%;
    padding-top: 70%; /* 4:3 Aspect Ratio approx */
    overflow: hidden;
    background: #090B10;
}

.gallery-card-img-wrap img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.gallery-card:hover .gallery-card-img-wrap img {
    transform: scale(1.08);
}

.gallery-card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(9, 10, 14, 0.92) 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 18px;
    transition: background 0.3s ease;
}

.gallery-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    background: rgba(14, 16, 24, 0.88);
    backdrop-filter: blur(8px);
    color: var(--theme-gold);
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    padding: 4px 12px;
    border-radius: 20px;
    border: 1px solid rgba(212, 175, 55, 0.3);
}

.gallery-card-title {
    font-family: var(--font-heading);
    color: #FFFFFF;
    font-size: 1.05rem;
    font-weight: 700;
    margin-bottom: 4px;
    line-height: 1.3;
}

.gallery-card-desc {
    color: #94A3B8;
    font-size: 0.82rem;
    line-height: 1.5;
    margin-bottom: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Lightbox Modal */
.gallery-lightbox-modal {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(4, 5, 8, 0.95);
    backdrop-filter: blur(14px);
    z-index: 1060;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.gallery-lightbox-modal.is-open {
    display: flex;
}

.gallery-lightbox-content {
    max-width: 90vw;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
}

.gallery-lightbox-img {
    max-width: 88vw;
    max-height: 72vh;
    object-fit: contain;
    border-radius: var(--radius-md);
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.9);
    border: 2px solid rgba(212, 175, 55, 0.35);
}

.gallery-lightbox-caption {
    margin-top: 14px;
    text-align: center;
    color: #E2E8F0;
    max-width: 650px;
}

/* Filter Navigation Pills */
.filter-pills-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin-bottom: 36px;
}

.filter-pill-btn {
    background: #121522;
    color: #CBD5E1;
    border: 1px solid rgba(212, 175, 55, 0.22);
    padding: 8px 18px;
    border-radius: 9999px;
    font-size: 0.86rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}

.filter-pill-btn:hover {
    color: var(--theme-gold-light);
    border-color: var(--theme-gold);
    background: #1A1F30;
}

.filter-pill-btn.active {
    background: linear-gradient(135deg, #FFE89E 0%, #D4AF37 50%, #996515 100%);
    color: #0A0C10;
    font-weight: 800;
    border-color: #FFE89E;
    box-shadow: 0 3px 12px rgba(212, 175, 55, 0.35);
}

/* Event Showcase Cards */
.event-showcase-card {
    background: #111420;
    border-radius: var(--radius-lg);
    border: 1px solid rgba(212, 175, 55, 0.25);
    box-shadow: var(--neu-shadow-raised);
    overflow: hidden;
    transition: var(--transition);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.event-showcase-card:hover {
    transform: translateY(-4px);
    border-color: var(--theme-gold);
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.8), 0 0 20px rgba(212, 175, 55, 0.22);
}

.event-poster-wrap {
    position: relative;
    width: 100%;
    background: #070910;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    border-bottom: 1px solid rgba(212, 175, 55, 0.22);
    overflow: hidden;
}

.event-poster-wrap img {
    width: 100%;
    height: auto;
    max-height: 640px;
    object-fit: contain;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.7);
    transition: transform 0.35s ease;
    cursor: zoom-in;
}

.event-showcase-card:hover .event-poster-wrap img {
    transform: scale(1.02);
}

/* ==========================================================================
   Responsive Breakpoints
   ========================================================================== */

@media (max-width: 991.98px) {
    .neu-hamburger {
        display: flex;
    }
    
    .neu-nav-menu,
    .desktop-cta {
        display: none !important;
    }

    .brand-logo-neu {
        height: auto;
        min-width: unset;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
    }

    .brand-logo-neu img {
        height: 60px;
        max-height: 64px;
    }

    .brand-text-neu .title {
        font-size: 1.05rem;
    }

    .top-utility-bar {
        position: relative;
        z-index: 1030;
    }

    .top-utility-bar .dropdown-menu {
        max-width: calc(100vw - 20px) !important;
        right: 0 !important;
        left: auto !important;
    }
}

@media (min-width: 992px) {
    .neu-mobile-drawer,
    .neu-drawer-backdrop {
        display: none !important;
    }
}

/* ==========================================================================
   Global High-Contrast Typography & Readability Overrides
   Ensures all text is crisp, bright, and legible across the Black & Gold theme
   ========================================================================== */

body {
    color: #F8FAFC !important;
}

body h1, body h2, body h3, body h4, body h5, body h6 {
    color: #FFFFFF;
}

body p {
    color: #E2E8F0;
}

body .neu-card h1, body .neu-card h2, body .neu-card h3,
body .neu-card h4, body .neu-card h5, body .neu-card h6 {
    color: #FFFFFF !important;
}

body .neu-card p,
body .neu-card small,
body .neu-card .text-muted {
    color: #CBD5E1 !important;
}

body .neu-card .text-dark:not(.badge):not(.btn) {
    color: #FFFFFF !important;
}

body .neu-card .text-secondary {
    color: #E2E8F0 !important;
}

body .neu-form-control {
    background: #141724 !important;
    color: #FFFFFF !important;
    border: 1px solid rgba(212, 175, 55, 0.28) !important;
}

body .neu-form-control::placeholder {
    color: #94A3B8 !important;
}

body .neu-form-control:focus {
    background: #191D2C !important;
    color: #FFFFFF !important;
    border-color: #D4AF37 !important;
    box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.25) !important;
}

body label.form-label {
    color: #E2E8F0 !important;
}

body .hover-gold:hover {
    color: #F5D77F !important;
}

