/* --- Footer Styles: The Art of Design & 50 Years Experience --- */

/* Basic Footer Container */
.site-footer {
    background-color: #0a4339; /* Dark green background */
    color: #cccccc; /* Soft light gray for text */
    padding: 80px 20px; /* Generous padding */
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; /* System fonts for native feel */
    line-height: 1.6; /* Optimal line height for readability */
    font-size: 15px; /* Base text size, slightly smaller for elegance */
}

.footer-inner-container {
    display: flex; /* Flexbox for flexible layout */
    justify-content: space-between; /* Space between main sections */
    max-width: 1100px; /* Optimal maximum content width */
    margin: 0 auto; /* Center container */
    padding-bottom: 60px; /* Generous space above bottom section */
}

.footer-section {
    /* Flexibility and spacing between sections */
    margin-right: 40px; /* Space between sections on desktop */
}
.footer-section:last-child {
    margin-right: 0; /* Last section has no right margin */
}

/* Branding Section */
.footer-brand {
    flex-basis: 300px; /* Fixed width for logo and description on desktop */
    flex-shrink: 0; /* Don't shrink automatically */
}

.footer-logo {
    max-width: 160px; /* Logo size, can be adjusted */
    height: auto;
    display: block; /* Ensures logo is on its own line and properly aligned */
    margin-bottom: 25px; /* Space below logo */
}

.footer-description {
    font-size: 14px; /* Slightly smaller font for description */
    color: #b0b0b0; /* Darker gray for subtlety */
    line-height: 1.7; /* Increased line height for description */
}

/* Navigation Section */
.footer-navigation {
    flex-grow: 1; /* Take up most of the available space */
    display: flex; /* Flexbox for arranging link groups side by side */
    gap: 60px; /* Space between link groups (Information vs Legal) */
    margin-right: 40px; /* Space between navigation and contact */
}

.footer-links-group {
    flex-basis: 50%; /* Each link group takes half of the navigation space */
    min-width: 150px; /* Minimum width to prevent breaking too early */
}

.footer-heading {
    color: #e0e0e0; /* Slightly lighter gray for headings */
    font-size: 17px; /* Heading size */
    margin-bottom: 20px; /* Space below heading */
    font-weight: 600; /* Semi-bold */
    letter-spacing: 0.02em; /* Subtle letter spacing for heading readability */
}

.footer-links-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links-list li {
    margin-bottom: 10px; /* Space between list items */
}

.footer-link {
    color: #cccccc; /* Link color */
    text-decoration: none; /* No underline */
    transition: color 0.2s ease-in-out, transform 0.2s ease-out; /* Subtle animation for color and shift */
    display: inline-block; /* Allows transformation */
}

.footer-link:hover {
    color: #ffffff; /* Lighter color on hover */
    transform: translateX(3px); /* Subtle shift right on hover */
}

/* Contact and Social Section */
.footer-contact-social {
    flex-basis: 250px; /* Fixed width for contact and social icons */
    flex-shrink: 0; /* Don't shrink automatically */
}

.footer-address {
    font-style: normal; /* Remove italic */
    margin-bottom: 25px; /* Space below address */
}

.footer-address p {
    margin-bottom: 8px; /* Space between address lines */
}

.social-icons {
    display: flex;
    gap: 18px; /* Optimal space between icons */
    margin-top: 20px; /* Space above social icons */
    justify-content: center; /* Center social icons in all versions */
}

.social-icon-link {
    color: #cccccc; /* Icon color */
    transition: color 0.2s ease-in-out, transform 0.2s ease-out; /* Subtle animation for color and scale */
    display: inline-flex; /* Allows alignment and transformation */
    align-items: center;
    justify-content: center;
    width: 22px; /* Fixed size for touch */
    height: 22px; /* Fixed size for touch */
}

.social-icon-link:hover {
    color: #ffffff; /* Icon color on hover */
    transform: scale(1.1); /* Subtle icon scaling */
}

.social-icon-svg {
    width: 100%; /* SVG takes full width of container */
    height: 100%; /* SVG takes full height of container */
    stroke-width: 1.8; /* Slightly thinner line for icons for better visual */
}

/* Bottom Copyright Section */
.footer-bottom {
    text-align: center; /* Center text */
    margin-top: 40px; /* Space above this section */
    padding-top: 20px; /* Internal padding above text */
    border-top: 1px solid rgba(255, 255, 255, 0.08); /* Very subtle separator line */
    font-size: 13px; /* Very small font for copyright */
    color: #a0a0a0; /* Darker gray for subtlety */
}

.footer-copyright, .footer-design-credit {
    margin: 3px 0; /* Small space between lines */
}

/* --- Responsiveness for Tablet and Mobile --- */

@media (max-width: 992px) { /* Tablet - transition to vertical stacking of navigation */
    .footer-inner-container {
        flex-direction: column; /* Sections stack vertically */
        gap: 40px; /* Space between main sections when stacking */
    }

    .footer-section {
        margin-right: 0; /* Remove right margin */
        flex-basis: auto; /* Reset fixed width */
        flex-shrink: 1; /* Allow shrinking */
        width: 100%; /* Takes full width */
    }

    .footer-brand {
        text-align: center; /* Center logo and description */
    }
    .footer-logo {
        margin-left: auto; /* Center logo */
        margin-right: auto; /* Center logo */
    }

    .footer-navigation {
        flex-direction: row; /* Link groups still side by side if there's enough space */
        gap: 40px; /* Smaller gap between groups on tablet */
        justify-content: center; /* Center link groups */
        flex-wrap: wrap; /* Allow link groups to wrap if they don't fit */
    }

    .footer-links-group {
        flex-basis: auto; /* Reset width */
        min-width: 120px; /* Adjust minimum width */
    }
    .footer-links-group h4, .footer-links-group ul {
        text-align: left; /* Left-align text in groups */
    }

    .footer-contact-social {
        text-align: center; /* Center contact */
    }
    .social-icons {
        justify-content: center; /* Center social icons */
    }

    .footer-bottom {
        margin-top: 30px; /* Smaller margin */
        padding-top: 15px;
    }
}

@media (max-width: 768px) { /* Mobile - complete vertical stacking */
    .site-footer {
        padding: 50px 15px; /* Smaller padding */
    }

    .footer-inner-container {
        gap: 30px; /* Smaller gap between sections */
        padding-bottom: 40px;
    }

    .footer-navigation {
        flex-direction: column; /* Link groups stack vertically */
        gap: 30px; /* Space between groups */
        margin-right: 0; /* Remove right margin */
    }

    .footer-links-group {
        min-width: 100%; /* Link group takes full width */
    }

    .footer-links-group h4, .footer-links-group ul, .footer-contact-social, .footer-address, .social-icons {
        text-align: center; /* Everything centered */
        justify-content: center; /* Center flex containers too */
    }

    .footer-link:hover {
        transform: none; /* Disable link shift on hover for mobile (not as relevant) */
    }
    .social-icon-link:hover {
        transform: none; /* Disable icon scaling on mobile */
    }

    .footer-bottom {
        margin-top: 20px;
        padding-top: 15px;
    }
}

/* --- End Footer Styles --- */