/*
Theme Name: Astra Child - NPAS Sri Lanka
Theme URI: https://wpastra.com/
Description: A highly optimized, responsive, and visually modern child theme for the National Photographic Art Society of Sri Lanka.
Author: Chamara Ranathunga
Author URI: https://npassrilanka.org
Template: astra
Version: 1.2.7
Text Domain: astra-child
*/

/* 
 * ==========================================================================
 * CUSTOM STYLESHEET: NPAS Sri Lanka Visual Redesign & Advanced Responsiveness
 * Website: https://npassrilanka.org/
 * ==========================================================================
 */

/* --------------------------------------------------------------------------
   1. MODERN TYPOGRAPHY & SMOOTH PERFORMANCE
   -------------------------------------------------------------------------- */
html {
    scroll-behavior: smooth !important;
}

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Enforce the Dual-Font Stack */
h1, h2, h3, h4, h5, h6, 
.elementor-heading-title, 
.entry-title {
    font-family: 'Barlow Semi Condensed', 'Arial Black', sans-serif !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase;
}

body, p, span, li, a, 
.elementor-button, 
.elementor-text-editor {
    font-family: 'Roboto', 'Helvetica Neue', Arial, sans-serif !important;
}

/* ==========================================================================
   GLOBAL FUTURISTIC DARK CINEMATIC OVERRIDES (v1.2.6)
   ========================================================================== */

/* Force a gorgeous deep space-black background across the entire site */
html,
body,
#page,
#content,
.site-content,
#primary,
#main,
.ast-plain-container,
.ast-page-builder-template,
.type-page {
    background-color: #040817 !important; /* Deepest Royal Space Blue */
    color: #cbd5e1 !important; /* Highly readable premium light silver-grey text */
}

/* Force light colors on global body text elements for dark mode readability */
p, span, li, td, th, label, input, textarea, select {
    color: #cbd5e1 !important;
}

/* Ensure headings stand out in crisp, glowing white / silver */
h1, h2, h3, h4, h5, h6, 
.entry-title, 
.elementor-heading-title,
.elementor-heading-title a,
.entry-title a {
    color: #ffffff !important;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.1) !important;
}

/* Resolve blue link poor contrast issues by formatting standard links in glowing cyber-cyan */
#main a:not(.elementor-button):not(.card-btn) {
    color: #00f2fe !important;
    transition: all 0.3s ease !important;
    text-decoration: none !important;
    border-bottom: 1px solid transparent !important;
}

#main a:not(.elementor-button):not(.card-btn):hover {
    color: #ffffff !important;
    text-shadow: 0 0 8px rgba(0, 242, 254, 0.5) !important;
    border-bottom-color: rgba(0, 242, 254, 0.3) !important;
}

/* Force transparent backgrounds on Elementor outer structures so the space-black base shines through */
.elementor-section,
.elementor-container,
.elementor-row,
.elementor-top-section,
.elementor-section-wrap,
.ast-separate-container,
.ast-separate-container #primary,
.ast-separate-container #content {
    background-color: transparent !important;
    background: transparent !important;
}

/* Default legibility for Elementor text widgets on the dark space-black background */
.elementor-text-editor,
.elementor-text-editor *,
.elementor-widget-text-editor,
.elementor-widget-text-editor *,
.elementor-widget-container,
.elementor-widget-container p,
.elementor-widget-container span,
.elementor-widget-container li {
    color: #cbd5e1; /* Elegant silver-grey default (non-override so custom color highlights persist) */
}

/* Ensure bright, outstanding headings inside Elementor sections */
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-heading .elementor-heading-title * {
    color: #ffffff !important;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.1) !important;
}

/* Image zoom transitions (anti-aliased & smooth) */
img {
    transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}


/* --------------------------------------------------------------------------
   2. COLOR CONTRAST, LUXURY GRADIENTS & CALL-TO-ACTIONS
   -------------------------------------------------------------------------- */

/* Premium transitions for all interactive elements */
.elementor-button,
.elementor-widget-button a,
.wp-block-button__link,
.elementor-button-link,
a.button,
a.btn {
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    border-radius: 30px !important; /* Elegant capsule pill buttons */
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2) !important;
    position: relative;
    overflow: hidden;
}

/* Force legible white text with subtle shadow to solve the poor contrast blue link issue */
.elementor-button-wrapper a[href*="become-a-member"],
.elementor-button-wrapper a[href*="membership"],
.elementor-button-wrapper a[href*="distinctions"],
.elementor-button-wrapper a[href*="life-membership"],
.elementor-column a {
    color: #ffffff !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

/* Hover highlights for a high-end luxury feel */
.elementor-button-wrapper a[href*="become-a-member"]:hover,
.elementor-button-wrapper a[href*="membership"]:hover,
.elementor-button-wrapper a[href*="distinctions"]:hover,
.elementor-button-wrapper a[href*="life-membership"]:hover,
.elementor-column a:hover {
    color: #000000 !important; /* Contrast flip on hover */
    background: #ffc107 !important; /* Luxury golden highlight */
    border-color: #ffc107 !important;
    text-decoration: none !important;
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(255, 193, 7, 0.4) !important;
}

/* --------------------------------------------------------------------------
   3. PREMIUM CARD STYLING & GLASSMORPHISM
   -------------------------------------------------------------------------- */

/* Inject a state-of-the-art modern card feel to Elementor columns */
.elementor-column-wrap,
.elementor-widget-wrap {
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
}

/* Subtle border and shadow for core content cards to create depth */
.elementor-element.elementor-widget-image img {
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}

.elementor-element.elementor-widget-image img:hover {
    transform: scale(1.03);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
}

/* Glassmorphism accent for overlays and headers */
.elementor-section.ast-theme-transparent-header,
header.elementor-element {
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    background: rgba(0, 0, 0, 0.6) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}

/* --------------------------------------------------------------------------
   4. MULTI-DEVICE RESPONSIVENESS OVERRIDES (Mobile & Tablet)
   -------------------------------------------------------------------------- */

/* TABLET VIEWPORTS (max-width: 1024px) */
@media only screen and (max-width: 1024px) {
    header h1.site-title,
    header .site-name a {
        font-size: 1.3rem !important;
    }
    
    .elementor-column.elementor-col-33 {
        width: 100% !important;
        margin-bottom: 30px !important;
    }
}

/* MOBILE VIEWPORTS (max-width: 768px) */
@media only screen and (max-width: 768px) {
    
    /* Responsive header realignment: center logo and text gracefully */
    .site-branding,
    .ast-site-identity,
    .elementor-widget-theme-site-logo,
    header .elementor-column {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        padding: 8px 0 !important;
    }

    /* Scaling site title size so it fits smaller mobile screens beautifully */
    header h1.site-title,
    header .site-name a,
    .elementor-widget-theme-site-title h1 {
        font-size: 1.05rem !important;
        line-height: 1.3 !important;
        margin-top: 6px !important;
        padding: 0 12px !important;
        letter-spacing: 0.02em !important;
    }

    /* Mobile circular logo styling */
    header img,
    .ast-site-identity img,
    .elementor-widget-theme-site-logo img {
        max-width: 65px !important;
        height: auto !important;
        margin-bottom: 4px !important;
    }

    /* Touch target padding for mobile navigation links (min 44px) */
    .ast-mobile-menu-trigger-minimal,
    .elementor-menu-toggle,
    .menu-toggle {
        min-width: 44px !important;
        min-height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin-top: 4px !important;
        border-radius: 8px !important;
        background: rgba(255, 255, 255, 0.05) !important;
    }

    /* Prevent mobile text box overflow and overlapping */
    .elementor-section.elementor-top-section {
        padding-top: 20px !important;
        padding-bottom: 20px !important;
    }

    .elementor-widget-heading .elementor-heading-title {
        font-size: 1.5rem !important;
        line-height: 1.25 !important;
        text-align: center !important;
    }

    .elementor-text-editor {
        font-size: 0.95rem !important;
        line-height: 1.5 !important;
        text-align: center !important;
        padding: 0 10px !important;
    }

    /* ----------------------------------------------------------------------
       5. RESPONSIVE POPUP MODAL ENHANCEMENT (DECOUPLED FIX v1.2.9)
       ---------------------------------------------------------------------- */
    
    /* Outermost popup main dialog container: fixed centering and sizing */
    .sgpb-popup-dialog-main-div,
    .sgpb-popup-dialog-main-div-1,
    div[id*="sgpb-popup-dialog-"] {
        position: fixed !important;
        top: 50% !important;
        left: 50% !important;
        transform: translate(-50%, -50%) !important;
        width: 92% !important;
        max-width: 390px !important;
        height: auto !important;
        min-height: 80px !important; /* Prevents height collapsing to zero */
        box-sizing: border-box !important;
        overflow: visible !important; /* Let close buttons exceed boundaries slightly */
        background: transparent !important; /* Background belongs to the inner content card */
        border: none !important;
        box-shadow: none !important;
    }

    /* Intermediate content wrappers: must flow naturally to let content push parent height */
    .sg-popup-builder-content,
    .sgpb-popup-builder-content,
    [id^="sg-popup-content-wrapper-"],
    [class^="sgpb-main-popup-data-container-"],
    .sgpb-popup-builder-content-wrapper {
        position: relative !important; /* Normal document flow */
        top: auto !important;
        left: auto !important;
        transform: none !important;
        width: 100% !important;
        height: auto !important;
        box-sizing: border-box !important;
        overflow: visible !important;
        background: transparent !important;
        border: none !important;
    }

    /* Inner popup content card: dark glassmorphism card that defines the popup visual shape */
    .sg-popup-content,
    .sgpb-content,
    .sgpb-theme-1-content,
    .spb-popup-main-container,
    .elementor-popup-modal,
    [id^="sg-popup-content-wrapper-"] .sgpb-content,
    .sg-popup-builder-content .sgpb-content {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        margin: 0 auto !important;
        padding: 16px !important;
        border-radius: 16px !important;
        box-shadow: 0 25px 50px rgba(0, 0, 0, 0.85) !important;
        background: #141414 !important; /* Premium deep dark space card */
        border: 1px solid rgba(255, 255, 255, 0.1) !important;
        box-sizing: border-box !important;
        overflow: visible !important;
        position: relative !important;
        top: auto !important;
        left: auto !important;
        transform: none !important;
    }

    /* Force all image & iframe assets inside the popup to scale cleanly to 100% */
    .sg-popup-content img,
    .sgpb-content img,
    .sgpb-theme-1-content img,
    .elementor-popup-modal img,
    [id^="sg-popup-content-wrapper-"] img,
    .sg-popup-builder-content img,
    .sgpb-content iframe,
    .sg-popup-content iframe {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        border-radius: 8px !important;
        box-sizing: border-box !important;
    }

    /* OVERRIDE LAZY-LOAD INLINE POSITIONING: Bring the preloaded image back into the viewport */
    .sg-popup-content img,
    .sgpb-content img,
    .sgpb-theme-1-content img,
    .elementor-popup-modal img,
    [id^="sg-popup-content-wrapper-"] img,
    .sg-popup-builder-content img,
    .sgpb-preloaded-image-2898 {
        position: relative !important;
        right: auto !important;
        left: auto !important;
        top: auto !important;
        bottom: auto !important;
    }
    
    /* Set minimum height specifically for iframes to prevent collapsing, while keeping images responsive */
    .sgpb-content iframe,
    .sg-popup-content iframe {
        min-height: 280px !important;
        border: none !important;
    }
    
    .sg-popup-content img,
    .sgpb-content img,
    .sgpb-theme-1-content img,
    .elementor-popup-modal img,
    [id^="sg-popup-content-wrapper-"] img,
    .sg-popup-builder-content img {
        min-height: 0 !important;
    }

    /* Centered, highly visible close buttons */
    .sgpb-close-button,
    .sgpb-close-button-one,
    .sgpb-close-button-two,
    .sg-popup-close,
    .elementor-templates-modal__close,
    [id^="sg-popup-content-wrapper-"] .sgpb-close-button,
    .sg-popup-builder-content .sgpb-close-button {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        position: absolute !important;
        width: 38px !important;
        height: 38px !important;
        line-height: 38px !important;
        font-size: 24px !important;
        top: -12px !important;
        right: -12px !important;
        background: #ffc107 !important; /* Premium gold close button */
        color: #000000 !important;
        border-radius: 50% !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5) !important;
        text-align: center !important;
        cursor: pointer !important;
        z-index: 1000000 !important;
    }

    /* Fix mobile Safari / WebKit click event bubbling on the overlay so taps can close the popup */
    .sgpb-popup-overlay,
    .sg-popup-overlay,
    [class*="sgpb-popup-overlay"],
    [class*="sg-popup-overlay"] {
        cursor: pointer !important;
        pointer-events: auto !important;
        z-index: 99999997 !important; /* Forces overlay above the page content */
    }

    /* Allow clicks/touches to pass through the full-screen dialog wrapper to the overlay below it */
    .sgpb-popup-dialog-main-div-wrapper,
    [class*="sgpb-popup-dialog-main-div-wrapper"],
    .sgpb-main-popup-data-container,
    [class*="sgpb-main-popup-data-container"],
    .sgpb-main-popup-data-container-2898 {
        pointer-events: none !important;
        z-index: 99999998 !important; /* Above the overlay */
    }

    /* Re-enable pointer events for the actual popup dialog container so users can tap content, links, and close buttons */
    .sgpb-popup-dialog-main-div,
    .sgpb-popup-dialog-main-div-1,
    div[id*="sgpb-popup-dialog-"],
    .sg-popup-content,
    .sgpb-content,
    .sgpb-theme-1-content,
    .sgpb-close-button {
        pointer-events: auto !important;
        z-index: 99999999 !important; /* Above the wrapper & overlay */
    }

    /* Force Popup Builder floating button trigger to be visible on mobile/tablet */
    html body .sgpb-floating-button,
    html body [class*="sgpb-floating-button"] {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        z-index: 99999 !important;
        font-size: 13px !important; /* Slightly smaller text for mobile screens */
        border-color: #00f2fe !important; /* Cyber-cyan border override to match branding! */
        box-shadow: 0 0 10px rgba(0, 242, 254, 0.4) !important;
    }
}

/* --------------------------------------------------------------------------
   6. VISITOR PROTECTION & ADMIN BAR CORRECTION
   -------------------------------------------------------------------------- */
body:not(.logged-in) #wpadminbar {
    display: none !important;
}

body:not(.logged-in) {
    margin-top: 0px !important;
}
html:not(.logged-in) {
    margin-top: 0px !important;
}


/* --------------------------------------------------------------------------
   7. SMART SLIDER 3: ULTRA-SLEEK CINEMATIC BANNER CONVERSION
   -------------------------------------------------------------------------- */

/* Force the Smart Slider container into a thin, elegant format */
.n2-section-smartslider,
.n2-ss-slider,
#n2-ss-2,
#n2-ss-2-align,
.n2-ss-slider-wrapper-inside,
.n2-ss-slider-1,
.n2-ss-slider-2,
.n2-ss-slider-3,
.n2-ss-slider-4,
.n2-ss-slide,
.n2-ss-slide-background,
.n2-ss-slide-backgrounds {
    height: 380px !important; /* Perfect modern thin banner height on desktop */
    max-height: 380px !important;
}

/* Prevent the internal aspect ratio SVG from pushing the slider height */
svg.n2-ss-preserve-size--slider,
svg.n2-ss-preserve-size {
    height: 380px !important;
    max-height: 380px !important;
    width: auto !important;
}

/* Ensure the background images fill the thin area beautifully and remain sharp */
.n2-ss-slide-background-image img,
.n2-ss-slide-background img,
.n2-ss-slide img {
    height: 380px !important;
    max-height: 380px !important;
    object-fit: cover !important; /* Elegant center cropping */
    object-position: center !important;
}

/* Position the slide captions/text overlays perfectly in the center of the thinner banner */
.n2-ss-layers-container {
    height: 100% !important;
}

.n2-ss-layer {
    top: 50% !important;
    transform: translateY(-50%) !important;
}

/* Adjust sizes for smaller viewports */
@media only screen and (max-width: 1024px) {
    .n2-section-smartslider,
    .n2-ss-slider,
    #n2-ss-2,
    #n2-ss-2-align,
    .n2-ss-slider-wrapper-inside,
    .n2-ss-slide,
    .n2-ss-slide-background,
    svg.n2-ss-preserve-size--slider,
    svg.n2-ss-preserve-size,
    .n2-ss-slide-background-image img,
    .n2-ss-slide-background img,
    .n2-ss-slide img {
        height: 280px !important;
        max-height: 280px !important;
    }
}

@media only screen and (max-width: 768px) {
    .n2-section-smartslider,
    .n2-ss-slider,
    #n2-ss-2,
    #n2-ss-2-align,
    .n2-ss-slider-wrapper-inside,
    .n2-ss-slide,
    .n2-ss-slide-background,
    svg.n2-ss-preserve-size--slider,
    svg.n2-ss-preserve-size,
    .n2-ss-slide-background-image img,
    .n2-ss-slide-background img,
    .n2-ss-slide img {
        height: 200px !important;
        max-height: 200px !important;
    }
}


/* Ensure the outer header containers have no side padding, allowing the menu bar to bleed edge-to-edge */
header,
.site-header,
.hfe-header,
.elementor-location-header,
[data-elementor-type="header"],
[data-elementor-type="hfe"],
.elementor-section:has(.hfe-nav-menu),
.elementor-section:has(.elementor-nav-menu),
.elementor-section:has(.main-header-menu),
.elementor-element-6f0c463 {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* FORCE VERTICAL STACKING & ALLOW FLEXIBLE CONTAINER HEIGHTS ON ALL VIEWPORTS */
header,
.site-header,
.hfe-header,
.elementor-location-header,
[data-elementor-type="header"],
[data-elementor-type="hfe"],
.elementor-element-6f0c463,
.main-header-bar,
.main-header-bar-wrap,
.ast-builder-grid-row-container-wrap,
.ast-builder-grid-row-container {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    line-height: normal !important;
}

/* Force container margins and padding to zero for a true edge-to-edge navigation strip */
header .elementor-container,
header .elementor-row,
.site-header .elementor-container,
.site-header .elementor-row,
.hfe-header .elementor-container,
.hfe-header .elementor-row,
.elementor-location-header .elementor-container,
.elementor-location-header .elementor-row,
[data-elementor-type="header"] .elementor-container,
[data-elementor-type="header"] .elementor-row,
[data-elementor-type="hfe"] .elementor-container,
[data-elementor-type="hfe"] .elementor-row,
.elementor-element-6f0c463 .elementor-container,
.elementor-element-6f0c463 .elementor-row,
.main-header-bar .ast-container,
.ast-builder-grid-row,
.ast-builder-grid-row-container {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    box-sizing: border-box !important;
}

/* FORCE ALL HEADER COLUMNS TO STACK VERTICALLY AT 100% WIDTH */
header .elementor-column,
header [class*="elementor-col-"],
.site-header .elementor-column,
.site-header [class*="elementor-col-"],
.hfe-header .elementor-column,
.hfe-header [class*="elementor-col-"],
.elementor-location-header .elementor-column,
.elementor-location-header [class*="elementor-col-"],
[data-elementor-type="header"] .elementor-column,
[data-elementor-type="header"] [class*="elementor-col-"],
[data-elementor-type="hfe"] .elementor-column,
[data-elementor-type="hfe"] [class*="elementor-col-"],
.elementor-element-6f0c463 .elementor-column,
.elementor-element-6f0c463 [class*="elementor-col-"] {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    margin: 0 auto !important;
    float: none !important;
    position: relative !important;
    box-sizing: border-box !important;
}

/* TOP TIER: Center logo and society branding text columns in the first column row */
header .elementor-column:first-child,
.site-header .elementor-column:first-child,
.hfe-header .elementor-column:first-child,
.elementor-location-header .elementor-column:first-child,
[data-elementor-type="header"] .elementor-column:first-child,
.elementor-element-6f0c463 .elementor-column:first-child {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    padding: 24px 20px 18px 20px !important; /* Ample breathing room for top branding */
    background: transparent !important;
}

/* BOTTOM TIER: STYLE THE NAVIGATION COLUMN AS A DISTINCT, FULL-WIDTH HORIZONTAL GLASS BAR */
header .elementor-column:last-child,
.site-header .elementor-column:last-child,
.hfe-header .elementor-column:last-child,
.elementor-location-header .elementor-column:last-child,
[data-elementor-type="header"] .elementor-column:last-child,
.elementor-element-6f0c463 .elementor-column:last-child {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    margin: 0 !important;
    
    /* Visual separation: distinct horizontal glassmorphism bar */
    background: rgba(4, 8, 23, 0.98) !important; /* Sleek extremely dark space blue / black */
    backdrop-filter: blur(15px) !important;
    -webkit-backdrop-filter: blur(15px) !important;
    border-top: 1.5px solid rgba(0, 242, 254, 0.3) !important; /* Glowing neon cyan top line */
    border-bottom: 1.5px solid rgba(99, 102, 241, 0.3) !important; /* Glowing indigo bottom line */
    padding: 10px 20px !important; /* Premium menu padding */
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6) !important;
}

/* Strip custom absolute/fixed positioning on header widgets to prevent overlaying */
header .elementor-widget,
header .elementor-widget-container,
.site-header .elementor-widget,
.site-header .elementor-widget-container,
.hfe-header .elementor-widget,
.hfe-header .elementor-widget-container,
.elementor-location-header .elementor-widget,
.elementor-location-header .elementor-widget-container,
[data-elementor-type="header"] .elementor-widget,
[data-elementor-type="header"] .elementor-widget-container,
[data-elementor-type="hfe"] .elementor-widget,
[data-elementor-type="hfe"] .elementor-widget-container,
.elementor-section:has(.hfe-nav-menu) .elementor-widget,
.elementor-section:has(.elementor-nav-menu) .elementor-widget,
.elementor-section:has(.main-header-menu) .elementor-widget {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 auto !important;
}

/* EXPLICITLY PROTECT DROPDOWN SUBMENUS AND OVERLAYS FROM RELATIVE POSITIONING RESET */
header .sub-menu,
header .sub-menu *,
.site-header .sub-menu,
.site-header .sub-menu *,
.hfe-header .sub-menu,
.hfe-header .sub-menu *,
.elementor-location-header .sub-menu,
.elementor-location-header .sub-menu *,
[data-elementor-type="header"] .sub-menu,
[data-elementor-type="header"] .sub-menu *,
[data-elementor-type="hfe"] .sub-menu,
[data-elementor-type="hfe"] .sub-menu *,
.elementor-nav-menu--dropdown,
.hfe-nav-menu--dropdown,
.elementor-nav-menu--dropdown *,
.hfe-nav-menu--dropdown * {
    position: absolute !important;
}

/* Center logo and society name text horizontally inside their column row */
header .elementor-widget-wrap,
.site-header .elementor-widget-wrap,
.hfe-header .elementor-widget-wrap,
.elementor-location-header .elementor-widget-wrap,
[data-elementor-type="header"] .elementor-widget-wrap,
[data-elementor-type="hfe"] .elementor-widget-wrap,
.elementor-element-6f0c463 .elementor-widget-wrap,
.ast-site-identity,
.site-branding,
.ast-builder-layout-element {
    justify-content: center !important;
    align-items: center !important;
    display: flex !important;
    flex-wrap: wrap !important;
    width: 100% !important;
    overflow: visible !important;
    height: auto !important;
    box-sizing: border-box !important;
}

/* Desktop layout: Side-by-side logo and branding text */
@media only screen and (min-width: 922px) {
    header .elementor-widget-wrap,
    .site-header .elementor-widget-wrap,
    .hfe-header .elementor-widget-wrap,
    .elementor-location-header .elementor-widget-wrap,
    [data-elementor-type="header"] .elementor-widget-wrap,
    [data-elementor-type="hfe"] .elementor-widget-wrap,
    .elementor-element-6f0c463 .elementor-widget-wrap,
    .ast-site-identity,
    .site-branding,
    .ast-builder-layout-element {
        flex-direction: row !important;
        gap: 20px !important;
    }
}

/* Tablet/Mobile layout: Stacked logo and branding text */
@media only screen and (max-width: 921px) {
    header .elementor-widget-wrap,
    .site-header .elementor-widget-wrap,
    .hfe-header .elementor-widget-wrap,
    .elementor-location-header .elementor-widget-wrap,
    [data-elementor-type="header"] .elementor-widget-wrap,
    [data-elementor-type="hfe"] .elementor-widget-wrap,
    .elementor-element-6f0c463 .elementor-widget-wrap,
    .ast-site-identity,
    .site-branding,
    .ast-builder-layout-element {
        flex-direction: column !important;
        gap: 8px !important;
    }
}

/* Center navigation menu list in their dedicated row, preventing any vertical shifts */
header .hfe-nav-menu,
header .elementor-nav-menu,
.site-header .hfe-nav-menu,
.site-header .elementor-nav-menu,
.hfe-header .hfe-nav-menu,
.hfe-header .elementor-nav-menu,
.elementor-location-header .hfe-nav-menu,
.elementor-location-header .elementor-nav-menu,
[data-elementor-type="header"] .hfe-nav-menu,
[data-elementor-type="header"] .elementor-nav-menu,
[data-elementor-type="hfe"] .hfe-nav-menu,
[data-elementor-type="hfe"] .elementor-nav-menu,
.elementor-element-6f0c463 .hfe-nav-menu,
.elementor-element-6f0c463 .elementor-nav-menu,
.main-header-menu,
.ast-builder-menu-1,
.ast-main-header-bar-alignment {
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    display: flex !important;
    position: relative !important;
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    transform: none !important;
    height: auto !important;
    margin: 0 auto !important;
}

/* Desktop Menu Item Hover & Styling */
@media only screen and (min-width: 922px) {
    html body .hfe-nav-menu .hfe-menu-item a,
    html body .main-header-menu .menu-item a,
    header .menu-item a,
    .site-header .menu-item a,
    .hfe-header .menu-item a,
    .elementor-location-header .menu-item a,
    [data-elementor-type="header"] .menu-item a,
    [data-elementor-type="hfe"] .menu-item a {
        font-family: 'Barlow Semi Condensed', sans-serif !important;
        font-weight: 600 !important;
        font-size: 13.5px !important;
        letter-spacing: 0.08em !important;
        text-transform: uppercase !important;
        color: #e2e8f0 !important;
        padding: 8px 18px !important;
        margin: 0 5px !important;
        border-radius: 20px !important;
        transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
        border: 1px solid transparent !important;
        position: relative !important;
    }

    html body .hfe-nav-menu .hfe-menu-item a::after,
    html body .main-header-menu .menu-item a::after,
    header .menu-item a::after,
    .site-header .menu-item a::after,
    .hfe-header .menu-item a::after,
    [data-elementor-type="header"] .menu-item a::after {
        content: '' !important;
        position: absolute !important;
        width: 0 !important;
        height: 2px !important;
        bottom: 0 !important;
        left: 50% !important;
        background: #00f2fe !important;
        transition: all 0.3s ease !important;
        transform: translateX(-50%) !important;
        box-shadow: 0 0 10px rgba(0, 242, 254, 0.5) !important;
    }

    html body .hfe-nav-menu .hfe-menu-item a:hover,
    html body .main-header-menu .menu-item a:hover,
    header .menu-item a:hover,
    .site-header .menu-item a:hover,
    .hfe-header .menu-item a:hover,
    .elementor-location-header .menu-item a:hover,
    [data-elementor-type="header"] .menu-item a:hover,
    [data-elementor-type="hfe"] .menu-item a:hover {
        color: #00f2fe !important;
        background: rgba(255, 255, 255, 0.04) !important;
        border-color: rgba(0, 242, 254, 0.25) !important;
        box-shadow: 0 0 15px rgba(0, 242, 254, 0.15) !important;
        text-shadow: 0 0 8px rgba(0, 242, 254, 0.4) !important;
    }

    html body .hfe-nav-menu .hfe-menu-item a:hover::after,
    html body .main-header-menu .menu-item a:hover::after,
    header .menu-item a:hover::after {
        width: 60% !important;
    }

    html body .hfe-nav-menu .current-menu-item a,
    html body .main-header-menu .current-menu-item a,
    header .current-menu-item a,
    .site-header .current-menu-item a,
    .hfe-header .current-menu-item a,
    .elementor-location-header .current-menu-item a,
    [data-elementor-type="header"] .current-menu-item a,
    [data-elementor-type="hfe"] .current-menu-item a {
        color: #00f2fe !important;
        border-color: rgba(0, 242, 254, 0.2) !important;
        background: rgba(0, 242, 254, 0.05) !important;
    }
}

/* Tablet & Mobile Menu Custom Styling & Centering */
@media only screen and (max-width: 921px) {
    header .ast-mobile-header-wrap,
    header .main-header-menu-toggle,
    header .ast-mobile-menu-trigger-minimal,
    header .elementor-menu-toggle,
    .site-header .ast-mobile-header-wrap,
    .site-header .main-header-menu-toggle,
    .site-header .ast-mobile-menu-trigger-minimal,
    .site-header .elementor-menu-toggle,
    .hfe-header .ast-mobile-header-wrap,
    .hfe-header .main-header-menu-toggle,
    .hfe-header .ast-mobile-menu-trigger-minimal,
    .hfe-header .elementor-menu-toggle,
    .elementor-location-header .ast-mobile-header-wrap,
    .elementor-location-header .main-header-menu-toggle,
    .elementor-location-header .ast-mobile-menu-trigger-minimal,
    .elementor-location-header .elementor-menu-toggle,
    [data-elementor-type="header"] .ast-mobile-header-wrap,
    [data-elementor-type="header"] .main-header-menu-toggle,
    [data-elementor-type="header"] .ast-mobile-menu-trigger-minimal,
    [data-elementor-type="header"] .elementor-menu-toggle,
    [data-elementor-type="hfe"] .ast-mobile-header-wrap,
    [data-elementor-type="hfe"] .main-header-menu-toggle,
    [data-elementor-type="hfe"] .ast-mobile-menu-trigger-minimal,
    [data-elementor-type="hfe"] .elementor-menu-toggle {
        display: inline-flex !important;
        justify-content: center !important;
        align-items: center !important;
        margin: 8px auto !important;
        float: none !important;
    }

    html body .ast-mobile-menu-trigger-minimal,
    html body .elementor-menu-toggle,
    html body .menu-toggle {
        min-width: 46px !important;
        min-height: 46px !important;
        background: rgba(255, 255, 255, 0.04) !important;
        border: 1px solid rgba(0, 242, 254, 0.25) !important;
        border-radius: 10px !important;
        color: #00f2fe !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
        transition: all 0.3s ease !important;
    }

    html body .ast-mobile-menu-trigger-minimal:hover,
    html body .elementor-menu-toggle:hover {
        background: rgba(0, 242, 254, 0.1) !important;
        border-color: #00f2fe !important;
        box-shadow: 0 0 15px rgba(0, 242, 254, 0.4) !important;
    }

    html body .ast-mobile-header-content,
    html body .ast-mobile-header-content .main-header-bar-navigation,
    html body .main-header-bar-navigation .main-header-menu,
    header .main-header-menu,
    .site-header .main-header-menu,
    .hfe-header .main-header-menu,
    .elementor-location-header .main-header-menu,
    [data-elementor-type="header"] .main-header-menu,
    [data-elementor-type="hfe"] .main-header-menu {
        width: 100% !important;
        background: rgba(4, 8, 23, 0.96) !important;
        backdrop-filter: blur(20px) !important;
        -webkit-backdrop-filter: blur(20px) !important;
        border: 1px solid rgba(255, 255, 255, 0.08) !important;
        border-radius: 16px !important;
        margin-top: 10px !important;
        box-shadow: 0 15px 35px rgba(0, 0, 0, 0.6) !important;
    }
}

/* Society Branding Name Prominence & Dynamic Text Sizing */
header .site-title a,
header .site-name a,
header .elementor-widget-theme-site-title a,
header .elementor-widget-theme-site-title h1,
.site-header .site-title a,
.site-header .site-name a,
.hfe-header .site-title a,
.hfe-header .site-name a,
.elementor-location-header .site-title a,
.elementor-location-header .site-name a,
[data-elementor-type="header"] .site-title a,
[data-elementor-type="header"] .site-name a,
[data-elementor-type="hfe"] .site-title a,
[data-elementor-type="hfe"] .site-name a,
.elementor-widget-theme-site-title p,
.elementor-widget-theme-site-title h1,
.elementor-widget-theme-site-title span,
.elementor-widget-theme-site-title *,
.elementor-widget:has(.site-title) p,
.elementor-widget:has(.site-title) h1,
.elementor-widget:has(.site-name) p,
.elementor-widget:has(.site-name) h1,
.elementor-element-c684a3f p,
.elementor-element-c684a3f h1,
.elementor-element-c684a3f span {
    font-family: 'Barlow Semi Condensed', sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    color: #ffffff !important;
    background: linear-gradient(135deg, #ffffff 0%, #c7d2fe 50%, #6366f1 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    text-shadow: 0 0 15px rgba(99, 102, 241, 0.35) !important;
    transition: all 0.3s ease !important;
    text-align: center !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-block !important;
}

/* Font size responsive scaling */
@media only screen and (min-width: 1200px) {
    header .site-title a,
    header .site-name a,
    header .elementor-widget-theme-site-title a,
    header .elementor-widget-theme-site-title h1,
    .site-header .site-title a,
    .site-header .site-name a,
    .hfe-header .site-title a,
    .hfe-header .site-name a,
    .elementor-location-header .site-title a,
    .elementor-location-header .site-name a,
    [data-elementor-type="header"] .site-title a,
    [data-elementor-type="header"] .site-name a,
    .elementor-element-c684a3f p {
        font-size: 23px !important;
        letter-spacing: 0.16em !important;
        white-space: nowrap !important;
    }
}
@media only screen and (max-width: 1199px) and (min-width: 922px) {
    header .site-title a,
    header .site-name a,
    header .elementor-widget-theme-site-title a,
    header .elementor-widget-theme-site-title h1,
    .site-header .site-title a,
    .site-header .site-name a,
    .hfe-header .site-title a,
    .hfe-header .site-name a,
    .elementor-location-header .site-title a,
    .elementor-location-header .site-name a,
    [data-elementor-type="header"] .site-title a,
    [data-elementor-type="header"] .site-name a,
    .elementor-element-c684a3f p {
        font-size: 19px !important;
        letter-spacing: 0.12em !important;
        white-space: nowrap !important;
    }
}
@media only screen and (max-width: 921px) and (min-width: 600px) {
    header .site-title a,
    header .site-name a,
    header .elementor-widget-theme-site-title a,
    header .elementor-widget-theme-site-title h1,
    .site-header .site-title a,
    .site-header .site-name a,
    .hfe-header .site-title a,
    .hfe-header .site-name a,
    .elementor-location-header .site-title a,
    .elementor-location-header .site-name a,
    [data-elementor-type="header"] .site-title a,
    [data-elementor-type="header"] .site-name a,
    .elementor-element-c684a3f p {
        font-size: 16px !important;
        letter-spacing: 0.08em !important;
        white-space: normal !important; /* Wrap cleanly */
        line-height: 1.4 !important;
    }
}
@media only screen and (max-width: 599px) {
    header .site-title a,
    header .site-name a,
    header .elementor-widget-theme-site-title a,
    header .elementor-widget-theme-site-title h1,
    .site-header .site-title a,
    .site-header .site-name a,
    .hfe-header .site-title a,
    .hfe-header .site-name a,
    .elementor-location-header .site-title a,
    .elementor-location-header .site-name a,
    [data-elementor-type="header"] .site-title a,
    [data-elementor-type="header"] .site-name a,
    .elementor-element-c684a3f p {
        font-size: 13.5px !important;
        letter-spacing: 0.06em !important;
        white-space: normal !important; /* Wrap cleanly */
        line-height: 1.4 !important;
        padding: 0 10px !important;
    }
}

header .site-title a:hover,
header .site-name a:hover,
.site-header .site-title a:hover,
.site-header .site-name a:hover,
.elementor-element-c684a3f p:hover {
    background: linear-gradient(135deg, #00f2fe 0%, #a5b4fc 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    text-shadow: 0 0 15px rgba(0, 242, 254, 0.5) !important;
}

/* Spacing overrides for transparent header pages */
html body.ast-theme-transparent-header.page-template-template-homepage-futuristic #content.site-content,
html body.ast-theme-transparent-header.page-template-template-homepage-futuristic-php #content.site-content,
html body.ast-theme-transparent-header.home #content.site-content,
html body.ast-theme-transparent-header #content.site-content {
    transition: padding-top 0.3s ease !important;
}

@media only screen and (min-width: 1200px) {
    html body.ast-theme-transparent-header #content.site-content,
    html body.ast-theme-transparent-header.home #content.site-content {
        padding-top: 220px !important; /* Increased to account for the physical bar design */
    }
}
@media only screen and (max-width: 1199px) and (min-width: 922px) {
    html body.ast-theme-transparent-header #content.site-content,
    html body.ast-theme-transparent-header.home #content.site-content {
        padding-top: 200px !important;
    }
}
@media only screen and (max-width: 921px) and (min-width: 769px) {
    html body.ast-theme-transparent-header #content.site-content,
    html body.ast-theme-transparent-header.home #content.site-content {
        padding-top: 230px !important;
    }
}
@media only screen and (max-width: 768px) {
    html body.ast-theme-transparent-header #content.site-content,
    html body.ast-theme-transparent-header.home #content.site-content {
        padding-top: 190px !important;
    }
}

/* ==========================================================================
   ADVANCED FLEXBOX CONTAINER OVERRIDES FOR MODERN ELEMENTOR LAYOUTS (e-con)
   ========================================================================== */

/* Target the specific parent container */
.elementor-element.elementor-element-6f0c463.e-con-full,
.elementor-element.elementor-element-6f0c463.e-con {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important; /* Force wrapping of the 100% menu bar */
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-top: 20px !important;
    padding-bottom: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
}

/* Group Logo and Society Name horizontally in Row 1 */
.elementor-element.elementor-element-6f0c463 .elementor-element-27111a4,
.elementor-element.elementor-element-6f0c463 .elementor-element-c684a3f {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 12px 18px 12px !important; /* Spacing below branding row */
    position: relative !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
}

.elementor-element.elementor-element-6f0c463 .elementor-element-27111a4 img {
    max-width: 75px !important;
    height: auto !important;
}

.elementor-element.elementor-element-6f0c463 .elementor-element-c684a3f p,
.elementor-element.elementor-element-6f0c463 .elementor-element-c684a3f * {
    font-size: 23px !important;
    letter-spacing: 0.16em !important;
    white-space: nowrap !important;
}

/* Transform Absolutely Positioned Menu Widget to a Dedicated Bottom Tier Bar */
.elementor-element.elementor-element-6f0c463 .elementor-element-98cc7da {
    position: relative !important; /* Strip absolute positioning */
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important; /* Force to take 100% width and wrap */
    margin: 0 !important;
    
    /* Visual separation: distinct horizontal glassmorphism bar */
    background: rgba(4, 8, 23, 0.98) !important; /* Sleek extremely dark space blue / black */
    backdrop-filter: blur(15px) !important;
    -webkit-backdrop-filter: blur(15px) !important;
    border-top: 1.5px solid rgba(0, 242, 254, 0.3) !important; /* Glowing neon cyan top line */
    border-bottom: 1.5px solid rgba(99, 102, 241, 0.3) !important; /* Glowing indigo bottom line */
    padding: 12px 20px !important; /* Premium menu padding */
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6) !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    box-sizing: border-box !important;
}

/* Center menu links list inside the container */
.elementor-element.elementor-element-6f0c463 .elementor-element-98cc7da .hfe-nav-menu,
.elementor-element.elementor-element-6f0c463 .elementor-element-98cc7da .elementor-nav-menu,
.elementor-element.elementor-element-6f0c463 .elementor-element-98cc7da .hfe-nav-menu__layout-horizontal {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    margin: 0 auto !important;
}

/* Protect Submenu Dropdowns from Relative positioning */
.elementor-element.elementor-element-6f0c463 .elementor-element-98cc7da .sub-menu,
.elementor-element.elementor-element-6f0c463 .elementor-element-98cc7da .sub-menu * {
    position: absolute !important;
}

/* Mobile & Tablet Specific responsive overrides for modern flex elements */
@media only screen and (max-width: 921px) {
    .elementor-element.elementor-element-6f0c463.e-con-full,
    .elementor-element.elementor-element-6f0c463.e-con {
        flex-direction: column !important; /* Stack branding vertically on small screens */
        padding-top: 15px !important;
    }
    
    .elementor-element.elementor-element-6f0c463 .elementor-element-27111a4,
    .elementor-element.elementor-element-6f0c463 .elementor-element-c684a3f {
        margin: 0 0 10px 0 !important;
    }
    
    .elementor-element.elementor-element-6f0c463 .elementor-element-c684a3f p,
    .elementor-element.elementor-element-6f0c463 .elementor-element-c684a3f * {
        font-size: 16px !important;
        letter-spacing: 0.08em !important;
        white-space: normal !important;
        text-align: center !important;
        line-height: 1.4 !important;
    }
    
    .elementor-element.elementor-element-6f0c463 .elementor-element-27111a4 img {
        max-width: 65px !important;
    }
    
    .elementor-element.elementor-element-6f0c463 .elementor-element-98cc7da {
        padding: 8px 15px !important;
    }
}

@media only screen and (max-width: 599px) {
    .elementor-element.elementor-element-6f0c463 .elementor-element-c684a3f p,
    .elementor-element.elementor-element-6f0c463 .elementor-element-c684a3f * {
        font-size: 13px !important;
        letter-spacing: 0.05em !important;
        padding: 0 10px !important;
    }
}

/* ==========================================================================
   ULTRA-UNIFIED PREMIUM FOOTER ARRANGEMENT (v1.2.5)
   ========================================================================== */

/* Full Bleed Footer Container */
footer,
footer#colophon,
.site-footer,
.site-footer-section,
.elementor-2173 {
    background: rgba(4, 8, 23, 0.99) !important; /* Deepest galactic space blue */
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    border-top: 1.5px solid rgba(0, 242, 254, 0.35) !important; /* Glowing cyber-cyan top border */
    padding: 70px 20px 40px 20px !important;
    color: #cbd5e1 !important;
    box-shadow: 0 -15px 50px rgba(0, 0, 0, 0.6) !important;
    z-index: 99 !important;
    position: relative !important;
}

/* Force standard row containers to hold all widgets in a single neat row on desktop */
footer .elementor-container,
footer .elementor-row,
.site-footer .ast-container,
.site-footer .ast-footer-row,
.elementor-2173 .elementor-container {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    align-items: stretch !important; /* Match heights across columns */
    max-width: 1380px !important; /* Spacious fluid boundary */
    margin: 0 auto !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Clean Column spacing for widgets: Fit 5 columns on desktop in a single tier */
footer .elementor-column,
footer .widget-area,
footer [class*="elementor-col-"],
.elementor-2173 .elementor-column {
    flex: 1 1 210px !important; /* Dynamic column sizing */
    width: auto !important;
    max-width: 100% !important;
    margin: 0 15px 35px 15px !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
}

/* Align and clean up specific inner widget containers */
footer .elementor-widget-wrap,
footer .widget-content {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    text-align: left !important;
    width: 100% !important;
}

/* UNIFIED FOOTER HEADINGS: Glowing Cyber Cyan */
footer h1, footer h2, footer h3, footer h4, footer h5, footer h6,
footer .widget-title, footer .elementor-heading-title {
    font-family: 'Barlow Semi Condensed', sans-serif !important;
    font-weight: 700 !important;
    font-size: 14.5px !important;
    letter-spacing: 0.1em !important;
    color: #00f2fe !important;
    text-shadow: 0 0 12px rgba(0, 242, 254, 0.45) !important;
    margin: 0 0 20px 0 !important;
    padding: 0 !important;
    text-transform: uppercase !important;
}

/* UNIFIED FOOTER BODY TEXT: Holographic Muted Cyber-Blue & Roboto Font */
footer p,
footer span,
footer li,
footer a,
footer td,
footer th,
footer div:not(.elementor-widget-heading):not(.widget-title):not(.elementor-widget-container):not(.elementor-widget-wrap) {
    font-family: 'Roboto', sans-serif !important;
    font-weight: 500 !important;
    font-size: 13px !important;
    line-height: 1.75 !important;
    color: #a5b4fc !important; /* Premium muted cyber-blue text */
    text-shadow: 0 0 8px rgba(165, 180, 252, 0.25) !important; /* Indigo holographic glow */
    text-transform: uppercase !important; /* Mapped to uppercase for uniform visual layout */
    transition: all 0.3s ease !important;
    margin-bottom: 0 !important;
}

/* Add custom margin for spacing between text blocks */
footer p {
    margin-bottom: 12px !important;
}

/* UNIFIED FOOTER LINKS AND HOVER EFFECTS */
footer a {
    color: #a5b4fc !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    border-bottom: 1px solid transparent !important;
}

footer a:hover {
    color: #00f2fe !important;
    text-shadow: 0 0 10px rgba(0, 242, 254, 0.5) !important;
    border-bottom-color: rgba(0, 242, 254, 0.3) !important;
}

/* Social icons layout alignment */
footer .elementor-social-icon {
    background-color: rgba(255, 255, 255, 0.02) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: 8px !important;
    margin-top: 15px !important;
    margin-right: 8px !important;
    transition: all 0.3s ease !important;
}

footer .elementor-social-icon:hover {
    background-color: #00f2fe !important;
    border-color: #00f2fe !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 0 15px rgba(0, 242, 254, 0.4) !important;
}

footer .elementor-social-icon svg {
    fill: #ffffff !important;
}

footer .elementor-social-icon:hover svg {
    fill: #000000 !important;
}

/* Below Footer/Copyright Bar - Centered and full-width */
footer .site-below-footer-wrap,
footer .ast-below-footer-bar,
footer .elementor-element-b33c6c1,
.elementor-2173 .elementor-element-b33c6c1 {
    width: 100% !important;
    flex: 0 0 100% !important;
    border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
    padding-top: 25px !important;
    margin-top: 15px !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    align-items: center !important;
}

/* Mobile & Tablet Specific responsive overrides */
@media only screen and (max-width: 921px) {
    footer .elementor-container,
    footer .elementor-row,
    .site-footer .ast-container,
    .elementor-2173 .elementor-container {
        flex-direction: column !important; /* Stack vertically on small screens */
        align-items: center !important;
    }
    
    footer .elementor-column,
    footer .widget-area,
    .elementor-2173 .elementor-column {
        flex: 0 0 100% !important;
        width: 100% !important;
        margin: 0 0 35px 0 !important;
        align-items: center !important; /* Center text on mobile */
    }
    
    footer .elementor-widget-wrap,
    footer .widget-content {
        align-items: center !important;
        text-align: center !important;
    }
    
    footer p, footer span, footer li, footer a, footer div {
        text-align: center !important;
    }
    
    footer .elementor-social-icon {
        margin-right: 4px !important;
        margin-left: 4px !important;
    }
    
    footer .site-below-footer-wrap,
    footer .ast-below-footer-bar,
    footer .elementor-element-b33c6c1 {
        flex-direction: column !important;
        align-items: center !important;
        gap: 15px !important;
    }
}

/* ==========================================================================
   PROFESSIONAL COPYRIGHT BAR & UNDERSTATED BELOW-FOOTER STYLES (v1.2.6)
   ========================================================================== */

/* Target below footer wrapper, copyright container, and widgets specifically */
footer .site-below-footer-wrap,
footer .ast-below-footer-bar,
footer .elementor-element-b33c6c1,
.elementor-2173 .elementor-element-b33c6c1,
.ast-small-footer,
.site-below-footer-wrap,
.ast-below-footer-bar {
    background: rgba(2, 4, 12, 0.99) !important; /* Extremely dark elegant background */
    border-top: 1.5px solid rgba(255, 255, 255, 0.05) !important; /* Subtle separate line */
    padding: 22px 20px !important;
    margin-top: 25px !important;
}

/* De-glorify and professionalize the copyright bar text */
footer .site-below-footer-wrap p,
footer .site-below-footer-wrap span,
footer .site-below-footer-wrap a,
footer .ast-below-footer-bar p,
footer .ast-below-footer-bar span,
footer .ast-below-footer-bar a,
footer .elementor-element-b33c6c1 p,
footer .elementor-element-b33c6c1 span,
footer .elementor-element-b33c6c1 a,
.elementor-2173 .elementor-element-b33c6c1 p,
.elementor-2173 .elementor-element-b33c6c1 span,
.elementor-2173 .elementor-element-b33c6c1 a,
.ast-small-footer-section,
.ast-small-footer-section p,
.ast-small-footer-section span,
.ast-small-footer-section a,
.ast-footer-copyright,
.ast-footer-copyright p,
.ast-footer-copyright span,
.ast-footer-copyright a {
    font-family: 'Roboto', sans-serif !important;
    font-weight: 400 !important;
    font-size: 11.5px !important; /* Smaller, neat typography */
    text-transform: none !important; /* Professional mixed-case format */
    color: #64748b !important; /* Sleek, understated slate grey */
    text-shadow: none !important; /* Absolutely no neon glows */
    letter-spacing: 0.05em !important;
    line-height: 1.6 !important;
}

/* Hover highlights for links in below footer bar */
footer .site-below-footer-wrap a:hover,
footer .ast-below-footer-bar a:hover,
footer .elementor-element-b33c6c1 a:hover,
.elementor-2173 .elementor-element-b33c6c1 a:hover,
.ast-small-footer-section a:hover,
.ast-footer-copyright a:hover {
    color: #00f2fe !important; /* Neon cyan link highlight */
    text-shadow: 0 0 8px rgba(0, 242, 254, 0.4) !important;
    text-decoration: none !important;
}

/* ==========================================================================
   ULTRA-VISIBLE CYBER-CYAN MOBILE BURGER MENU OVERRIDES (v1.2.6)
   ========================================================================== */

/* Target the mobile trigger container */
html body .ast-mobile-menu-trigger-minimal,
html body .elementor-menu-toggle,
html body .menu-toggle,
html body .ast-button-wrap .menu-toggle,
html body [class*="menu-toggle"],
html body [class*="menu-trigger"],
html body .hfe-nav-menu__toggle {
    min-width: 46px !important;
    min-height: 46px !important;
    background: rgba(0, 242, 254, 0.08) !important; /* Subtle transparent neon cyan fill */
    border: 2px solid #00f2fe !important; /* Thick glowing border */
    border-radius: 10px !important;
    box-shadow: 0 0 12px rgba(0, 242, 254, 0.45) !important; /* Neon cyber glow */
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    cursor: pointer !important;
}

/* Force all SVG vectors, paths, icons, spans, lines inside to be glowing neon cyan */
html body .ast-mobile-menu-trigger-minimal span,
html body .elementor-menu-toggle span,
html body .menu-toggle span,
html body .ast-mobile-menu-trigger-minimal i,
html body .elementor-menu-toggle i,
html body .menu-toggle i,
html body .ast-mobile-menu-trigger-minimal svg,
html body .elementor-menu-toggle svg,
html body .menu-toggle svg,
html body .ast-mobile-menu-trigger-minimal svg path,
html body .elementor-menu-toggle svg path,
html body .menu-toggle svg path,
html body [class*="menu-toggle"] span,
html body [class*="menu-toggle"] svg,
html body [class*="menu-toggle"] i,
html body [class*="menu-trigger"] span,
html body [class*="menu-trigger"] svg,
html body [class*="menu-trigger"] i,
html body .hfe-nav-menu__toggle span,
html body .hfe-nav-menu__toggle svg,
html body .hfe-nav-menu__toggle i,
html body .hfe-nav-menu__toggle svg path {
    fill: #00f2fe !important;
    color: #00f2fe !important;
    stroke: #00f2fe !important;
    transition: all 0.3s ease !important;
}

/* Ensure background color is NOT set to cyan on SVGs, icons, and paths (which creates a solid cyan box) */
html body .ast-mobile-menu-trigger-minimal svg,
html body .elementor-menu-toggle svg,
html body .menu-toggle svg,
html body [class*="menu-toggle"] svg,
html body [class*="menu-trigger"] svg,
html body .hfe-nav-menu__toggle svg,
html body .hfe-nav-menu-icon svg {
    background-color: transparent !important;
}

/* Support specifically for Astra's span-based icon-bar layout */
html body .ast-mobile-menu-trigger-minimal .ast-icon-bar,
html body .menu-toggle .ast-icon-bar,
html body .menu-toggle .bar,
html body .menu-toggle .icon-bar,
html body [class*="menu-toggle"] .icon-bar {
    background-color: #00f2fe !important;
    height: 3px !important;
    width: 24px !important;
    display: block !important;
    margin: 4px auto !important;
    border-radius: 2px !important;
}

/* Smooth hover transition to reverse colors for responsive premium experience */
html body .ast-mobile-menu-trigger-minimal:hover,
html body .elementor-menu-toggle:hover,
html body .menu-toggle:hover,
html body [class*="menu-toggle"]:hover,
html body .hfe-nav-menu__toggle:hover {
    background: #00f2fe !important;
    box-shadow: 0 0 20px rgba(0, 242, 254, 0.7) !important;
}

html body .ast-mobile-menu-trigger-minimal:hover span,
html body .elementor-menu-toggle:hover span,
html body .menu-toggle:hover span,
html body .ast-mobile-menu-trigger-minimal:hover i,
html body .elementor-menu-toggle:hover i,
html body .menu-toggle:hover i,
html body .ast-mobile-menu-trigger-minimal:hover svg path,
html body .elementor-menu-toggle:hover svg path,
html body .menu-toggle:hover svg path,
html body .hfe-nav-menu__toggle:hover span,
html body .hfe-nav-menu__toggle:hover svg path,
html body .hfe-nav-menu__toggle:hover i {
    fill: #000000 !important;
    color: #000000 !important;
    stroke: #000000 !important;
    background-color: transparent !important;
}
