/* Responsive overrides */
/* Responsive */
@media (max-width: 1024px) {
    .section-block__title {
        font-size: 2.5rem;
    }

    .section-block__title:not(.section-block__title--en) {
        font-size: 2rem;
    }
    
    .values-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    
    .recruit-inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    
    .l-grid-2 {
        grid-template-columns: 1fr;
        gap: 80px;
    }
    
    .contact-info {
        padding-left: 0;
    }
}

@media (max-width: 768px) {
    :root {
        --padding-x: 6vw;
    }
    
    .section-block {
        padding: 80px 0;
    }

    .about-intro {
        margin-bottom: 80px;
    }
    
    .sp-br {
        display: block;
    }

    .site-logo__image {
        height: 28px;
    }

    .site-header.is-scrolled .site-logo__image {
        height: 20px;
    }

    .site-footer__logo-image {
        height: 28px;
    }
    
    .site-nav-toggle {
        display: flex;
    }

    .site-nav {
        position: fixed;
        inset: 0;
        z-index: 100;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 100px var(--padding-x) 48px;
        background-color: var(--color-text);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 0.35s ease, visibility 0.35s ease;
    }

    .page-header__title {
        font-size: 2.5rem;
    }

    .page-header--rich,
    .page-header--title-b {
        padding: 100px 0;
    }

    .single-post__title {
        font-size: 1.5rem;
    }

    .single-post__nav {
        grid-template-columns: 1fr;
        justify-items: start;
    }

    .single-post__nav .c-btn {
        grid-column: auto;
        justify-self: start;
    }

    .site-header.is-nav-open .site-nav {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .site-nav__list {
        flex-direction: column;
        align-items: center;
        gap: 28px;
        width: 100%;
        max-width: 320px;
    }

    .site-nav__list > li {
        opacity: 0;
        transform: translateY(24px);
        filter: blur(4px);
        transition: opacity 0.5s ease, transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94), filter 0.5s ease;
    }

    .site-header.is-nav-open .site-nav__list > li {
        opacity: 1;
        transform: translateY(0);
        filter: blur(0);
    }

    .site-header.is-nav-open .site-nav__list > li:nth-child(1) { transition-delay: 0.1s; }
    .site-header.is-nav-open .site-nav__list > li:nth-child(2) { transition-delay: 0.15s; }
    .site-header.is-nav-open .site-nav__list > li:nth-child(3) { transition-delay: 0.2s; }
    .site-header.is-nav-open .site-nav__list > li:nth-child(4) { transition-delay: 0.25s; }
    .site-header.is-nav-open .site-nav__list > li:nth-child(5) { transition-delay: 0.3s; }

    .site-nav a {
        display: block;
        font-size: 1.125rem;
        letter-spacing: 0.08em;
        padding: 8px 0;
        text-align: center;
    }

    .site-nav .sub-menu {
        position: static;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 6px;
        min-width: 0;
        margin-top: 2px;
        padding: 0;
        background-color: transparent;
        border: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        transition: none;
        pointer-events: auto;
    }

    .site-nav .sub-menu::before {
        content: none;
    }

    .site-nav .menu-item-has-children:hover > .sub-menu,
    .site-nav .menu-item-has-children:focus-within > .sub-menu {
        transform: none;
    }

    .site-nav .sub-menu a {
        padding: 0;
        font-size: 0.875rem;
        line-height: 1.5;
        letter-spacing: 0.06em;
        text-align: center;
        opacity: 0.72;
    }

    body.is-nav-open {
        overflow: hidden;
    }

    body.admin-bar .site-nav {
        padding-top: calc(100px + 46px);
    }

    .about-vision {
        font-size: 1.125rem;
    }
    
    .recruit-inner {
        padding: 40px 6vw;
    }

    .news-link {
        flex-direction: column;
        gap: 8px;
        padding: 24px 16px;
    }
    
    .info-row {
        flex-direction: column;
        gap: 8px;
    }
    
    .info-row dt {
        width: 100%;
    }
    
    .site-footer__container {
        flex-direction: column;
        gap: 40px;
    }
    
    .site-footer__nav {
        text-align: left;
    }
}

/* Sitemap: 1-column on SP */
@media (max-width: 768px) {
    .sitemap-columns {
        grid-template-columns: 1fr;
        gap: 0;
    }
}
