/* ============================================
   Footer Widget Styles
   ============================================ */

/* Base footer styles - follows site theme automatically */
.footer-widget {
    background-color: var(--bg-secondary);
    border-top: 1px solid var(--border-default);
    color: var(--text-primary);
    transition: background-color var(--duration-300) var(--ease-in-out), color var(--duration-300) var(--ease-in-out);
}

/* Border top */
.footer-border-top {
    border-top: 1px solid var(--border-default);
}

/* Padding variants */
.footer-padding-small {
    padding-top: var(--space-4);
    padding-bottom: var(--space-4);
}

.footer-padding-medium {
    padding-top: var(--space-8);
    padding-bottom: var(--space-8);
}

.footer-padding-large {
    padding-top: var(--space-12);
    padding-bottom: var(--space-12);
}

/* Column title */
.footer-column-title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-4);
    color: inherit;
}

/* Footer links */
.footer-links {
    margin-bottom: var(--space-4);
}

.footer-links-heading {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-wider);
    margin-top: var(--space-4);
    margin-bottom: var(--space-2);
    opacity: 0.8;
}

.footer-link {
    color: inherit;
    text-decoration: none;
    opacity: 0.7;
    transition: opacity var(--duration-200) var(--ease-in-out);
    display: inline-block;
    padding: var(--space-1) 0;
}

.footer-link:hover {
    opacity: 1;
    color: inherit;
}

/* Footer sitemap */
.footer-sitemap ul {
    margin-bottom: 0;
}

.footer-sitemap li {
    margin-bottom: var(--space-2);
}

.footer-sitemap ul ul {
    margin-top: var(--space-1);
    margin-left: var(--space-4);
}

/* Mobile: horizontal inline sitemap links */
@media (max-width: 767.98px) {
    .footer-sitemap ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: var(--space-2);
    }

    .footer-sitemap li {
        margin-bottom: 0;
    }

    .footer-sitemap .footer-link {
        padding: var(--space-1) var(--space-2);
    }

    /* Hide nested items on mobile for cleaner inline display */
    .footer-sitemap ul ul {
        display: none;
    }
}

/* Social links */
.footer-social {
    margin-top: var(--space-6);
}

.footer-social-title {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: var(--letter-spacing-wider);
    margin-bottom: var(--space-3);
    opacity: 0.8;
}

.footer-social-links {
    display: flex;
    gap: var(--space-4);
    flex-wrap: wrap;
}

.footer-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-full);
    background-color: var(--bg-tertiary);
    color: inherit;
    text-decoration: none;
    transition: all var(--duration-200) var(--ease-in-out);
}

.footer-social-link:hover {
    background-color: var(--color-primary-500);
    color: var(--color-neutral-0);
    transform: translateY(-2px);
}

.footer-social-link i {
    font-size: var(--font-size-xl);
}

/* Copyright */
.footer-copyright {
    margin-top: var(--space-8);
    padding-top: var(--space-4);
    border-top: 1px solid var(--border-muted);
}

/* Responsive adjustments */
@media (max-width: 767.98px) {
    .footer-padding-medium {
        padding-top: var(--space-6);
        padding-bottom: var(--space-6);
    }

    .footer-padding-large {
        padding-top: var(--space-8);
        padding-bottom: var(--space-8);
    }

    .footer-column-title {
        font-size: var(--font-size-base);
        margin-top: var(--space-4);
    }

    .footer-column-title:first-child {
        margin-top: 0;
    }

    .footer-social-links {
        justify-content: center;
    }

    .footer-copyright {
        margin-top: var(--space-6);
        padding-top: var(--space-4);
    }

    /* Mobile: Visual separation between footer sections */
    .footer-widget .row > [class*="col-"] {
        padding-top: var(--space-5);
        padding-bottom: var(--space-5);
        border-bottom: 1px solid var(--border-muted);
        text-align: center;
    }

    .footer-widget .row > [class*="col-"]:last-child {
        border-bottom: none;
        padding-bottom: var(--space-3);
    }

    .footer-widget .row > [class*="col-"]:first-child {
        padding-top: var(--space-3);
    }

    /* Center column titles on mobile */
    .footer-column-title {
        text-align: center;
        margin-top: 0;
        margin-bottom: var(--space-3);
    }
}

/* Text color utilities for footer - override Bootstrap */
.footer-widget,
.footer-widget a:not(.btn),
.footer-widget p,
.footer-widget span,
.footer-widget li {
    color: inherit;
}

.footer-widget .text-muted {
    color: var(--text-muted) !important;
}

.footer-widget .text-secondary {
    color: var(--text-secondary) !important;
}

/* Newsletter form (if enabled) */
.footer-newsletter {
    margin-top: var(--space-4);
}

.footer-newsletter .form-control {
    border-radius: var(--radius-md);
}

.footer-newsletter .btn {
    border-radius: var(--radius-md);
    margin-top: var(--space-2);
}

/* Ensure proper spacing between columns */
.footer-widget .row > [class*="col-"] {
    margin-bottom: var(--space-4);
}

@media (min-width: 768px) {
    .footer-widget .row > [class*="col-"] {
        margin-bottom: 0;
    }
}

/* ============================================
   Footer UI Effects (mirrors header options)
   ============================================ */

/* Shadow effect */
.footer-shadow {
    box-shadow: 0 -4px 6px -1px rgba(0, 0, 0, 0.1);
}

/* Glassmorphism effect - uses CSS custom properties for dynamic configuration */
.footer-glassmorphism {
    /* Fallback for older browsers - uses RGB variables */
    background: rgba(var(--bg-secondary-rgb, 250, 250, 250), var(--glassmorphism-opacity, 0.8)) !important;
    /* Modern browsers */
    backdrop-filter: blur(var(--glassmorphism-blur, 10px));
    -webkit-backdrop-filter: blur(var(--glassmorphism-blur, 10px));
    border-top: 1px solid rgba(var(--border-default-rgb, 200, 200, 200), var(--glassmorphism-border-opacity, 0.2)) !important;
    transition: background-color var(--duration-300) var(--ease-in-out), backdrop-filter var(--duration-300) var(--ease-in-out);
}

/* Dark theme glassmorphism adjustment */
[data-theme="dark"] .footer-glassmorphism {
    background: rgba(var(--bg-secondary-rgb, 39, 39, 42), var(--glassmorphism-opacity, 0.8)) !important;
}

/* Elevated effect */
.footer-elevated {
    box-shadow: var(--shadow-lg);
    position: relative;
    z-index: 10;
}

/* Sticky footer - fixed to bottom of viewport */
.footer-sticky {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: var(--z-sticky, 1020);
}

/* Override body height constraint and add bottom padding for sticky footer */
body.has-sticky-footer {
    height: auto !important;
    min-height: 100%;
    padding-bottom: var(--footer-height, 200px);
}

/* Ensure html allows scrolling */
html:has(.has-sticky-footer) {
    height: auto;
    min-height: 100%;
}

/* Background variants */
.footer-bg-dark {
    background-color: var(--color-neutral-900) !important;
    color: var(--color-neutral-100);
}
.footer-bg-dark a,
.footer-bg-dark .footer-link {
    color: var(--color-neutral-300);
}
.footer-bg-dark .footer-link:hover {
    color: var(--color-neutral-100);
}
.footer-bg-dark .footer-social-link {
    background-color: var(--color-neutral-800);
    color: var(--color-neutral-300);
}

.footer-bg-light {
    background-color: var(--color-neutral-100) !important;
    color: var(--color-neutral-900);
}

.footer-bg-gradient {
    background: linear-gradient(180deg, var(--bg-secondary) 0%, var(--bg-tertiary) 100%);
}

.footer-bg-transparent {
    background-color: transparent !important;
    border-top: none !important;
}
