/**
 * Melody Magic - site footer (MM-007 P11 rebuild).
 *
 * Comp-fidelity 4-column dark ink footer. Edge-to-edge dark band; inner
 * content caps at 1440 (via theme.json wide-size token). Native dark
 * styling shipped end-to-end - the earlier P2 overlay block that
 * applied dark on top of a previously-light footer has been retired.
 *
 * Hardcoded color callouts:
 *   #C49BD9         - light grape, used for Studio + Find Us heading dots,
 *                     copyright star, contact icon stroke. Phase 13 may
 *                     tokenize as --mm-grape-300 if the design system
 *                     gains that step (currently grape-300 is #B892C9 -
 *                     close but not exact).
 *   #E8D1F4         - lightest grape tint, used for social-button glyph
 *                     color. Phase 13 tokenize candidate.
 *   rgba(196,155,217,0.18) - grape-tinted social bg. Decorative; may
 *                            tokenize via color-mix in Phase 13.
 *   rgba(255,255,255,0.x)  - white-with-opacity for body copy + dividers.
 *                            Standard pattern, no token needed.
 */

.mm-site-footer {
    background-color: var(--mm-ink);
    color: rgba(255, 255, 255, 0.78);
    /* No default top margin - spacing above the footer is controlled per
       template/page so it can vary by context (MM-007 P11). */
    padding: 72px 0 28px;
}

.mm-site-footer__inner {
    max-width: var(--wp--style--global--wide-size, 1440px);
    margin-inline: auto;
    width: 100%;
    padding-inline: var(--mm-s-8);
}

/* ===== Columns grid ================================================== */

.mm-site-footer__columns {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    margin-bottom: 56px;
}

.mm-site-footer__col {
    min-width: 0;
}

/* ===== Brand column ================================================== */

.mm-site-footer__logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    margin-bottom: 18px;
}

.mm-site-footer__logo img {
    display: block;
    height: 54px;
    width: auto;
    max-width: 100%;
    filter: brightness(0) invert(1);
    opacity: 0.92;
}

.mm-site-footer__blurb {
    margin: 0 0 20px 0;
    font-family: var(--mm-font-body);
    font-size: 14px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.7);
    max-width: 340px;
}

.mm-site-footer__socials {
    display: flex;
    gap: 10px;
}

.mm-site-footer__social {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    background-color: rgba(196, 155, 217, 0.18);
    color: #E8D1F4;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: background-color var(--mm-dur) var(--mm-ease), color var(--mm-dur) var(--mm-ease);
}

.mm-site-footer__social:hover,
.mm-site-footer__social:focus-visible {
    background-color: rgba(196, 155, 217, 0.28);
    color: #fff;
}

/* ===== Column heading + dot ========================================== */

.mm-site-footer__col-heading {
    margin: 0 0 16px 0;
    font-family: var(--mm-font-display);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.mm-site-footer__col-heading--teal  { color: var(--mm-teal-300); }
.mm-site-footer__col-heading--grape { color: #C49BD9; }
.mm-site-footer__col-heading--butter { color: #F4D16A; }

.mm-site-footer__col-dot {
    width: 5px;
    height: 5px;
    border-radius: 999px;
    display: inline-block;
}

.mm-site-footer__col-dot--teal  { background-color: var(--mm-teal-300); }
.mm-site-footer__col-dot--grape { background-color: #C49BD9; }
.mm-site-footer__col-dot--butter { background-color: #F4D16A; }

/* ===== Programs + Studio link lists ================================== */

.mm-site-footer__links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 11px;
}

.mm-site-footer__links li {
    margin: 0;
}

.mm-site-footer__link {
    font-family: var(--mm-font-body);
    font-size: 14px;
    color: rgba(255, 255, 255, 0.78);
    text-decoration: none;
    line-height: 1.4;
    transition: color var(--mm-dur) var(--mm-ease);
}

.mm-site-footer__link:hover,
.mm-site-footer__link:focus-visible {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ===== Find Us contact items ========================================= */

.mm-site-footer__contact {
    margin: 0 0 14px 0;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-family: var(--mm-font-body);
    font-size: 14px;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.85);
}

.mm-site-footer__contact-icon {
    flex: 0 0 auto;
    margin-top: 2px;
    color: #C49BD9;
    display: inline-flex;
    align-items: center;
}

.mm-site-footer__contact-text {
    min-width: 0;
}

.mm-site-footer__contact-link {
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    transition: color var(--mm-dur) var(--mm-ease);
}

.mm-site-footer__contact-link:hover,
.mm-site-footer__contact-link:focus-visible {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.mm-site-footer__sms {
    margin-top: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 32px;
    border-radius: 999px;
    background-color: var(--mm-teal);
    color: #fff;
    font-family: var(--mm-font-display);
    font-weight: 700;
    font-size: 18px;
    min-width: 220px;
    text-decoration: none;
    transition: background-color var(--mm-dur) var(--mm-ease), transform var(--mm-dur) var(--mm-ease);
}

.mm-site-footer__sms:hover,
.mm-site-footer__sms:focus-visible {
    background-color: var(--mm-teal-700);
    transform: translateY(-1px);
}

.mm-site-footer__sms-icon {
    display: inline-flex;
    align-items: center;
}

/* ===== Bottom bar ==================================================== */

.mm-site-footer__bottom {
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    font-family: var(--mm-font-body);
    font-size: 12px;
    color: rgba(255, 255, 255, 0.5);
}

.mm-site-footer__copyright {
    margin: 0;
}

.mm-site-footer__copyright-star {
    color: #C49BD9;
    margin-right: 6px;
}

.mm-site-footer__policies {
    display: flex;
    gap: 18px;
}

.mm-site-footer__policy-link {
    color: rgba(255, 255, 255, 0.5);
    text-decoration: none;
    transition: color var(--mm-dur) var(--mm-ease);
}

.mm-site-footer__policy-link:hover,
.mm-site-footer__policy-link:focus-visible {
    color: rgba(255, 255, 255, 0.85);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ===== Tablet 768-1023: 2-column reflow ============================== */

@media (min-width: 768px) and (max-width: 1023px) {
    .mm-site-footer__columns {
        grid-template-columns: 1fr 1fr;
        gap: 36px;
    }

    .mm-site-footer__col--brand {
        margin-bottom: 0;
    }

    /* DOM order at this breakpoint:
       Row 1: [Brand] [Programs]
       Row 2: [Studio] [Find Us]
       The brand column is naturally tall (logo + blurb + socials), so
       pairing it with the short Programs list balances row 1; row 2
       pairs the short Studio list with the tall Find Us card.
       This is achieved with the existing DOM order - no flex reorder. */
}

/* ===== Desktop >=1024: 4-column row ================================== */

@media (min-width: 1024px) {
    .mm-site-footer__columns {
        grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
        gap: 48px;
    }
}

/* ===== Mobile <768: single column stack ============================== */

@media (max-width: 767px) {
    .mm-site-footer {
        padding: 56px 0 24px;
    }

    .mm-site-footer__inner {
        padding-inline: var(--mm-s-5);
    }

    .mm-site-footer__columns {
        grid-template-columns: 1fr;
        gap: 32px;
        margin-bottom: 40px;
    }

    .mm-site-footer__logo img {
        height: 44px;
    }

    .mm-site-footer__bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
}

/* ===== Reduced motion ================================================ */

@media (prefers-reduced-motion: reduce) {
    .mm-site-footer__social,
    .mm-site-footer__link,
    .mm-site-footer__contact-link,
    .mm-site-footer__sms,
    .mm-site-footer__policy-link {
        transition: none;
    }

    .mm-site-footer__sms:hover,
    .mm-site-footer__sms:focus-visible {
        transform: none;
    }
}
