/* #Footer - Cleaned + Strong Sticky Footer */

ul.no-bullets {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

#footer {
    background: #07536e;
    border-top: 4px solid var(--dark, #222);
    font-size: 0.8em;
    margin-top: auto;           /* Important for sticky footer */
    padding: 20px 0;
    position: relative;
    clear: both;
}

/* ====================== STICKY FOOTER ====================== */
html, body {
    height: 100%;
    margin: 0;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.main-content {
    flex: 1 0 auto;   /* This pushes the footer to the bottom */
}
/* ====================== ORIGINAL STYLES (Preserved & Cleaned) ====================== */

#footer .footer-ribbon {
    position: absolute;
    margin: -44px 0 0 0;
    padding: 10px 20px 6px 20px;
}

#footer .footer-ribbon:before {
    border-right: 10px solid #646464;
    border-top: 16px solid transparent;
    content: "";
    display: block;
    height: 0;
    right: 100%;
    position: absolute;
    top: 0;
    width: 7px;
}

#footer .footer-ribbon span {
    color: var(--light);
    font-size: 1.6em;
    font-family: "Shadows Into Light", cursive;
}

#footer h1, #footer h2, #footer h3, #footer h4, #footer h5, #footer h6 {
    color: var(--light);
}

#footer a:not(.btn):not(.no-footer-css) {
    color: var(--default);
    transition: all 0.1s ease-in-out;
}

#footer a:not(.btn):not(.no-footer-css):hover {
    text-decoration: none;
    color: var(--light);
}

#footer a:not(.btn):not(.no-footer-css):focus,
#footer a:not(.btn):not(.no-footer-css):active {
    color: var(--grey-500);
}

#footer a:not(.btn):not(.no-footer-css).text-color-light {
    color: var(--light) !important;
}

#footer a:not(.btn):not(.no-footer-css).text-color-light:hover {
    color: var(--light-200) !important;
}

#footer a:not(.btn):not(.no-footer-css).text-color-light:focus,
#footer a:not(.btn):not(.no-footer-css).text-color-light:active {
    color: var(--light-300) !important;
}

#footer a:not(.btn):not(.no-footer-css).text-color-default {
    color: var(--default) !important;
}

#footer a:not(.btn):not(.no-footer-css).link-hover-style-1 {
    position: relative;
    left: 0px;
    transition: all 0.1s ease-in-out;
}

#footer a:not(.btn):not(.no-footer-css).link-hover-style-1:hover {
    left: 3px;
}

#footer ul.nav-list > li a {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    line-height: 20px;
    padding-bottom: 11px;
}

#footer ul.nav-list > li:last-child a {
    border-bottom: 0;
}

#footer ul.nav-list > li a:hover {
    background-color: rgba(255, 255, 255, 0.05);
}

#footer ul.list.icons li {
    margin-bottom: 5px;
}

#footer.footer-texts-more-lighten p,
#footer.footer-texts-more-lighten span,
#footer.footer-texts-more-lighten a:not(.btn):not(.no-footer-css),
#footer.footer-texts-more-lighten li {
    color: var(--grey-800);
}

#footer.footer-texts-more-lighten a:not(.btn):not(.no-footer-css):hover {
    text-decoration: none;
    color: var(--light);
}

#footer .footer-nav nav {
    display: flex;
}

#footer .footer-nav nav > ul {
    display: flex;
    flex-wrap: wrap;
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}

#footer .footer-nav nav > ul > li {
    position: relative;
    height: 100%;
    align-self: stretch;
}

#footer .footer-nav nav > ul > li > a {
    position: relative;
    background: transparent;
    padding: 0 14.4px;
    padding: 0 .9rem;
    margin: 0;
    height: 100%;
    display: inline-flex;
    align-items: center;
    white-space: normal;
    font-size: 12px;
    font-style: normal;
    font-weight: 700;
    letter-spacing: -0.5px;
    text-transform: uppercase;
    color: var(--light);
    text-decoration: none;
}

#footer .footer-nav.footer-nav-links nav > ul > li:first-child > a {
    padding-left: 0;
}

#footer .footer-nav.footer-nav-links nav > ul > li:first-child > a:before {
    left: 0;
}

@media (min-width: 768px) {
    #footer .footer-nav.footer-nav-bottom-line nav > ul > li > a:before {
        content: "";
        position: absolute;
        width: auto;
        height: 3px;
        top: 50%;
        left: .85rem;
        right: .85rem;
        margin-top: 15px;
        transform: translate3d(0, -50%, 0);
    }
}

@media (max-width: 991px) {
    #footer .footer-nav {
        width: 100%;
    }
    #footer .footer-nav nav {
        text-align: center;
    }
    #footer .footer-nav nav > ul {
        width: 100%;
    }
    #footer .footer-nav nav > ul > li > a {
        text-align: center;
        padding: 5px 12px;
    }
}

@media (max-width: 767px) {
    #footer .footer-nav {
        width: 100%;
    }
    #footer .footer-nav nav {
        text-align: center;
    }
    #footer .footer-nav nav > ul {
        width: 100%;
    }
    #footer .footer-nav nav > ul > li {
        height: auto;
        width: 100%;
    }
    #footer .footer-nav nav > ul > li > a {
        text-align: center;
        padding: 1em 0;
    }
}

#footer form {
    opacity: 0.85;
}

#footer form label.error {
    line-height: 16px;
    margin: 5px 0 -5px;
    display: block;
    clear: both;
}

#footer form .alert {
    padding: 6px;
    text-align: center;
}

#footer .logo img {
    position: relative;
    top: 2px;
    image-rendering: -webkit-optimize-contrast;
    transform: translateZ(0);
}

#footer .footer-bg-color-2 {
    background: #07536e;
    width: 100%;
}

#footer .footer-copyright {
    background: #07536e;
}

#footer .footer-copyright nav {
    font-size: 0.8em;
}

#footer .footer-copyright nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

#footer .footer-copyright nav ul li {
    display: inline-block;
    line-height: 12px;
    margin: 0;
    padding: 0 8px;
}

#footer .footer-copyright nav ul li:first-child {
    border: medium none;
    padding-left: 0;
}

#footer .footer-copyright nav ul li:last-child {
    padding-right: 0;
}

#footer .footer-copyright p {
    color: #fff;
    margin: 0;
    padding: 0;
    font-size: 0.9em;
}

#footer .footer-copyright.footer-copyright-style-2 {
    background: #07536e;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

/* Border utilities */
.footer-top-border { border-top: 1px solid rgba(0,0,0,0.05) !important; }
.footer-bottom-border { border-bottom: 1px solid rgba(0,0,0,0.05) !important; }
.footer-left-border { border-left: 1px solid rgba(0,0,0,0.05) !important; }
.footer-right-border { border-right: 1px solid rgba(0,0,0,0.05) !important; }

.footer-top-light-border { border-top: 1px solid rgba(255,255,255,0.05) !important; }
.footer-bottom-light-border { border-bottom: 1px solid rgba(255,255,255,0.05) !important; }
.footer-left-light-border { border-left: 1px solid rgba(255,255,255,0.05) !important; }
.footer-right-light-border { border-right: 1px solid rgba(255,255,255,0.05) !important; }