﻿@charset "UTF-8";


/**************************************************
 responsive
**************************************************/

@media screen and (min-width: 768px) and (max-width: 1399px){
	html {font-size: calc(100vw * 10 / 1400);
		text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	}
	
}

@media (prefers-reduced-motion: no-preference) {
    html {
        scroll-behavior: smooth;
    }
}


@media screen and (max-width: 768px) {
    html {
        font-size: 62.5%;
        font-size: 10px;
    }
}

/* ========================================
   ipad用
   ======================================== */
@media screen and (max-width: 1024px) {
    header {
        min-height: auto;
        padding: var(--fz-12) var(--mx-16);
        gap: var(--mx-10);
    }

    header picture {
        max-width: 30rem;
    }

    header picture img {
        height: 3.6rem;
    }

    header .header-title {
        margin-left: 0;
        margin-bottom: 0;
        font-size: var(--fz-14);
    }

    nav {
        position: relative;
        top: auto;
        right: auto;
        left: auto;
        transform: none;
        max-width: none;
        margin-right: 0;
        width: 100%;
    }

    nav ul {
        gap: var(--mx-8) var(--mx-16);
    }

    .scheduleGrid {
        gap: var(--fz-12);
    }

    .scheduleTable {
        width: 90%;
        gap: var(--mx-40);
    }

    .scheduleTable {
        grid-template-columns: repeat(2, 320px);
        justify-content: center;
        gap: var(--mx-40);
    }

    .scheduleTableWrapper {
        width: 90%;
    }

    /* FAQ（タブレット） */
    .qaHangar {
        margin-top: 100px;
    }
}

/* ========================================
   モバイル用
   ======================================== */
@media screen and (max-width: 768px) {
    header {
        height: 6.4rem;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 30;
    }

    body {
        padding-top: 6.4rem;
    }

    header .header-title {
        display: none;
    }

    header a.applyButton {
        max-width: 11.5rem;
        height: var(--fz-32);
        font-size: var(--fz-12);
        margin-right: 5.6rem;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 0.4rem;
        line-height: 1;
    }

    header a.applyButton .applyButton__label {
        display: inline-block;
        transform: translateY(-1px);
    }

    header a.applyButton img {
        width: var(--mx-10);
        height: var(--mx-10);
        display: block;
        margin-left: 0;
        margin-bottom: 0;
        flex-shrink: 0;
        align-self: center;
        transform: translateY(-1px);
    }

    body.is-nav-open {
        overflow: hidden;
    }

    /* fixed の nav より手前に描画させる（z-index なし。position で同レイヤにし DOM 順で上に） */
    header > img,
    header > a.applyButton {
        position: relative;
    }

    .hamburger-button {
        display: block;
        position: absolute;
        top: 50%;
        right: var(--mx-16);
        transform: translateY(-50%);
        width: var(--fz-40);
        height: var(--fz-40);
        padding: 0;
        border: none;
        border-radius: 50%;
        background: var(--color-brand);
        cursor: pointer;
        margin: 0;
    }

    body.is-nav-open .hamburger-button {
        visibility: hidden;
        pointer-events: none;
    }

    .hamburger-button::before {
        content: "";
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        width: var(--fz-18);
        height: 0.18rem;
        background: var(--color-white);
        border-radius: 999px;
        box-shadow: 0 -0.55rem 0 var(--color-white), 0 0.55rem 0 var(--color-white);
    }

    .nav-close-button {
        display: none;
        position: absolute;
        top: 50%;
        right: var(--mx-16);
        transform: translateY(-50%);
        width: var(--fz-40);
        height: var(--fz-40);
        padding: 0;
        border: none;
        border-radius: 50%;
        background: var(--color-brand);
        cursor: pointer;
        margin: 0;
    }

    body.is-nav-open .nav-close-button {
        display: block;
    }

    .nav-close-button::before,
    .nav-close-button::after {
        content: "";
        position: absolute;
        left: 50%;
        top: 50%;
        width: var(--fz-18);
        height: 0.18rem;
        background: var(--color-white);
        border-radius: 999px;
    }

    .nav-close-button::before {
        transform: translate(-50%, -50%) rotate(45deg);
    }

    .nav-close-button::after {
        transform: translate(-50%, -50%) rotate(-45deg);
    }

    header img {
        max-width: 13.2rem;
        height: 3.1rem;
        margin-top: 0;
        margin-bottom: 0;
        margin-left: 0;
        align-self: flex-start;
    }




    nav {
        display: flex;
        position: fixed;
        top: 6.4rem;
        left: 0;
        right: 0;
        bottom: 0;
        transform: none;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: var(--mx-40) var(--mx-24) var(--mx-40);
        flex-direction: column;
        align-items: center;
        justify-content: center;
        background: var(--color-white);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 0.35s ease, visibility 0.35s ease;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        z-index: 20;
    }

    body.is-nav-open nav {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    nav ul {
        display: flex;
        flex-direction: column;
        flex-wrap: nowrap;
        justify-content: center;
        align-items: stretch;
        gap: var(--mx-40);
        width: 100%;
        max-width: 36rem;
        margin: 0;
        padding: 0;
    }

 

    nav a {
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: var(--fz-20);
        color: var(--color-text-sub);
    }


    #section-schedule,
    #section-program,
    #section-benefits,
    #qa-heading,
    #section-access {
        scroll-margin-top: var(--mx-80);
    }

    header picture img {
        height: var(--fz-32);
        margin: 0;
    }

    .mvHangar{
        background-image: url(../img/mobile/mv/mv_sp.webp);
        height: calc(100vh - 6.4rem);
        height: calc(100svh - 6.4rem);
    }

    .mvHangar::before {
        height: calc(100vh - 6.4rem);
        height: calc(100svh - 6.4rem);
    }

    .mvHangar h1 {
        font-size: 7.2rem;
        line-height: var(--mx-80);
        margin: 0 0 2.4rem;
    }

    .mvTexts{
        max-width: 358px;
        top:55%;
    }

    .mvTexts p:nth-child(2){
        font-size: var(--fz-16);
        max-width:26.5rem;
        height: 3.5rem;

    }

    .mvTexts p:nth-child(3){
        font-size: var(--fz-16);
        padding-left: var(--fz-12);
        padding-bottom: 0.2rem;
        line-height: 1.5;
    }

    /* ========================================
       wrapper_section（SP：1枚でエリア全体を覆う。リピートなしのため cover＝縦長では上下が切れる場合あり）
       ======================================== */
    .scheduleRecommendedHangarWrapper {
        background-image: url(../img/mobile/wrapper/pattern_01_schedule_sp.webp);
        background-size: cover;
        background-position: top center;
        background-repeat: no-repeat;
        padding-top: var(--mx-80);
        padding-bottom: var(--mx-80);
    }

/* ========================================
   schedule_section
   ======================================== */



    .scheduleHangar {
        padding: var(--mx-40) var(--mx-32);
    }

    .scheduleHangar h2 {
        font-size: var(--fz-24);
        line-height: 1.5;
        margin-bottom: 5.4rem;
    }

    .scheduleHangar > p {
        font-size: var(--fz-14);
        line-height: 1.5;
        margin-bottom: var(--fz-20);
        margin-top: calc(-1 * var(--mx-24));
    }

    /* ttl01.svg viewBox と同比率で幅を算出 */
    .scheduleHangar h2::before {
        content: "";
        height: 4.6rem;
        width: calc(4.6rem * 640 / 139.8);
    }

    .scheduleHangar h2::after{
        top: calc(100% + 1.1rem);
    }

    .scheduleGrid {
        grid-template-columns: repeat(2, 1fr);
    }

    .scheduleTable {
        width: 100%;
        grid-template-columns: 1fr;
        justify-content: center;
        gap: var(--mx-16);
    }

    .scheduleTableWrapper {
        width: 100%;
    }

    .scheduleTable > li {
        width: 100%;
        width: 100;
        justify-self: center;
    }

    .scheduleTable > li > :first-child {
       padding-bottom: 0;
    }

    /* 一覧カード：曜日ラッパー span と時間（p）のみ小さく（日付数字は据え置き） */
    .scheduleTable .scheduleDateRow > h3 > small,
    .scheduleTable h3.scheduleDateRow > small {
        font-size: var(--fz-14);
        line-height: 1.5;
    }

    .scheduleTable .scheduleDateRow{
        margin-bottom: 0.8rem;
    }

    .scheduleTable .scheduleDateRow > h3 > span:first-child,
    .scheduleTable .scheduleDateRow > h3 > span:first-child {
        font-size: var(--fz-40);
        line-height: 1.1;
    }

    .scheduleTable .scheduleDateRow > h3 + p,
    .scheduleTable h3.scheduleDateRow > .scheduleTime {
        font-size: var(--fz-14);
    }

    .recommendedHangar {
        margin-top: var(--mx-80);
        background-image: none;
        /* background-image: url(../img/mobile/recommended/bg-pattern03.png);
        background-position: center;
        background-size: cover;
        background-repeat: no-repeat;
        padding-top: var(--mx-80);
        padding-bottom: var(--mx-80); */
    }

    .recommendedHangar h2 {
        font-size: var(--fz-24);
        line-height: 1.5;
        margin-bottom: var(--mx-45);
    }

    /* ttl02.svg viewBox 963.9×140 */
    .recommendedHangar h2::before {
        height: 4.7rem;
        width: calc(4.7rem * 963.9 / 140);
    }

    .recommendedHangar h2::after{
        top: calc(100% + var(--mx-8));
    }

    .recommendedTable {
        grid-template-columns: 1fr;
        width: 358px;
    }
    .recommendedTable > li >img{
        display: block;
        width: calc(100% - 3.2rem);
        height: auto;
        margin: 0 auto;
    }

    .recommendedTable > li >h3{
        font-size: var(--fz-18);
    }

/* ========================================
   recommendedApply_section
   ======================================== */




    .recommendedApply {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        padding-bottom: var(--mx-24);
    }

    .recommendedApplyHangar::after {
        content: "";
        position: absolute;
        border: 0.8rem solid rgba(107, 156, 250, 0.2);
        pointer-events: none;
    }

    .recommendedApply > img {
        display: block;
        width: 100%;
        max-width: 100%;
        flex: 0 0 auto;
        height: auto;
        margin: 0 auto;
    }

    .recommendedApply > div {
        width: 100%;
        flex: 0 0 auto;
    }

    .recommendedApply > div > p{
        margin-top: var(--mx-24);
        font-size: var(--fz-24);
    }

    .recommendedApply > div > a{
        margin-bottom:3.2rem;
    }

    .recommendedApply::after {
        top: 0;
        left: 0;
        right: 0;
        bottom: auto;
        width: 100%;
        height: calc(58% + 20rem);
        background-position:
            right var(--mx-16),
            left top,
            left bottom,
            center top;
        background-image: none;
    }

    /* ========================================
   program_section
   ======================================== */

    .programHangar {
        background-image: none;
        z-index: 0;
        margin-top: calc(-1 * var(--mx-100));
        padding-top: 8rem;
        padding-bottom: 8rem;
        margin-top: 0;

    }

    .programHangar::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: -1;
        background-image: url(../img/mobile/mainprogram/g_program_sp_bg02.webp);
        background-repeat: no-repeat;
        background-size: cover;
        background-position: center top;
        background-origin: border-box;
        pointer-events: none;
    }

    .programHangar h2 {
        font-size: var(--fz-24);
        margin-bottom: var(--mx-45);
    }


    /* ttl03.svg viewBox 594×135.9 */
    .programHangar h2::before {
        height: 4.7rem;
        width: calc(4.7rem * 594 / 135.9);
    }

    .programTable {
        width: calc(100% - 6.4rem);
        grid-template-columns: 1fr;
        justify-content: center;
        gap: var(--mx-24);
        margin-top: 2.4rem;
    }

    .programTable > li {
        width: 100%;
        justify-self: center;
        gap: var(--mx-8);
    }

    .programTable > li > h3{
        font-size: var(--fz-18);
    }

    .programTable > li > p{
        font-size: var(--fz-14);
    }

   

    .visitorBenefitsAmountLink{
        margin-top: 0;
    }

    .visitorBenefits ul {
        grid-template-columns: 1fr;
        gap: var(--fz-34);
    }

    .visitorBenefits > div > h3 {
        font-size: var(--fz-32);
    }

    .visitorBenefits > div > p {
        font-size: var(--fz-16);
        margin-bottom: var(--mx-24);
    }

    /* 来場特典カード上のアイコン（li::after） */
    .visitorBenefits ul > li:nth-child(1)::after,
    .visitorBenefits ul > li:nth-child(2)::after,
    .visitorBenefits ul > li:nth-child(3)::after {
        top: calc(-1 * var(--mx-24));
        left: 50%;
        right: auto;
        width: 4.6rem;
        height: 4.2rem;
        transform: translateX(-50%);
        background-size: contain;
    }

    /* 1枚目「5,000円免除」背後の帯（p::before） */
    .visitorBenefits ul > li:nth-child(1) p:nth-child(2)::before {
        width: min(22rem, 86vw);
        height: var(--fz-18);
        top: calc(50% + var(--mx-16));
    }


    .visitorBenefits ul > li p:nth-child(1){
        margin-bottom:0;
        margin-top: var(--mx-40);
    }

    .visitorBenefits ul > li p:nth-child(1) p:nth-child(1){
        margin-bottom:0;
        margin-top: 0;
    }

  


    .visitorBenefits ul > li p:nth-child(2) {
        font-size: var(--fz-24);
        margin-top: var(--mx-16);
    }

    /* 5,000円免除の1行のみ（index 該当 p 専用クラス・他に未使用） */
    .visitorBenefits ul > li > p.visitorBenefitsAmountLine {
        margin: 0.8rem;
        margin-top:0;
    }

    .visitorBenefits > div {
        width: calc(100% - 3.2rem);
        margin-left: auto;
        margin-right: auto;
        padding-left: var(--mx-16);
        padding-right: var(--mx-16);
        padding-top: var(--fz-32);
        padding-bottom: var(--mx-40);
        margin-top: var(--mx-60);
    }

    .visitorBenefits > div::after {
        content: "";
        position: absolute;
        background-image: url(../img/mobile/mainprogram/kirinuki09.webp);
        top: -10%;
        left: -75%;
        width: 100%;
        height: 20%;
        z-index: 2;
        background-repeat: no-repeat;
        background-size: contain;
        background-position: right top;
        display: block;
    }


    .shuttleBus {
       width: calc(100% - 3.2rem);
       padding-top: 1.75rem;
       padding-bottom: var(--fz-32);
       padding-left: var(--mx-16);
       padding-right: var(--mx-16);
       margin-top:5.7rem;
    }

    .shuttleBus::after {
        content: "";
        position: absolute;
        background-image: url(../img/mobile/mainprogram/kirinuki10.webp);
        right: -7%;
        top: 90%;
        transform: translateY(50%);
        width: 60%;
        height: auto;
        z-index: 2;
        background-repeat: no-repeat;
        background-size: contain;
        background-position: right top;
        display: block;

    }


    .shuttleBus h3 {
        font-size: var(--fz-24);
    }

    .shuttleBus h3::before {
       width: 15%;
       right: calc(-1 * var(--mx-16));
    }

    .shuttleBus h3::after {
        width: 15%;
        left: calc(-1 * var(--mx-16));
        
     }

     .shuttleBus > p:nth-of-type(1) {
        font-size: var(--fz-14);
        margin-bottom: var(--fz-20);
     }

     .shuttleBus > h4{
        font-size: var(--fz-18);
        margin-bottom: var(--mx-8);
     }

     .shuttleBus > ul {
        margin-bottom: var(--mx-8);
     }


  /* ========================================
   movie_section
   ======================================== */


   .movieQaAccessWrapper::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    transform: translateX(-50%);
    width: 100vw;
    z-index: -1;
    pointer-events: none;
    background-attachment: scroll;
    background-image: url(../img/mobile/movie/pattern_04_movie_sp.webp);
    background-position: center top;
    background-repeat: no-repeat;
    background-size: 100% auto;
}

    .movieHangar {
        padding-top: 20rem;
        padding-bottom: 7rem;
        /* 下の FAQ セクションより手前に描画 */
        position: relative;
        z-index: 2;
        overflow-x: clip;
        overflow-y: visible;
    }

    .movieHangar::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
     
        /* background-image: url(../img/mobile/movie/pattern_04_movie_sp.webp); */
        background-position: center;
        background-size: cover;
        background-repeat: no-repeat;
    }

    .movieEmbed {
        height: auto;
        position: relative;
        aspect-ratio: 16 / 9;
        width: calc(100% - 2 * var(--mx-16));
        margin-left: auto;
        margin-right: auto;
    }


    .movieEmbed::before {
        content: "";
        position: absolute;
        background-image: url(../img/mobile/movie/fukidashi-movie-sp_before.webp);
        right:-5%;
        left: auto;
        top: -50%;
        transform: none;
        width: 100%;
        height: 100%;
        z-index: 2;
        background-repeat: no-repeat;
        background-size: contain;
        background-position: right top;
        display: block;
    }

    .movieEmbed::after {
        /* PC の background-size:100.75rem のままだと枠内に画像がほぼ入らない。枠に合わせて全体を表示する */
        /* common の left/top/transform が残ると bottom/right が効かないため明示的に解除 */
        left: auto;
        top: 40%;
        transform: none;
        right: -7%;
        bottom: -35%;
        width: 25%;
        height: auto;
        background-size: contain;
        background-position: center top;
    }


      /* ========================================
    q&a_section
   ===     ===================================== */

    .qaHangar {
        margin-top: var(--mx-40);
        padding-bottom: 13rem;

    }

    .qaHangar::before {
        /* background-image: url(../img/mobile/q&a/pattern_05_qa_sp.webp); */
        background-size: contain;
        background-position: center;
        background-repeat: no-repeat;
    }

    .qaHangar h2 {
        font-size: var(--fz-24);
        margin-bottom: var(--mx-45);
    }

    /* ttl04.svg viewBox 242.5×152.5 */
    .qaHangar h2::before {
        height: 4.7rem;
        width: calc(4.7rem * 242.5 / 152.5);
    }




    .faq-box {
        gap: var(--mx-16);
        width: calc(100% - 3.2rem);
    }

    .faq-box > li {
        border-radius: 10px;
        padding: 0;
        grid-template-rows: minmax(9.2rem, auto) auto;
    }

    .faq-box .ico {
        margin-right: var(--mx-16);
    }

    .faq-box dt{
        padding-left: var(--mx-16);
        padding-right: var(--mx-16);
    }

    .faq-box dt h3 {
        font-size: var(--fz-16);
    }

    .faq-box dd p {
        font-size: var(--fz-14);
        margin: 10px 0 0;
    }



 /* ========================================
    access_section
======================================== */
.accessHangar {
    padding-bottom: var(--mx-80);
    /* background-image: url(../img/mobile/access/pattern_06_access_sp.webp); */
    background-size: 100% auto;
    background-position: top center;
    background-repeat: no-repeat;
}


.accessHangar h2 {
    font-size: var(--fz-24);
    margin-bottom: var(--fz-50);
}

/* ttl05.svg viewBox 479.6×138.2 */
.accessHangar h2::before {
    height: 4.7rem;
    width: calc(4.7rem * 479.6 / 138.2);
}

.accessHangar >ul{
    width: calc(100% - 3.2rem);
}

.accessHangar > ul {
    width: calc(100% - 3.2rem);
    margin-left: auto;
    margin-right: auto;
}


.accessHangar > ul > li > div{
    margin-bottom: var(--mx-16);

}


.accessHangar>ul>li>p{
    font-size: var(--fz-14);
    margin-top: var(--mx-16);
    margin-bottom: 0;
}

.accessHangar>ul{
    gap: var(--mx-16);
}

.accessHangar>ul>li {
    width:100%;
    padding-left: var(--mx-16);
    padding-right: var(--mx-16);
    padding-top: var(--mx-24);
    padding-bottom: var(--mx-24);
}

.accessHangar>ul>li>a{
    margin-top: var(--mx-8);
    margin-bottom:0;
}

.accessHangar>ul>li>ul>li{
    font-size: var(--fz-14);
}

.accessHangar>ul>li>ul>li>span{
    width: 8px;
    height: 8px;
}

   /* access：index.html 445 付近（住所 p と Map ブロック） */
.accessHangar > ul > li > div {
    flex-direction: column;
    gap: var(--mx-8);
}

.accessHangar>ul>li>h3{
    margin-bottom: var(--mx-16);
    font-size: var(--fz-16);
}

.accessHangar>ul>li:first-child::before {
    display: none;
}



/* ========================================
    banner_section
======================================== */

.bannerHangar {
    position: relative;
    isolation: isolate;
    padding-top: 6.4rem;
    padding-bottom: 6.4rem;
    background: transparent;
}

.bannerHangar::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: url(../img/mobile/bnr/pattern_07_bnr_bg.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.bannerHangar::after{
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: url(../img/mobile/bnr/pattern_07_bnr_bg.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.bannerHangar .banners {
    position: relative;
    z-index: 1;
    flex-direction: column;
    align-items: center;
    gap: var(--mx-16);
}

.bannerHangar .banners img {
    display: block;
    max-width: calc(100% - 3.2rem);
    height: auto;
    margin-left: auto;
    margin-right: auto;
}


/* ========================================
    footer_section
======================================== */
.footerHangar {
    padding-left:8%;
    padding-right:8%;
    padding-top: var(--fz-32);
    padding-bottom: var(--fz-32);
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: var(--mx-24);
}

.footerHangar > div {
    align-items: center;
    max-width: none;
}

.footerHangar > div > p {
    text-align: center;
    font-size: var(--fz-14);
}

.footerHangar > p {
    text-align: center;
    font-size: var(--fz-10);
}


/* ========================================
    modal_section
======================================== */

.modal-box {
    width: calc(100% - 32px);
    max-height: calc(100vh - 10rem);
}

.modal-close-btn {
    width: var(--fz-40);
    right: 0;
    top: calc(-1 * var(--fz-48));
}

.modal-close-btn::after,
.modal-close-btn::before {
    width: 33%;
    height: 2px;
}

#modal-schedule-01 .modal-message > p br,
#modal-schedule-02 .modal-message > p br {
    display: inline;
}

.modal-box-in {
    padding: var(--fz-30) var(--fz-25);
    border-radius: var(--mx-10);
}

.modal-head .sub span {
    font-size: var(--fz-24);
    
}

.modal-head .tit {
    font-size: var(--fz-25);
    margin: var(--fz-15) 0 0;
}

.modal-head .tit span {
    font-size: var(--fz-15);
}

.modal-deadline {
    border-width: 2px;
    padding: var(--mx-10) var(--fz-15);
}

.modal-message > p{
    font-size: var(--fz-16);
    padding: var(--mx-16);
}

.modal-deadline .txt {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: var(--mx-10);
    grid-template-columns: none;
}

.modal-deadline .txt > span:first-child,
.modal-deadline .txt > span:last-child {
    justify-self: auto;
    font-size: var(--fz-14);
    line-height: 1.5;
}

.modal-deadline .txt span {
    font-size: var(--fz-15);
}

.modal-deadline .txt .ico {
    display: none;
}

.modal-body {
    margin: var(--fz-20) 0 0;
}

.modal-body-tit .tit {
    font-size: var(--fz-20);
}

.modal-wrap .pc-oi {
    display: none;
}

.sec-schedule {
    padding-top: var(--mx-80);
}

.sec-schedule .tit-box-main .txt-box {
    margin: var(--fz-15) 0 0;
}

.sec-schedule .tit-box-main .txt {
    font-size: var(--fz-14);
}

.sec-schedule .schedule-box {
    gap: var(--mx-10);
}

.sec-schedule .schedule-box > li {
    width: 100%;
    border-width: 2px;
    border-radius: var(--mx-10);
    padding: var(--fz-30) var(--fz-20);
}

.sec-schedule .schedule-head .num {
    font-size: var(--fz-15);
}

.sec-schedule .schedule-head .day .big {
    font-size: var(--fz-37);
}

.sec-schedule .schedule-head .day .sml {
    font-size: var(--fz-22);
}

.sec-schedule .schedule-modal-trigger {
    height: var(--fz-38);
}

.sec-schedule .schedule-modal-trigger .txt {
    font-size: var(--fz-14);
}

.sec-schedule .schedule-modal-trigger .ico {
    width: var(--mx-16);
    right: 8%;
}

.sec-schedule .schedule-link {
    margin: var(--mx-10) 0 0;
}

.sec-schedule .schedule-link .txt {
    font-size: var(--fz-14);
}

.sec-schedule .schedule-link .ico {
    width: var(--mx-10);
}

.sec-schedule.sec-schedule--modalHost {
    padding-top: 0;
}

.modal-wrap ul.timetable > li {
    border-width: 1px;
    padding: var(--fz-30) var(--fz-20);
    border-radius: var(--mx-10);
}


.modal-wrap ul.timetable .timetable-tit .tit .big,
.modal-wrap ul.timetable > li.timetable-heading-only > .tit .big {
    font-size: var(--fz-18);
}

.modal-wrap ul.timetable .timetable-tit .tit .big.big--shuttle-time,
.modal-wrap ul.timetable > li.timetable-heading-only > .tit .big.big--shuttle-time {
    font-size: 1.4rem;
}

.modal-wrap ul.timetable .timetable-tit .tit .sml,
.modal-wrap ul.timetable > li.timetable-heading-only > .tit .sml {
    font-size: var(--fz-14);
    margin: var(--mx-10) 0 var(--mx-10);
}

.modal-wrap ul.timetable .timetable-tit .sub {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    font-size: var(--fz-14);
    text-align: var(--ta-left);
    line-height: 1.5;
    margin: 0 0 var(--mx-10);
}

.modal-wrap ul.timetable .img-square {
    width: 15rem;
    max-width: 100%;
    border-radius: var(--mx-5);
}

.modal-wrap ul.timetable .clm2-box {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    gap: var(--mx-10);
}

.modal-wrap ul.timetable .clm2-box dd {
    width: 100%;
}

.modal-wrap ul.timetable .clm2-box dd > * + * {
    margin-top: var(--mx-5);
}

.modal-wrap ul.timetable .boder-box {
    gap: var(--mx-10);
}

.modal-wrap ul.timetable .boder-box > li {
    border-width: 1px;
    border-radius: var(--mx-10);
    padding: var(--fz-20) var(--fz-15);
}

.modal-wrap ul.timetable .boder-box > li.half {
    width: 100%;
}

.modal-wrap ul.timetable .boder-box > li > * + * {
    margin-top: var(--mx-5);
}

.modal-wrap ul.timetable .txt-big {
    font-size: var(--fz-14);
    line-height: 1.5;
}

.modal-wrap ul.timetable .txt-def {
    font-size: var(--fz-14);
}

.modal-wrap ul.timetable .mt-30 {
    margin-top: var(--fz-20) ;
}

.modal-wrap ul.timetable .experience-head {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 2px var(--mx-10);
}

.modal-wrap ul.timetable .experience-head .cat {
    padding: 0 var(--mx-10);
    height: var(--fz-18);
}

.modal-wrap ul.timetable .experience-head .cat span {
    font-size: var(--fz-14);
}

.modal-wrap ul.timetable .experience-head .txt {
    gap: 0 var(--mx-10);
}

.modal-wrap ul.timetable .experience-head .txt span {
    font-size: var(--fz-14);
    line-height: var(--fz-18);
}
}

/* ========================================
768px以上：ホバー（FAQ・モーダル・.sec-schedule トリガー）
======================================== */
@media screen and (min-width: 768px) {
.faq-box > li:hover .ico:not(.on) {
    transform: scale(1.08);
}

.faq-box > li:hover .ico.on {
    transform: rotate(90deg) scale(1.08);
}

.modal-close-btn:hover {
    background: #ffe71a;
}

.modal-close-btn:hover::after,
.modal-close-btn:hover::before {
    background: #6B9CFA;
}

.modal-close-btn--schedule:hover {
    background: #fff;
}

.sec-schedule .schedule-modal-trigger:hover {
    background: #ffe71a;
}

.sec-schedule .schedule-modal-trigger:hover .txt {
    color: var(--color-text);
}

.sec-schedule .schedule-modal-trigger:hover .ico {
    right: 6%;
}

.sec-schedule .schedule-modal-trigger:hover .ico::before {
    opacity: 0;
}

.sec-schedule .schedule-modal-trigger:hover .ico::after {
    opacity: 1;
}

.sec-schedule .schedule-link a:hover .txt {
    color: #ff8c33;
}

.sec-schedule .schedule-link a:hover .ico {
    right: -10px;
}

.sec-schedule .schedule-link a:hover .ico::before {
    opacity: 0;
}

.sec-schedule .schedule-link a:hover .ico::after {
    opacity: 1;
}

}
