.footer-serif {
    font-family: 'Noto Serif JP', serif;
}

.glass-box {
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 20px;
}

.footer-link {
    transition: all 0.3s ease;
}

.footer-link:hover {
    color: #F8A01A;
    transform: translateX(5px);
}

.footer-consult-btn:focus-visible {
    outline: 3px solid #FFFFFF;
    outline-offset: 4px;
}


/* Mobile Navigation / Footer Composition Polish v0.1
 * Semantic mobile composition; desktop footer remains unchanged.
 */
.footer-mobile-category {
    display: none;
}

@media (max-width: 767px) {
    .footer-primary-links {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 1.25rem;
        row-gap: 0.25rem;
    }

    .footer-primary-links > li {
        margin-top: 0 !important;
        min-width: 0;
    }

    .footer-primary-links .footer-link {
        min-height: 44px;
        line-height: 1.45;
    }

    .footer-primary-links .footer-link > span {
        display: none;
    }

    .footer-mobile-category {
        display: flex;
        align-items: end;
        min-height: 30px;
        padding-bottom: 0.25rem;
        color: rgba(255, 255, 255, 0.64);
        font-size: 0.72rem;
        font-weight: 800;
        line-height: 1.3;
        letter-spacing: 0.06em;
    }

    .footer-nav-top {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .footer-mobile-category-basic {
        grid-column: 1;
        grid-row: 2;
    }

    .footer-mobile-category-stories {
        grid-column: 2;
        grid-row: 2;
    }

    .footer-nav-about { grid-column: 1; grid-row: 3; }
    .footer-nav-children { grid-column: 2; grid-row: 3; }
    .footer-nav-profile { grid-column: 1; grid-row: 4; }
    .footer-nav-parents { grid-column: 2; grid-row: 4; }
    .footer-nav-support { grid-column: 1; grid-row: 5; }
    .footer-nav-owl { grid-column: 2; grid-row: 5; }
    .footer-nav-pricing { grid-column: 1; grid-row: 6; }
    .footer-nav-blog { grid-column: 2; grid-row: 6; }
    .footer-nav-faq { grid-column: 1; grid-row: 7; }

    .footer-legal-heading {
        color: rgba(255, 255, 255, 0.68) !important;
        font-size: 0.92rem !important;
        font-weight: 700 !important;
        letter-spacing: 0.02em;
    }
}

