/* ==========================================================================
   SITE FOOTER
   ========================================================================== */

.site-footer {
    margin-top: var(--spacing-max);
    background-color: var(--color-bg-inverse);
    color: var(--color-text-inverse);
    border-bottom: 8px solid var(--color-secondary);
}


/* ── Top bar ────────────────────────────────────────────────────────────── */

.site-footer__top {
    padding: var(--spacing-huge) 0 var(--spacing-xl);
}

.site-footer__top-inner {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-xxxl);
}

/* Branding */
.site-footer__logo-link {
    display: block;
    flex-shrink: 0;
}

.site-footer__logo {
    width: 200px;
    height: auto;
    display: block;
}

.site-footer__logo-link--text {
    color: var(--color-text-inverse);
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-h5);
    text-decoration: none;
}

/* Info block */
.site-footer__info {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-s);
}

.site-footer__org-name {
    margin: 0;
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-inverse);
}

.site-footer__address-row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: var(--spacing-xs) var(--spacing-m);
}

.site-footer__address {
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    font-weight: var(--font-weight-regular);
    color: var(--color-text-inverse);
}

.site-footer__map-link {
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    font-weight: var(--font-weight-regular);
    color: var(--color-text-link-inverse);
    text-decoration: underline;
    white-space: nowrap;
    transition: color 0.2s ease;
}

.site-footer__map-link:hover,
.site-footer__map-link:focus {
    color: var(--full-white);
}

/* Contact row */
.site-footer__contact-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--spacing-l) var(--spacing-xl);
    margin-top: var(--spacing-s);
}

/* Phone */
.site-footer__phone {
    display: flex;
    align-items: center;
    gap: var(--spacing-s);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    font-weight: var(--font-weight-regular);
    color: var(--color-text-inverse);
    text-decoration: none;
    transition: color 0.2s ease;
}

.site-footer__phone:hover,
.site-footer__phone:focus {
    color: var(--color-secondary-300);
}

.site-footer__phone-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    color: var(--color-secondary-500);
    flex-shrink: 0;
}

.site-footer__phone-icon svg {
    width: 100%;
    height: 100%;
    display: block;
}

/* Email */
.site-footer__email {
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    font-weight: var(--font-weight-regular);
    color: var(--color-text-link-inverse);
    text-decoration: underline;
    transition: color 0.2s ease;
}

.site-footer__email:hover,
.site-footer__email:focus {
    color: var(--full-white);
}

/* Social icons */
.site-footer__social {
    display: flex;
    align-items: center;
    gap: var(--spacing-m);
}

.site-footer__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text-link-inverse);
    text-decoration: none;
    transition: color 0.2s ease;
}

.site-footer__social-link svg {
    width: 24px;
    height: 24px;
    display: block;
}

.site-footer__social-link svg * {
    fill: currentColor;
}

.site-footer__social-link:hover,
.site-footer__social-link:focus {
    color: var(--color-secondary-300);
}


/* ── Footer nav base ────────────────────────────────────────────────────── */

.site-footer__nav {
    width: 100%;
    padding: var(--spacing-xl) 0 var(--spacing-huge);
}

.site-footer__nav-desktop {
    display: block;
}

.site-footer__nav-stacked {
    display: none;
}


/* ── Desktop menu (wp_nav_menu) ─────────────────────────────────────────── */

.site-footer__menu,
.site-footer__menu .sub-menu {
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer__menu {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: var(--spacing-xxl) var(--spacing-xl);
}

.site-footer__menu > li {
    min-width: 0;
}

.site-footer__menu > li > a {
    display: inline-block;
    margin-bottom: var(--spacing-m);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    font-weight: var(--font-weight-bold);
    color: var(--full-white);
    text-decoration: none;
    transition: color 0.2s ease;
}

.site-footer__menu > li > a:hover,
.site-footer__menu > li > a:focus {
    color: var(--color-secondary-300);
}

.site-footer__menu > li > .sub-menu {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-s);
}

.site-footer__menu > li > .sub-menu a {
    font-size: var(--font-size-body-small);
    line-height: var(--line-height-body-small);
    font-weight: var(--font-weight-regular);
    color: var(--color-text-inverse);
    text-decoration: none;
    transition: color 0.2s ease;
}

.site-footer__menu > li > .sub-menu a:hover,
.site-footer__menu > li > .sub-menu a:focus {
    color: var(--color-secondary-300);
}

.site-footer__menu > li:not(.menu-item-has-children) > a {
    margin-bottom: 0;
}


/* ── Stacked menu (tablet/mobile) ───────────────────────────────────────── */

.site-footer__menu-layout {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: var(--spacing-xxl) var(--spacing-xl);
}

.site-footer__menu-column {
    grid-column: span 6;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xxl);
}

.site-footer__menu-group {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-m);
}

.site-footer__menu-heading {
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    font-weight: var(--font-weight-bold);
    color: var(--full-white);
    text-decoration: none;
    transition: color 0.2s ease;
}

.site-footer__menu-heading:hover,
.site-footer__menu-heading:focus {
    color: var(--color-secondary-300);
}

.site-footer__submenu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-s);
}

.site-footer__submenu-link {
    font-size: var(--font-size-body-small);
    line-height: var(--line-height-body-small);
    font-weight: var(--font-weight-regular);
    color: var(--color-text-inverse);
    text-decoration: none;
    transition: color 0.2s ease;
}

.site-footer__submenu-link:hover,
.site-footer__submenu-link:focus {
    color: var(--color-secondary-300);
}


/* ==========================================================================
   FOOTER — RESPONSIVE
   ========================================================================== */

/* ── Tablet (≤ 1024px) ─────────────────────────────────────────────────── */

@media (max-width: 1024px) {

    .site-footer__nav-desktop {
        display: none;
    }

    .site-footer__nav-stacked {
        display: block;
    }

    .site-footer__nav nav {
        width: 50%;
        margin: 0 auto;
    }

    .site-footer__top-inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: var(--spacing-xl);
    }

    .site-footer__info {
        align-items: center;
        text-align: center;
    }

    .site-footer__address-row {
        align-items: center;
        justify-content: center;
    }

    .site-footer__contact-row {
        justify-content: center;
    }

    .site-footer__social {
        justify-content: center;
    }

    .site-footer__menu-column {
        align-items: center;
        text-align: center;
    }

    .site-footer__menu-group {
        align-items: center;
    }

    .site-footer__submenu {
        align-items: center;
    }

}


/* ── Mobile (≤ 768px) ──────────────────────────────────────────────────── */

@media (max-width: 768px) {

    .site-footer__top-inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: var(--spacing-xl);
    }

    .site-footer__logo {
        width: 160px;
    }

    .site-footer__address-row {
        flex-direction: column;
        gap: var(--spacing-xs);
    }

    .site-footer__contact-row {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-l);
    }

    .site-footer__nav nav {
        width: 100%;
        margin: 0;
    }

    .site-footer__menu-layout {
        grid-template-columns: 1fr;
    }

    .site-footer__menu-column {
        grid-column: span 1;
        gap: var(--spacing-xl);
    }

    .site-footer__info {
        align-items: center;
        text-align: center;
    }

    .site-footer__address-row {
        align-items: center;
        justify-content: center;
    }

    .site-footer__contact-row {
        align-items: center;
        justify-content: center;
    }

    .site-footer__social {
        justify-content: center;
    }

    .site-footer__menu-column {
        align-items: center;
        text-align: center;
    }

    .site-footer__menu-group {
        align-items: center;
    }

    .site-footer__submenu {
        align-items: center;
    }


}


/* ── Small mobile (≤ 480px) ────────────────────────────────────────────── */

@media (max-width: 480px) {

    .site-footer__menu-layout {
        grid-template-columns: 1fr;
    }

}