/* 768px以下 */
@media (max-width:768px) {
    /***** 共通 *****/
    html {
        scroll-padding-top: 64px;
    }
    main {
        margin-top: 64px;
    }
    strong {
        font-size: 1rem;
    }
    /* h2 */
    body.home h2 {
        margin-block: 0 40px;
    }
    .pc_hide {
        display: block;
    }
    /***** ヘッダー *****/
    .site-header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 99;
        background: #fff;
    }
    .header-inner_sp {
        display: flex;
        align-items: center;
        gap: 1rem;
    }
    .site-header .menu-btn {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        width: 64px;
        height: 64px;
        background: var(--main-c);
        border: none;
        z-index: 9999;
    }
    .menu-btn .menu-icon {
        display: flex;
        flex-direction: column;
        gap: 6px;
        margin-bottom: 6px;
        transition: transform .3s ease;
    }
    .menu-btn .menu-icon span {
        width: 40px;
        height: 4px;
        background: #fff;
        transform-origin: center;
        transition: transform .3s ease, opacity .3s ease, background-color .3s ease;
    }
    .site-header .menu-btn .menu-text {
        color: #fff;
        font-size: .5rem;
        line-height: 1;
        margin-bottom: -6px;
    }
    .header-inner {
        padding-inline: 1rem 0;
    }
    .mail_sp img, .tel_sp img {
        width: 2em;
        aspect-ratio: 1 / 1;
    }
    /* オーバーレイ */
    .overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100svh;
        padding-block: 64px 40px;
        padding-inline: 24px;
        background: var(--base-c);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        z-index: 999;
        /* 表示用 */
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .3s ease, visibility .3s ease;
    }
    .overlay .sns-icon {
        background: #fff;
        border-radius: 50%;
    }
    .overlay .sns-icon img {
        filter: brightness(0);
    }
    .nav_sp-logo {
        width: max(240px, 60%);
        margin-inline: auto;
    }
    /* オーバーレイ表示用 */
    body.is-open .overlay {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
    body.is-open .menu-icon span:nth-child(1) {
        transform: translateY(10px) rotate(45deg);
    }
    body.is-open .menu-icon span:nth-child(2) {
        transform: translateX(20px);
        opacity: 0;
    }
    body.is-open .menu-icon span:nth-child(3) {
        transform: translateY(-10px) rotate(-45deg);
    }
    /* ナビゲーション */
    .main-nav {
        display: none;
    }
    .main-nav_sp {
        margin-bottom: 40px;
    }
    .main-nav_sp ul li {
        color: #fff;
        font-size: var(--f-size_m);
        padding-block: 1em;
        border-bottom: 1px solid #fff;
    }
    /***** フッター *****/
    .site-footer {
        padding-block: 40px;
    }
    .footer-nav {
        display: none;
    }
    .footer-contact {
        display: none;
    }
    .footer-contact_sp {
        display: block;
        margin-block: 40px;
        color: #fff;
    }
    .footer-contact_sp .footer-tel, 
    .footer-contact_sp .footer-access {
        display: flex;
        flex-direction: column;
        align-items: center;
        border-right: none;
        margin-bottom: 24px;
        padding-inline: 0;
    }
    .footer-contact_sp .footer-mail {
        padding-inline: 0;
    }
    .footer-contact_sp .tel,
    .footer-contact_sp .mail,
    .footer-contact_sp .access {
        max-width: 300px;
    }
    .footer-contact_sp .tel,
    .footer-contact_sp .access {
        padding: .5em 1em;
        border: 2px solid #fff;
        border-radius: 100vmax;
        font-size: 1rem;
        width: 100%;
        text-align: center;
    }
    .sns-link img {
        max-width: 1.5rem;
    }
    .footer-tel .tel::before {
        width: .9lh;
        height: .9lh;
    }
    .footer-logo {
        max-width: 240px;
    }
    /***** mv *****/
    .mv .mv-inner {
        position: static;
        transform: translateX(0);
        flex-direction: column;
        gap: 1em;
        width: 100%;
        padding-bottom: 80px;
        padding-inline: 24px;
        background: var(--base-c);
    }
    .banner-l, .banner-r {
        justify-content: center;
    }
    .banner-l a, .banner-r a {
        flex-basis: 50%;
        text-align: center;
    }
    .mv-inner img {
        display: inline-block;
        width: 85%;
        max-height: 110px;
        object-fit: cover;
    }
    .scroll-indicator {
        bottom: 4vw;
        width: 10vw;
    }
    /***** NEWS *****/
    section#news .news-item a {
        position: relative;
        flex-direction: column;
        gap: .5em;
        padding-block: 1em;
        padding-inline: 0 2em;
    }
    section#news .news-item h3 {
        align-items: flex-start;
    }
    section#news .news-item h3::after {
        position: absolute;
        top: 50%;
        right: 0;
        transform: rotate(45deg) translateY(-50%);
    }
    .post-new {
        margin-right: 0;
        margin-left: 1em;
    }
    /***** 出場高校一覧 *****/
    .school-item:last-of-type::after {
        transform: translateX(25%);
    }
    @media (max-width:599px) {
        .school-list {
            display: block;
        }
        .school-item {
            margin-bottom: 24px;
        }
        .school-program::after {
            position: static;
            display: block;
            transform: translate(0, 0);
            aspect-ratio: 313 / 600;
            margin-top: 24px;
            margin-inline: auto;
        }
    }
    /***** Event Maps *****/
    .wp-block-buttons:has(.link-btn) {
        flex-direction: column;
        align-items: center;
    }
    section#event-maps .link-btn {
        align-self: auto;
        width: min(320px, 100%);
    }
    #post .main-inner {
        padding-block: 2em;
        padding-inline: 1em;
    }
    #post h1 {
        font-size: 1rem;
        margin-bottom: 24px;
    }
    .post-navigation {
        margin-block: 1em;
    }
    /***** sponsor *****/
    section#sponsor .sponsor-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 1em;
    }
    section#sponsor .sponsor-banner img {
        max-height: 140px;
        object-fit: cover;
    }
    section#sponsor .sponsor-list p {
        text-align: center;
    }
}