@charset "UTF-8";
/* ========================================
   共通スタイル（PCベース・コンポーネント）
   common.css — html のフォントサイズ（1400px〜）はこのファイル。他ブレークポイントは responsive.css
   ======================================== */
:root {
    --fontJp: 'Noto Sans JP', sans-serif;
    --center: center;
    /* タイポグラフィ（旧 fw / fz / ta ユーティリティのトークン化。数値は rem×10 と同じ） */
    --fw-400: 400;
    --fw-500: 500;
    --fw-600: 600;
    --fw-700: 700;
    --fw-900: 900;
    --fz-104: 10.4rem;
    --fz-14: 1.4rem;
    --fz-16: 1.6rem;
    --fz-24: 2.4rem;
    --fz-28: 2.8rem;
    --fz-32: 3.2rem;
    --fz-36: 3.6rem;
    --fz-40: 4rem;
    --fz-44: 4.4rem;
    --fz-48: 4.8rem;
    --fz-64: 6.4rem;
    --ta-center: center;
    --ta-left: left;
    --ta-right: right;
    /* 横マージン（旧 mx* / blockCenter。数値は rem×10） */
    --mx-auto: auto;
    --mx-0: 0;
    --mx-16: 1.6rem;
    --mx-24: 2.4rem;
    --mx-32: 3.2rem;
    /* モーダル・開催日程・タイムテーブル（rem は html 62.5% 基準の px×0.1 と揃える） */
    --fz-12: 1.2rem;
    --fz-13: 1.3rem;
    --fz-15: 1.5rem;
    --fz-18: 1.8rem;
    --fz-20: 2rem;
    --fz-22: 2.2rem;
    --fz-25: 2.5rem;
    --fz-30: 3rem;
    --fz-34: 3.4rem;
    --fz-37: 3.7rem;
    --fz-38: 3.8rem;
    --fz-50: 5rem;
    --mx-3: 0.3rem;
    --mx-5: 0.5rem;
    --mx-8: 0.8rem;
    --mx-10: 1rem;
    --mx-21: 2.1rem;
    --mx-40: 4rem;
    --mx-45: 4.5rem;
    --mx-60: 6rem;
    --mx-80: 8rem;
    --mx-90: 9rem;
    --mx-100: 10rem;
    --mx-120: 12rem;
    --fz-10: 1rem;
    --color-brand: #6B9CFA;
    --color-white: #fff;
    --color-text: #343F4F;
    --color-text-sub: #343F4F;
}

/* 横はみ出し: ルートでクリップ＋横方向のオーバースクロール抑止（iOS の「何もないのに横に動く」対策） */
html {
    overflow-x: hidden;
    max-width: 100%;
    overscroll-behavior-x: none;
}






@media screen and (min-width: 1400px) {
    html {
        font-size: 62.5%;
    }
}



body {
    margin: 0;
    font-family: var(--fontJp), 'Hiragino Kaku Gothic Pro', 'Meiryo', sans-serif;
}


/* ========================================
   mv_section
   ======================================== */
.mvTexts {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -55%);
    width: 100%;
    max-width: 1040px;
    height: 70vh;
}

.mvTexts p {
    margin: 0;
}

.mvHangar h1 {
    margin: 0 0 4rem;
    font-family: 'Oswald', sans-serif;
    font-size: var(--fz-104);
    font-weight: var(--fw-600);
    color: #fff;
    filter: drop-shadow(0 0 30px #6B9CFA);
    line-height: 11.4rem;
}

.mvTexts p:nth-child(2) {
    font-family: var(--fontJp);
    font-size: var(--fz-24);
    font-weight: var(--fw-600);
    color: #fff;
    background-color: #6B9CFA;
    width: 40.6rem;
    height: 5.7rem;
    display: flex;
    justify-content: var(--center);
    align-items: var(--center);
}

/* 3つ目のpのみ：改行ごとに白背景がテキスト幅に追従（inline + box-decoration-break） */
.mvTexts p:nth-child(3) {
    display: inline;
    font-family: var(--fontJp);
    font-size: var(--fz-32);
    font-weight: var(--fw-600);
    color: #6B9CFA;
    background-color: #fff;
    padding-left: 2.4rem;
    padding-bottom: 0.8rem;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}

.mvTexts p:nth-child(4) {
    font-family: var(--fontJp);
    font-size: var(--fz-32);
    font-weight: var(--fw-600);
    color:  #6B9CFA;
    background-color: #fff;
    width: 47rem;
    height: 6.4rem;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    padding-left: 2.4rem;
    white-space: nowrap;
    margin-top:-1.5rem;
}


/* ナビのアンカー先：sticky ヘッダー（80px）＋少し余白 */
@media screen and (min-width: 769px) {
    #section-schedule,
    #section-program,
    #section-benefits,
    #qa-heading,
    #section-access {
        scroll-margin-top: 9rem;
    }
}

header {
    position: sticky;
    width: 100%;
    height: 80px;
    top: 0;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    background: #fff;
    border-bottom: 1px solid #e5e5e5;
    /* 本文より手前に固定。子要素の重なりは DOM の後ろ＝手前（モバイル全面メニューは nav を先頭に配置） */
    isolation: isolate;
    z-index: 10;
}

header picture {
    margin: 0;
    display: block;
}

header img {
    display: block;
    width: auto;
    height: 5rem;
    max-width: 20.5rem;
    margin-left: 2.4rem;
   
}

header picture img:hover {
    opacity: 0.7;
}

header .header-title {
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    color: #343F4F;
    margin-bottom: 1.5rem;
    margin-left: 2.4rem;
    align-self: flex-end;
}

.hamburger-button {
    display: none;
}

.nav-close-button {
    display: none;
}

/* グロナビ：申込ボタン左に absolute（文言は通常のテキスト表示） */
nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: calc(19.4rem + 3.2rem + 4rem);
    left: clamp(26rem, 30vw, 44rem);
    max-width: calc(100% - 50rem);
    margin: 0;
}

nav ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 2.4rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

nav a {
    text-decoration: none;
    color: #343F4F;
    font-size: clamp(1.4rem, 1.1rem + 0.4vw, var(--fz-16));
    font-weight: var(--fw-700);
    line-height: 1.5;
   
}

nav a:hover {
    color: #FFA630;
    transition: color 0.3s ease;
}

nav a:focus-visible {
    outline: 0.2rem solid #6B9CFA;
    outline-offset: 0.2rem;
}

header a.applyButton {
    width: 19.4rem;
    height: 4.8rem;
    background: #FFA630;
    color: #fff;
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    border-radius: 6rem;
    cursor: pointer;
    text-decoration: none;
    display: flex;
    justify-content: var(--center);
    align-items: var(--center);
    gap: 1rem;
    line-height: 1.5;
    margin-left: var(--mx-auto);
    margin-right: 3.2rem;
    transition: background-color 0.25s ease, color 0.25s ease;
    border:2px solid #FFA630;
}

header a.applyButton img {
    width: 1rem;
    height: 1.4rem;
    margin-left: 1rem;
    display: block;
   
}
/* スマホ等タッチ主体では :hover を当てない（タップ後の「張り付き」や無用な反転を防ぐ） */
@media (hover: hover) and (pointer: fine) {
    header a.applyButton:hover {
        background: #fff;
        color: #FFA630;
        border: 2px solid #FFA630;
    }

    header a.applyButton:hover img {
        filter: brightness(0) saturate(100%) invert(71%) sepia(66%) saturate(1795%) hue-rotate(337deg) brightness(102%) contrast(101%);
    }

    header a.applyButton:hover p {
        color: #FFA630;
    }
}


.mvHangar {
    position: relative;
    width: 100%;
    height: calc(100dvh - 8rem);
    background-image: url(../img/pc/mv/mv_pc.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}

.mvHangar::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: calc(100dvh - 8rem);
    background-image: url(../img/pc/mv/mv_bg.png);
    background-repeat: no-repeat;
    background-color: #BEDEFF;
    background-size: cover;
    background-position: center;
    z-index: -1;
}



/* ========================================
   wrapper_section
   ======================================== */
.scheduleRecommendedHangarWrapper {
    width: 100%;
    height: auto;
    padding-top:12rem;
    padding-bottom: 8rem;
    background-image: url(../img/pc/wrapper/wrapper-bg.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}

/* ========================================
   schedule_section
   ======================================== */
.scheduleHangar {
    width: 100%;
}

.scheduleHangar h2 {
    font-family: var(--fontJp);
    font-size: var(--fz-48);
    font-weight: var(--fw-700);
    text-align: var(--ta-center);
    color: #6B9CFA;
    position: relative;
    z-index: 2;
    display: block;
    margin-bottom: 9rem;
}

.scheduleHangar > p {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    text-align: var(--ta-center);
    color: #7E8DA1;
    position: relative;
    display: block;
    margin-left: var(--mx-auto);
    margin-right: var(--mx-auto);
    margin-top: -4rem;
    margin-bottom: 5rem;
}

/* スクロール出現：日程は .scheduleTable > li.fade のみ（他行は JS が .on 付けないため） */
body.has-scheduleScrollReveal :is(
        .scheduleTable > li.fade,
        .recommendedTable,
        .recommendedApply,
        .programTable,
        .visitorBenefits,
        .shuttleBus,
        .movieEmbed,
        .accessHangar > ul,
        .banners
    ) {
    opacity: 0;
    transform: translateY(1.4rem);
    transition: opacity 0.65s ease-out, transform 0.65s ease-out;
}

body.has-scheduleScrollReveal :is(
        .scheduleTable > li.fade,
        .recommendedTable,
        .recommendedApply,
        .programTable,
        .visitorBenefits,
        .shuttleBus,
        .movieEmbed,
        .accessHangar > ul,
        .banners
    ).on {
    opacity: 1;
    transform: translateY(0);
}

/* .scheduleTable > li 以外（装飾疑似要素付きブロック）の ::before / ::after */
body.has-scheduleScrollReveal :is(
        .recommendedTable,
        .recommendedApply,
        .programTable,
        .visitorBenefits,
        .shuttleBus,
        .accessHangar > ul,
        .banners
    )::before,
body.has-scheduleScrollReveal :is(
        .recommendedTable,
        .recommendedApply,
        .programTable,
        .visitorBenefits,
        .shuttleBus,
        .accessHangar > ul,
        .banners
    )::after {
    opacity: 0;
    transform: translateY(1.4rem);
    transition: opacity 0.65s ease-out, transform 0.65s ease-out;
}

body.has-scheduleScrollReveal :is(
        .recommendedTable,
        .recommendedApply,
        .programTable,
        .visitorBenefits,
        .shuttleBus,
        .accessHangar > ul,
        .banners
    ).on::before,
body.has-scheduleScrollReveal :is(
        .recommendedTable,
        .recommendedApply,
        .programTable,
        .visitorBenefits,
        .shuttleBus,
        .accessHangar > ul,
        .banners
    ).on::after {
    opacity: 1;
    transform: translateY(0);
}

.scheduleHangar h2::before {
    content: "";
    width: 43.5rem;
    height: 9.5rem;
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, -50%);
    z-index: -1;
    background-image: url(../img/pc/schedule/ttl01.svg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

.scheduleHangar h2::after {
    content: "";
    display: block;
    width: 4rem;
    height: 0.2rem;
    background-color: #6B9CFA;
    position: absolute;
    transform: translateX(-50%);
    top: calc(100% + 2.4rem);
    left: 50%;
}


.scheduleTable {
    display: grid;
    width: 100%;
    max-width: 1040px;
    grid-template-columns: repeat(3, 320px);
    justify-content: center;
    gap: 4rem;
    margin-left: var(--mx-auto);
    margin-right: var(--mx-auto);
    margin-top: 2.4rem;
    list-style: none;
    padding: 0;
}

.scheduleTable > li {
    width: 320px;
    max-width: 100%;
    height: auto;
    background: #fff;
    border: 1px solid #b6b6b6;
    border-radius: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    padding-top: 3.1rem;
    padding-left: 2.4rem;
    padding-right: 2.4rem;
    padding-bottom: 3.6rem;
}

.scheduleTable > li > :first-child {
    width: 100%;
    padding-bottom: 1.6rem;
    margin-bottom: 1.6rem;
    border-bottom: 1px solid #b6b6b6;
}

.scheduleTable > li > :first-child > p:first-child {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    color: #343F4F;
    margin-bottom: 0.8rem;
}

/* 開催日・時刻を1行に並べる（日付左・時刻右）。狭いカードでは折り返してリスト外にはみ出さない */
.scheduleDateRow {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: flex-end;
    align-content: flex-end;
    width: 100%;
    max-width: 100%;
}

/* スケジュール行の日付（先頭spanの数字と曜日spanで line-height を分ける） */
.scheduleTable .scheduleDateRow > h3,
.scheduleTable h3.scheduleDateRow {
    display: flex;
    flex-wrap: nowrap;
    flex: 1 1 auto;
    max-width: 100%;
    font-family: var(--fontJp);
    font-size: var(--fz-36);
    font-weight: var(--fw-700);
    color: #343F4F;
    align-items: flex-end;
    line-height: 1.1;
}

.scheduleTable h3.scheduleDateRow {
    justify-content: flex-start;
    gap: 0.2em;
}

.scheduleTable h3.scheduleDateRow.scheduleDateRow--0429 {
    gap: 0;
}

.scheduleTable .scheduleDateRow > h3 > small,
.scheduleTable h3.scheduleDateRow > small {
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    color: #343F4F;
    line-height: 1.5;
}

.scheduleTable .scheduleDateRow > h3 > span:first-child,
.scheduleTable .scheduleDateRow > h3 > span:first-child {
    flex: 0 0 auto;
    font-size: var(--fz-36);
    font-weight: var(--fw-700);
    color: #343F4F;
    line-height: 1.12;
}

.saturday {
    color: #0021EE;
}


 .sundayHoliday {
    color: #e00;
}

.scheduleTable .scheduleDateRow > h3 .weekDay {
    color: #343F4F;
}

.scheduleTable .scheduleDateRow > h3 + p,
.scheduleTable h3.scheduleDateRow > .scheduleTime {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    color: #343F4F;
    line-height: 1.5;
    flex: 0 0 auto;
    max-width: 100%;
    text-align: right;
    white-space: nowrap;
}

.scheduleTable h3.scheduleDateRow > .scheduleTime {
    margin-left: auto;
}

.scheduleTable > li > h4 {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    text-align: var(--ta-left);
    color: #6B9CFA;
    margin-bottom: 0.8rem;

}


.scheduleTable > li > ul {
    margin-left: 2.4rem;
    list-style-type: disc;
    margin-bottom: 1.6rem;
}


.scheduleTable > li > ul > li {
    font-size: var(--fz-14);
    color: #343F4F;
    font-weight: var(--fw-500);
    font-family: var(--fontJp);

}





.scheduleTable > li > .detailLink {
    display: flex;
    width: 100%;
    justify-content: center;
    gap: 0.8rem;
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    color: #6B9CFA;
    text-decoration: none;
    margin-top: auto;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
    -webkit-transition: opacity 0.25s ease;
    transition: opacity 0.25s ease;
}

.scheduleTable > li > button.detailLink {
    -webkit-appearance: none;
    appearance: none;
    border: none;
    padding: 0;
    background: transparent;
    text-align: inherit;
}

.scheduleTable > li > .detailLink img {
    display: block;
    flex-shrink: 0;
}

.scheduleTable > li > a.backLink {
    display: flex;
    justify-content: center;
    margin-top: 1.2rem;
    font-size: var(--fz-14);
    font-weight: var(--fw-700);
    color: #343F4F;
    text-decoration: underline;
    text-underline-offset: 0.2em;
    -webkit-transition: opacity 0.25s ease;
    transition: opacity 0.25s ease;
}

@media (hover: hover) and (pointer: fine) {
    .scheduleTable > li > .detailLink:hover,
    .scheduleTable > li > a.backLink:hover {
        opacity: 0.7;
    }
}

/* ========================================
   recommended_section
   ======================================== */

.recommendedHangar {
    position: relative;
    margin-top: 12rem;
}



.recommendedHangar h2 {
    font-family: var(--fontJp);
    font-size: var(--fz-48);
    font-weight: var(--fw-700);
    text-align: var(--ta-center);
    color: #6B9CFA;
    position: relative;
    z-index: 1;
    display: block;
    margin-bottom: 6.6rem;
}

.recommendedHangar h2::before {
    content: "";
    width: min(65.6rem, 100vw);
    height: 9.5rem;
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, -50%);
    z-index: -1;
    background-image: url(../img/pc/recommended/ttl02.svg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

.recommendedHangar h2::after {
    content: "";
    display: block;
    width: 4rem;
    height: 0.2rem;
    background-color: #6B9CFA;
    position: absolute;
    transform: translateX(-50%);
    top: calc(100% + 1.2rem);
    left: 50%;
}

.recommendedTable {
    position: relative;
    z-index: 1;
    display: grid;
    width: 100%;
    max-width: 1040px;
    height:auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem;
    margin-left: var(--mx-auto);
    margin-right: var(--mx-auto);
    margin-top: 2.4rem;
    list-style: none;
    padding: 0;
}

.recommendedTable > li {
    width: auto;
    justify-self: stretch;
    height: auto;
}

.recommendedTable > li > img {
    width: 100%;
    height: auto;
}

.recommendedTable > li > h3 {
    font-family: var(--fontJp);
    font-size: var(--fz-24);
    font-weight: var(--fw-700);
    text-align: var(--ta-left);
    color: #6B9CFA;
    margin-top: 1.6rem;
    margin-bottom: 1.6rem;
}

.recommendedTable > li > p {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-400);
    text-align: var(--ta-left);
    color: #343F4F;
    margin-bottom: 0;
    line-height: 1.5;
}

/* 参加ガイドの下：申込CTAのみ（旧 recommendedHangar 内から分離） */
.recommendedApplyHangar {
    position: relative;
}

.recommendedApplyHangar::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1.6rem solid rgba(107, 156, 250, 0.2);
    pointer-events: none;
    z-index: 2;
}

.recommendedApply {
    position: relative;
    z-index: 1;
    width: 100%;
    height: auto;
    display: flex;

}

.recommendedApply img {
    display: block;
    width: 70%;
    height: auto;
    margin-left: var(--mx-auto);
    margin-right: var(--mx-auto);
}

/* 右 55%：青ライン3本＋ white-opacity（画像1枚だけだと size/position が4件ずつで無効になる） */
.recommendedApply::after {
    content: "";
    position: absolute;
    opacity: 1;
    top: 0;
    right: 0;
    bottom: 0;
    width: 55%;
    background-image:
        linear-gradient(rgba(107, 156, 250, 0.2), rgba(107, 156, 250, 0.2)),
        linear-gradient(rgba(107, 156, 250, 0.2), rgba(107, 156, 250, 0.2)),
        linear-gradient(rgba(107, 156, 250, 0.2), rgba(107, 156, 250, 0.2)),
        url(../img/pc/recommended/white-opacity.png);
    background-repeat: no-repeat;
    background-size:
        1.6rem calc(100% - 3.2rem),
        100% 1.6rem,
        100% 1.6rem,
        100% 100%;
    background-position:
        right 1.6rem,
        left top,
        left bottom,
        right top;
    z-index: 1;
    pointer-events: none;
}

.recommendedApply > div {
    width: 30%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    row-gap: 2.4rem;
    z-index: 2;
}


.recommendedApply > div > p {
    font-family: var(--fontJp);
    font-size: var(--fz-32);
    font-weight: var(--fw-700);
    text-align: var(--ta-center);
    color: #343F4F;
    margin: 0;
    line-height: 1.5;
    max-width: 32.2rem;

}

.recommendedApply > div > a {
    width: 32.2rem;
    min-height: 6.4rem;
    padding: 0 2.4rem;
    background: #FFA630;
    color: #fff;
    border: 2px solid #FFA630;
    font-family: var(--fontJp);
    font-size: var(--fz-24);
    font-weight: var(--fw-700);
    line-height: 1.5;
    border-radius: 6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.8rem;
    transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

/* タッチ端末ではホバー見た目を当てない（header の applyButton と同様） */
@media (hover: hover) and (pointer: fine) {
    .recommendedApply > div > a:hover {
        background: #fff;
        color: #FFA630;
        border-color: #FFA630;
    }

    /* 矢印は SVG が stroke #fff のため、白背景上ではオレンジに寄せる */
    .recommendedApply > div > a:hover > img {
        filter: brightness(0) saturate(100%) invert(58%) sepia(93%) saturate(1800%) hue-rotate(359deg) brightness(1.02) contrast(1.02);
    }
}

.recommendedApply > div > a > img {
    display: block;
    width: 1.4rem;
    height: 2.4rem;
    margin: 0;
    flex-shrink: 0;
}

/* ========================================
   program_section
   ======================================== */
.programHangar {
    position: relative;
    /* 縦方向は装飾をはみ出し許可、横方向はクリップ */
    overflow-x: clip;
    overflow-y: visible;
    background-image: url(../img/pc/mainprogram/pattern_03_program.webp);
    padding-top:17em;
    background-position: center;
    background-size: cover;
    height: auto;
    padding-bottom: 12rem;
}

.programHangar::before{
    content: '';
    position: absolute;
    top: 50%;
    right: auto;
    bottom: auto;
    left: 50%;
    width: 4000px;
    height: 4000px;
    transform: translate(-35%, -72%) rotate(30deg);
    background-image: url(../img/pc/mainprogram/program-bg.svg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    z-index: -2;
}


.programHangar h2 {
    font-family: var(--fontJp);
    font-size: var(--fz-48);
    font-weight: var(--fw-700);
    text-align: var(--ta-center);
    color: #fff;
    position: relative;
    z-index: 1;
    text-shadow: 0 0 1rem #6B9CFA;
}

.programHangar h2::before {
    content: "";
    width: 43.3rem;
    height: 9.5rem;
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, -50%);
    z-index: -1;
    background-image: url(../img/pc/mainprogram/ttl03.svg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}


.programTable {
    width: 100%;
    max-width: 1040px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 320px));
    gap: 4rem;
    margin-left: var(--mx-auto);
    margin-right: var(--mx-auto);
    margin-top: 6.4rem;
    list-style: none;
    padding: 0;
}

.programTable > li {
    width:320px;
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
}

.programTable img {
    width: 100%;
    height: auto;
    border-radius: 1rem;
}

.programTable > li > h3 {
    font-family: var(--fontJp);
    font-size: var(--fz-24);
    font-weight: var(--fw-700);
    text-align: var(--ta-left);
    color: #215CCF;
}

.programTable > li > p {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-400);
    text-align: var(--ta-left);
    line-height: 1.5;
    color: #343F4F;
    margin-bottom: 0;
}

.visitorBenefits {
    width: 100%;
    max-width: 1040px;
    height: auto;
    display: flex;
    gap: 1.6rem;
    margin-left: var(--mx-auto);
    margin-right: var(--mx-auto);
}

.visitorBenefits > div {
    position: relative;
    margin-top: 12rem;
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    color:#fff;
    background-color: #fff;
    border-radius: 1rem;
    padding: 4rem;
    filter: drop-shadow(0 0 1.5rem #A3CEFF);
}

.visitorBenefits > div::after {
    content: "";
    position: absolute;
    top: -15%;
    left: max(-10%, -4rem);
    width: min(20em, 75vw);
    height: 30rem;
    pointer-events: none;
    background-image: url(../img/pc/mainprogram/kirinuki_03.webp);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
    transform: rotate(5deg);
    transform-origin: center center;
}

.visitorBenefits h3,
.visitorBenefits > div > h3 {
    font-family: var(--fontJp);
    font-size: var(--fz-48);
    font-weight: var(--fw-700);
    text-align: var(--ta-center);
    color: #6B9CFA;
}

.visitorBenefits > div > p {
    font-size: var(--fz-24);
    font-weight: var(--fw-700);
    text-align: var(--ta-center);
    color: #343F4F;
    margin-bottom: 6rem;
}

.visitorBenefits ul > li p {
    color: #343F4F;
}

.visitorBenefits ul {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.8rem;
    list-style: none;
    padding: 0;
}

.visitorBenefits ul > li {
    width: 100%;
    height: auto;
    background: #E0F3FF;
    display: flex;
    flex-direction: column;
    position: relative;
}

/* li ごとに別の ::after（nth-child で分岐） */
.visitorBenefits ul > li:nth-child(1)::after,
.visitorBenefits ul > li:nth-child(2)::after,
.visitorBenefits ul > li:nth-child(3)::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

.visitorBenefits ul > li:nth-child(1)::after {
    top: -3rem;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: 100%;
    height: 5.9rem;
    background-image: url(../img/pc/mainprogram/tokuten01.svg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}

.visitorBenefits ul > li:nth-child(2)::after {
    top: -3rem;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: 100%;
    height: 5.9rem;
    background-image: url(../img/pc/mainprogram/tokuten02.svg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}

.visitorBenefits ul > li:nth-child(3)::after {
    top: -3rem;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: 100%;
    height: 5.9rem;
    background-image: url(../img/pc/mainprogram/tokuten03.svg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}

/* 共通：各カードの先頭 p（土台） */
.visitorBenefits ul > li p:nth-child(1) {
    font-size: 1.6rem;
    font-family: var(--fontJp);
    font-weight: 900;
    color: #343F4F;
    text-align: center;
    margin-top: 4.8rem;
    margin-bottom: 2.8rem;
}

/* ul の1枚目の li だけ（各 li 内の先頭 p ではなく「リストの1番目」） */
.visitorBenefits ul > li:nth-child(1) p:nth-child(1) {
    margin-bottom: 0.5rem;
}

/* テキストの背後に帯を重ねる（::before は既定だとテキストの“前”に来る） */
.visitorBenefits ul > li:nth-child(1) p:nth-child(2) {
    position: relative;
    z-index: 0;
}

.visitorBenefits ul > li:nth-child(1) p:nth-child(2)::before {
    content: "";
    position: absolute;
    left: 50%;
    top: calc(50% + 2rem);
    transform: translate(-50%, -50%);
    width: min(22rem, 90vw);
    height: 2rem;
    background-color: #FFDCA1;
    z-index: -1;
}


.visitorBenefits ul > li p:nth-child(2) {
    font-size: 2.8rem;
    font-family: var(--fontJp);
    font-weight: 700;
    color: #343F4F;
    text-align: left;
    margin-bottom: 3.2rem;
    text-align: center;
}

.visitorBenefitsAmountLine {
    margin-top: 0;
}

.visitorBenefits ul > li p:nth-child(2) span {
    font-size: 4.4rem;
    font-family: var(--fontJp);
    font-weight: 700;
    color: #343F4F;
    text-align: left;
    text-align: center;
    margin-top:0;
}

.visitorBenefits ul > li p:nth-child(3) {
    font-size: 1.4rem;
    font-family: var(--fontJp);
    font-weight: 400;
    color: #343F4F;
    text-align: left;
    margin-bottom: 1.6rem;
    text-align: center;
    margin-bottom: 2.4rem;
    line-height: 1.5;
}

.shuttleBus {
    position: relative;
    z-index: 0;
    max-width: 1040px;
    height: auto;
    flex-direction: column;
    border: 2px solid #b6b6b6;
    border-top: none;
    display: flex;
    margin-left: var(--mx-auto);
    margin-right: var(--mx-auto);
    margin-top: 9.6rem;
    padding-bottom: 4rem;
    overflow: visible;
}

.shuttleBus::after {
    content: "";
    position: absolute;
    right: max(-14.5%, -5rem);
    bottom: -15%;
    width: min(27.1em, 85vw);
    height: 23.6rem;
    pointer-events: none;
    z-index: 0;
    background-image: url(../img/pc/mainprogram/kirinuki_04.webp);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
    transform-origin: center center;
}

.shuttleBus > * {
    position: relative;
    z-index: 1;
}

.shuttleBus h3 {
    position: relative;
    font-family: var(--fontJp);
    font-size: var(--fz-48);
    font-weight: var(--fw-700);
    text-align: var(--ta-center);
    color: #6B9CFA;
    max-width: 100%;
    margin-top: -3.4rem;
    margin-bottom: 2.4rem;
}

.shuttleBus h3::before {
    content: '';
    width: 25%;
    height: 2px;
    background: #B6B6B6;
    position: absolute;
    top: 50%;
    transform: translate(0, -50%);
    right: 0;
}

.shuttleBus h3::after {
    content: '';
    width: 25%;
    height: 2px;
    background: #B6B6B6;
    position: absolute;
    top: 50%;
    transform: translate(0, -50%);
    left: 0;
}

/* 直下の p は3つ目まで（送迎バス案内 → 交通補助 → 注釈）を個別指定 */
.shuttleBus > p:nth-of-type(1) {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-400);
    text-align: var(--ta-center);
    color: #343F4F;
    line-height: 1.5;
    margin-bottom: 3rem;
}

.shuttleBus > p:nth-of-type(2) {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-400);
    text-align: var(--ta-center);
    color: #343F4F;
    line-height: 1.5;
    margin-bottom: 1.6rem;
}

.shuttleBus > p:nth-of-type(3) {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-400);
    text-align: var(--ta-center);
    color: #343F4F;
    line-height: 1.5;
}

.shuttleBus > h4 {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 1.6rem;
    height: 3.5rem;
    font-family: var(--fontJp);
    font-size: var(--fz-24);
    font-weight: var(--fw-700);
    text-align: var(--ta-center);
    color: #6B9CFA;
    line-height: 1.5;
    margin-bottom: 1.6rem;
}

.shuttleBus > h4 img {
    display: block;
    width: auto;
    height: 2.4rem;
    flex-shrink: 0;
}

.shuttleBus > ul {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.6rem;
}

.shuttleBus > ul > li {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    text-align: var(--ta-center);
    color: #343F4F;
    line-height: 1.5;
    margin-bottom: 1.6rem;
}

/* ========================================
   movie_section
   ======================================== */
.movieQaAccessWrapper {
    position: relative;
    /* hidden だと子セクションの余白・はみ出し装飾が窮屈に見えやすい。横だけ抑える（html で overflow-x 済み） */
    overflow-x: clip;
    overflow-y: visible;
}

.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/pc/movie/pattern_04_movie02.webp);
    background-position: center top;
    background-repeat: repeat-y;
    background-size: 100% auto;
}

.movieHangar {
    position: relative;
    padding-top: 29.8rem;
    padding-bottom: 16rem;
    overflow: visible;
    /* background-image: url(../img/pc/movie/pattern_04_movie.webp); */
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

/* 動画枠のサイズはラッパーにまとめ、iframe は親いっぱいに合わせる（幅に連動して 16:9） */
.movieEmbed {

    width: 100%;
    max-width: 814px;
    height: auto;
    margin-left: var(--mx-auto);
    margin-right: var(--mx-auto);
    border-radius: 16px;
    padding: 4px;
    background-color: #fff;
}

.movieEmbed iframe {
    display: block;
    width:100%;
    aspect-ratio: 16 / 9;
    height:auto;
    border-radius: 14px;
    background-color: #fff;
  
}


.movieEmbed::before {
    content: "";
    position: absolute;
    left: 37%;
    top: -35%;
    transform: translateX(-50%);
    width: 90rem;
    height: 40rem;
    z-index: 1;
    pointer-events: none;
    background-image: url(../img/pc/movie/fukidashi-pc-g.webp);
    background-repeat: no-repeat;
    background-position: center top;
    background-size: contain;

}



.movieEmbed::after {
    content: '';
    position: absolute;
    left: 100%;
    top: 20rem;
    transform: translateX(-50%);
    width: 30rem;
    height: 30rem;
    z-index: 1;
    pointer-events: none;
    background-image: url(../img/mobile/movie/fukidashi-movie-sp_after.webp);
    background-repeat: no-repeat;
    background-position: center top;
    background-size: contain;

}






/* ========================================
   qa_section
   ======================================== */
/* FAQ：元サイトの .sec-faq / .faq-box 指定（セクション見出しは .qaHangar h2） */
.qaHangar {
    position: relative;
    overflow-x: clip;
    overflow-y: visible;
    padding-bottom: 16rem;
    background: transparent;
}

.qaHangar::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -8rem;
    bottom: -8rem;
    z-index: -1;
    pointer-events: none;
    /* background-image: url(../img/pc/q&a/pattern_05_qa.webp); */
    height: 100;
    background-position: center;
    background-repeat: no-repeat;
}




.qaHangar h2 {
    font-family: var(--fontJp);
    font-size: var(--fz-48);
    font-weight: var(--fw-700);
    text-align: var(--ta-center);
    color: #6B9CFA;
    position: relative;
    z-index: 1;
    display: block;
    margin-bottom: 6.6rem;

}

.qaHangar h2::before {
    content: "";
    width: 17.7rem;
    height: 9.5rem;
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, -50%);
    z-index: -1;
    background-image: url("../img/pc/q&a/ttl04.svg");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

.qaHangar h2::after {
    content: "";
    display: block;
    width: 4rem;
    height: 0.2rem;
    background-color: #6B9CFA;
    position: absolute;
    transform: translateX(-50%);
    top: calc(100% + 1.2rem);
    left: 50%;
}

.faq-box {
    display: grid;
    gap: 20px;
    margin: 50px 0 0;
    padding: 0;
    list-style: none;
    max-width: 1040px;
    margin-left: var(--mx-auto);
    margin-right: var(--mx-auto);
}

.faq-box > li {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: minmax(9.2rem, auto) auto;
    align-items: stretch;
    border-radius: 20px;
    background-color: #fff;
    background: #fff;
    opacity: 1 !important;
    box-shadow: 0 0 11px #A3CEFF;
    padding: 0;
    overflow: hidden;
    cursor: pointer;
}

/* #6B9CFA の円 + 白十字（一辺 3.2rem） */
.faq-box .ico {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    justify-content: var(--center);
    align-items: var(--center);
    align-self: center;
    width: var(--fz-32);
    height: var(--fz-32);
    margin-right: var(--fz-24);
    border-radius: 50%;
    background: #6B9CFA;
    transition: transform 0.3s ease;
    position: relative;
    flex-shrink: 0;
}

.faq-box .ico.on {
    transform: rotate(90deg);
}

.faq-box .ico.on::before {
    opacity: 0;
}

.faq-box .ico::after,
.faq-box .ico::before {
    position: absolute;
    left: 50%;
    top: 50%;
    content: "";
    background: #fff;
    transition: opacity 0.3s ease;
}

.faq-box .ico::before {
    width: var(--fz-16);
    height: 2px;
    transform: translate(-50%, -50%);
}

.faq-box .ico::after {
    width: 2px;
    height: var(--fz-16);
    transform: translate(-50%, -50%);
}

/* dl を畳んで dt/dd を li のグリッド子に（1行目＝質問、2行目＝回答で h3 位置が開閉で変わらない） */
.faq-box > li > dl {
    display: contents;
}

.faq-box dt {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    align-items: center;
    padding-left: var(--mx-16);
    padding-right: var(--mx-16);
}

.faq-box dd {
    grid-column: 1 / -1;
    grid-row: 2;
    display: none;
    margin: 0;
    padding: 0 var(--fz-24) var(--fz-28);
}

.faq-box dt h3 {
    margin: var(--mx-0);
    font-family: var(--fontJp);
    font-size: 20px;
    font-weight: var(--fw-700);
    letter-spacing: 0.05em;
    line-height: 1.5;
    text-align: var(--ta-left);
    color: #343F4F;
}

.faq-box dd p {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-400);
    letter-spacing: 0.05em;
    line-height: 1.5;
    margin: var(--fz-16) var(--mx-0) var(--mx-0);
    text-align: var(--ta-left);
    color: #343F4F;
}

/* ========================================
   access_section
   ======================================== */

.accessHangar {
    position: relative;
    /* 縦方向は装飾をはみ出し許可、横方向はクリップ */
    overflow-x: clip;
    overflow-y: visible;
    padding-bottom: 8rem;
}

.accessHangar::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -16rem;
    bottom: -16rem;
    /* background-image: url(../img/pc/access/pattern_06_access.webp); */
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.accessHangar > * {
    position: relative;
    z-index: 1;
}

.accessHangar h2 {
    font-family: var(--fontJp);
    font-size: var(--fz-48);
    font-weight: var(--fw-700);
    text-align: var(--ta-center);
    color: #6B9CFA;
    position: relative;
    z-index: 1;
    display: block;
    margin-bottom: 6.6rem;
}

/* ttl05.svg viewBox 479.6×138.2（他 hangar と同様に高さ基準で幅を算出） */
.accessHangar h2::before {
    content: "";
    height: 9.5rem;
    width: calc(9.5rem * 479.6 / 138.2);
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, -50%);
    z-index: -1;
    background-image: url("../img/pc/access/ttl05.svg");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

.accessHangar h2::after {
    content: "";
    display: block;
    width: 4rem;
    height: 0.2rem;
    background-color: #6B9CFA;
    position: absolute;
    transform: translateX(-50%);
    top: calc(100% + 1.2rem);
    left: 50%;
}

/* 自家用車カード：住所＋ピン横の Google Map */
.accessHangar > ul > li > div > div a {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    text-align: var(--ta-left);
    color: #6B9CFA;
    text-decoration: underline;
    transition: opacity 0.25s ease;
}

/* 交通費補助カード：本文直下の乗り場リンク */
.accessHangar > ul > li > a {
    display: inline-block;
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    text-align: var(--ta-left);
    color: #6B9CFA;
    text-decoration: underline;
    margin-bottom: 2.4rem;
    transition: opacity 0.25s ease;
}

@media (hover: hover) and (pointer: fine) {
    .accessHangar > ul > li > div > div a:hover,
    .accessHangar > ul > li > a:hover {
        opacity: 0.7;
    }
}

.accessHangar > ul {
    list-style: none;
    padding-left: 0;
    margin-top: 0;
    margin-bottom: 0;
    margin-left: var(--mx-auto);
    margin-right: var(--mx-auto);
    width: 100%;
    max-width: none;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: 4rem;
}

.accessHangar > ul > li {
    margin: 0;
    flex: 0 1 500px;
    max-width: 100%;
    background-color: #FFFFFF;
    border-radius: 10px;
    padding: 4rem;
    border: 1px solid #B6B6B6;
}

/* 1枚目カード（自家用車）— 行426の <li> に疑似要素 */
.accessHangar > ul > li:first-child {
    position: relative;
}

.accessHangar > ul > li:first-child::before {
    content: "";
    position: absolute;
    width: min(22rem, 55vw);
    height: 42rem;
    background-image: url(../img/pc/access/kirinuki_02.webp);
    background-repeat: no-repeat;
    background-size: contain;
    top: 63%;
    left: max(-30%, -12rem);
    transform: rotate(-10deg);
    transform-origin: center center;
    pointer-events: none;
}

.accessHangar > ul > li > h3 {
    font-family: var(--fontJp);
    font-size: var(--fz-24);
    font-weight: var(--fw-700);
    text-align: var(--ta-left);
    color: #343F4F;
    margin-bottom: 2.4rem;
}

.accessHangar > ul > li > p {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-400);
    text-align: var(--ta-left);
    line-height: 1.5;
    color: #343F4F;
    margin-bottom: 2.4rem;
}

.accessHangar > ul > li:nth-child(2) > p:last-of-type {
    margin-bottom: 0;
}

.accessHangar > ul > li > div {
    display: flex;
    flex-direction: row;
    
    align-items: stretch;
    gap: 2rem;
    margin-bottom: 2.4rem;
    justify-content: start;
}

.accessHangar > ul > li > div p {
    margin: 0;
    display: flex;
    align-items: center;
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-400);
    line-height: 1.5;
    text-align: var(--ta-left);
    color: #343F4F;
}

.accessHangar > ul > li > div img {
    flex-shrink: 0;
    width: 1.9rem;
    height: 2.4rem;
    height: auto;
    object-fit: contain;
    object-position: center;
}

.accessHangar > ul > li > div >div {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.8rem;
}

.accessHangar > ul > li > ul > li {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-400);
    line-height: 1.5;
    text-align: var(--ta-left);
    color: #343F4F;
}

.accessHangar > ul > li > ul > li > span {
    display: inline-block;
    width: 10px;
    height: 10px;
    margin-right: 0.5rem;
    border-radius: 50%;
    background-color: #6B9CFA;
    vertical-align: middle;
}

/* ========================================
   banner_section
   ======================================== */
.bannerHangar {
    position: relative;
    padding-top: 8rem;
    padding-bottom: 8rem;
    background: transparent;
    background-image: url(../img/mobile/bnr/pattern_07_bnr_bg.webp);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 1;

}

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

.bannerHangar .banners {
    position: relative;
    z-index: 1;
}
.bannerHangar .banners {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 4rem;
    max-width: 1040px;
    margin-left: var(--mx-auto);
    margin-right: var(--mx-auto);
}

.banners img {
    max-width: 500px;
    height: auto;
    transition: opacity 0.2s ease;
}

.banners img:hover {
    opacity: 0.7;
}

/* ========================================
   footer_section
   ======================================== */

.footerHangar {
    background-color: #343F4F;
    padding-left:15%;
    padding-right:12%;
    padding-top: rem;
    padding-bottom: 3.6rem;
    height:18.6rem;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
}

.footerHangar > div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.6rem;
    max-width: 30.4rem;
}

.footerHangar > div > img {
    width: auto;
    height: 4.2rem;
}

.footerHangar > div > p {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-400);
    text-align: var(--ta-left);
    color: #fff;
}

.footerHangar > p {
    font-family: var(--fontJp);
    font-size: var(--fz-16);
    font-weight: var(--fw-400);
    text-align: var(--ta-right);
    color: #fff;
}

/* ========================================
   日程：モーダル開閉時の背景固定＋スクロール演出との兼ね合い
   ======================================== */
html.fixed,
body.fixed {
    overflow: hidden;
    height: 100%;
}

body.fixed {
    position: fixed;
    width: 100%;
    left: 0;
    right: 0;
    /* Safari：fixed 化した body 内の子の height:100% が潰れないよう最低限の高さを確保 */
    min-height: 100dvh;
}

body.has-scheduleScrollReveal .scheduleTable > li.open {
    opacity: 1 ;
    transform: none ;
}

/* 開催日程モーダル表示中はヘッダーを出さない */
body.is-schedule-modal-open > header {
    display: none;
}

/* モーダル・.sec-schedule 内 .schedule-box（ベースのみ。768px 境は responsive.css） */
.modal-wrap {
    position: fixed;
    z-index: 999;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    top: 0;
    left: 0;
    width: 100%;
    /* auto + min-height だけだと Safari（body.fixed 時）で高さが潰れ、下半分が抜ける */
    height: 100vh;
    height: 100dvh;
    opacity: 0;
    visibility: hidden;
    padding: 0;
    margin: 0;
    -webkit-transition: 0.3s ease;
    transition: 0.3s ease;
}

.modal-wrap.on {
    opacity: 1;
    visibility: visible;
}

.modal-close {
    position: absolute;
    inset: 0;
    width: auto;
    height: auto;
    background: #343F4F;
    opacity: 0.7;
}

.modal-box {
    position: relative;
    z-index: 1;
    width: calc(100% - 60px);
    max-width: 1040px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    /* 親の % 高さに依存せずビューポート基準（Safari で下半分が白抜けしない） */
    height: calc(100vh - 120px);
    height: calc(100dvh - 120px);
    max-height: calc(100vh - 120px);
    max-height: calc(100dvh - 120px);
}

.modal-close-btn {
    position: absolute;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    width: var(--fz-64);
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    top: 0;
    right: calc(-1 * 8rem);
    cursor: pointer;
    -webkit-transition: 0.3s ease;
    transition: 0.3s ease;
}

.modal-close-btn::after,
.modal-close-btn::before {
    position: absolute;
    content: "";
    width:30%;
    height: 3px;
    background: #fff;
    -webkit-transition: 0.3s ease;
    transition: 0.3s ease;
}

.modal-close-btn::before {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

.modal-close-btn::after {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

.modal-close-btn--schedule {
    background: #6B9CFA;
}

.modal-box-in {
    width: 100%;
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    background: #fff;
    border-radius: var(--fz-20);
    padding: var(--mx-60);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.modal-head .sub {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    height: var(--fz-34);
}

/* 第1回 */
#modal-schedule-01 .modal-head .sub span {
    font-size: var(--fz-20);
    font-weight: var(--fw-700);
    color: #6B9CFA;
}

/* 第2回 */
#modal-schedule-02 .modal-head .sub span {
    font-size: var(--fz-20);
    font-weight: var(--fw-700);
    color: #6B9CFA;
}

.modal-head .tit {
    font-size: var(--fz-40);
    font-weight: var(--fw-700);
    letter-spacing: 0.05em;
    text-align: var(--ta-center);
    margin: var(--fz-25) 0 0;
}

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

.modal-message > p{
    font-size: var(--fz-20);
    font-weight: var(--fw-700);
    color: #fff;
    line-height: 1.5;
    background-color: #6B9CFA;
    margin-top: var(--mx-24);
    padding-top: var(--mx-16);
    padding-bottom: var(--mx-16);
    text-align: var(--ta-center);
}

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

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

.modal-deadline {
    border: 3px solid;
    padding: var(--mx-8) var(--fz-25);
    margin: var(--fz-30) 0 0;
}

.modal-deadline .txt {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1fr auto 1fr;
    grid-template-columns: 1fr auto 1fr;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-column-gap: var(--fz-25);
    column-gap: var(--fz-25);
}

.modal-deadline .txt > span:first-child {
    justify-self: end;
    text-align: right;
    font-size: var(--fz-24);
}

.modal-deadline .txt > span:last-child {
    justify-self: start;
    text-align: left;
    font-size: var(--fz-24);
}

.modal-deadline .txt span {
    font-size: 2.4rem;
    font-weight: var(--fw-700);
    letter-spacing: 0.05em;
}

.modal-deadline .txt .ico {
    justify-self: center;
    width: 1px;
    height: var(--fz-20);
    margin: 0;
}

.modal-body {
    margin-top: var(--mx-40);
}

.modal-body-tit .tit {
    font-size: var(--fz-30);
    font-weight: var(--fw-700);
    letter-spacing: 0.05em;
    text-align: var(--ta-center);
}

/* モーダル内タイムテーブル（提供ソース。.modal-wrap 内 ul.timetable のみ） */
.modal-wrap ul.timetable {
    list-style: none;
    margin-top: var(--mx-16);
    padding: 0;
    display: -ms-grid;
    display: grid;
    gap: var(--fz-20);
}

.modal-wrap ul.timetable > li {
    list-style: none;
    border: 2px solid #343F4F;
    border-radius: var(--fz-20);
    padding: var(--mx-40);
}

.modal-wrap ul.timetable > li.timetable-heading-only {
    border: none;
    padding: 0;
    border-radius: 0;
}

.modal-wrap ul.timetable .timetable-tit .tit span,
.modal-wrap ul.timetable > li.timetable-heading-only > .tit span {
    display: block;
}

.modal-wrap ul.timetable .timetable-tit .tit .big,
.modal-wrap ul.timetable > li.timetable-heading-only > .tit .big {
    font-size: var(--fz-24);
    font-weight: var(--fw-700);
    letter-spacing: 0.05em;
    text-align: var(--ta-center);
    margin-bottom: var(--mx-21);

}

.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: 2.4rem;
}

.modal-wrap ul.timetable .timetable-tit .tit .sml,
.modal-wrap ul.timetable > li.timetable-heading-only > .tit .sml {
    font-size: var(--fz-24);
    font-weight: var(--fw-700);
    letter-spacing: 0.05em;
    text-align: var(--ta-center);
    margin-bottom: var(--mx-24);
}

.modal-wrap ul.timetable .timetable-tit .sub {
    font-size: var(--fz-18);
    font-weight: var(--fw-700);
    letter-spacing: 0.05em;
    text-align: var(--ta-center);
    margin-bottom: var(--mx-24);
}

/* 帰路送迎バス見出しのみ（index: .timetable-tit--shuttle-return） */
.modal-wrap ul.timetable .timetable-tit--shuttle-return {
    text-align: var(--ta-center);
    width: 100%;
    display: flex;
    flex-direction: column;
}

.modal-wrap ul.timetable .timetable-tit--shuttle-return .tit .sml {
    margin-bottom: 0;
}

.modal-wrap ul.timetable .img-square {
    width: 16rem;
    border-radius: var(--mx-10);
    overflow: hidden;
}

.modal-wrap ul.timetable .img-square img {
    width: 100%;
    display: block;
    height: auto;
}

.modal-wrap ul.timetable .clm2-box {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--fz-20);
    margin: 0;
}

.modal-wrap ul.timetable .clm2-box dt {
    -ms-flex-negative: 0;
    flex-shrink: 0;
    margin: 0;
}

.modal-wrap ul.timetable .clm2-box dd {
    margin: 0;
    padding-top: var(--mx-10);
}

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

.modal-wrap ul.timetable .boder-box {
    list-style: none;
    margin: 0;
    padding: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 2rem;
}

.modal-wrap ul.timetable .boder-box > li {
    border: 2px solid #ccc;
    padding: var(--mx-24);
    border-radius: var(--fz-15);
    overflow: hidden;
    width: 100%;
}

.modal-wrap ul.timetable .boder-box > li.half {
    width: calc(50% - var(--mx-10));
}

.modal-wrap ul.timetable .boder-box .boder-box-tit {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    min-height: var(--mx-40);
    height: auto;
    padding: 0 var(--mx-16);
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    color: #fff;
    background: #6b9cfa;
    margin: 0 auto var(--mx-24);
}

.timetable-recommend-badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-height: var(--mx-40);
    height: auto;
    padding: 0 var(--mx-16);
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    color: #fff;
    background: #6b9cfa;
    margin: 0 auto var(--mx-24);
}

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

.modal-wrap ul.timetable .bg-box {
    list-style: none;
    margin: 0 calc(-1 * var(--mx-24)) calc(-1 * var(--mx-24));
    padding: var(--fz-20);
    display: -ms-grid;
    display: grid;
    gap: var(--fz-20);
    background: #BEDEFF;
}

/* 回ごとの色分け（第2回のみ黄色） */
#modal-schedule-02 ul.timetable .bg-box {
    background: #BEDEFF;
}






.modal-wrap ul.timetable .bg-box > li {
    background: #fff;
    padding: var(--fz-20);
    border-radius: var(--fz-15);
}

.modal-wrap ul.timetable .txt-big {
    font-size: var(--fz-16);
    font-weight: var(--fw-900);
    letter-spacing: 0.05em;
}

.modal-wrap ul.timetable .txt-def {
    font-size: var(--fz-14);
    font-weight: var(--fw-500);
    letter-spacing: 0.02em;
    line-height: 1.5;
}

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

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

.modal-wrap ul.timetable .experience-head {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--fz-20);
}

.modal-wrap ul.timetable .experience-head .cat {
    -ms-flex-negative: 0;
    flex-shrink: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 0 var(--fz-15);
    height: var(--fz-20);
    border-radius: 999px;
}

.modal-wrap ul.timetable .experience-head .cat span {
    font-size: var(--fz-14);
    font-weight: var(--fw-700);
    color: #fff;
    letter-spacing: 0.05em;
}

.modal-wrap ul.timetable .experience-head .txt {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 5px var(--fz-20);
}

.modal-wrap ul.timetable .experience-head .txt span {
    font-size: var(--fz-14);
    letter-spacing: 0.05em;
    line-height: 1.5;
}

.modal-wrap ul.timetable .experience-head.experience-01 .cat {
    background: #ec6d81;
}

.modal-wrap ul.timetable .experience-head.experience-01 .txt {
    color: #ec6d81;
}

.modal-wrap ul.timetable .experience-head.experience-02 .cat {
    background: #4ccb92;
}

.modal-wrap ul.timetable .experience-head.experience-02 .txt {
    color: #4ccb92;
}

.modal-wrap ul.timetable .experience-head.experience-03 .cat {
    background: #06a3e0;
}

.modal-wrap ul.timetable .experience-head.experience-03 .txt {
    color: #06a3e0;
}

.modal-wrap ul.timetable .experience-head.experience-04 .cat {
    background: #f7a12b;
}

.modal-wrap ul.timetable .experience-head.experience-04 .txt {
    color: #f7a12b;
}

.modal-wrap ul.timetable .experience-head.experience-05 .cat {
    background: #9a4bbe;
}

.modal-wrap ul.timetable .experience-head.experience-05 .txt {
    color: #9a4bbe;
}

/* .sec-schedule 内の .schedule-box のみ（一覧 .scheduleTable とは分離） */
.sec-schedule {
    padding-top: var(--mx-120);
}

.sec-schedule .tit-box-main .txt-box {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: var(--center);
    margin: var(--fz-20) 0 0;
}

.sec-schedule .tit-box-main .txt {
    font-size: var(--fz-16);
    letter-spacing: 0.05em;
    line-height: 1.5;
}

.sec-schedule .schedule-box {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: var(--mx-45);
    margin: var(--fz-50) 0 0;
    list-style: none;
    padding: 0;
}

.sec-schedule .schedule-box::after,
.sec-schedule .schedule-box::before {
    position: absolute;
    content: "";
    width: 330px;
    aspect-ratio: 1/1;
}

.sec-schedule .schedule-box::before {
    background: url("../img/schedule-ico-01.webp");
    top: 0;
    right: -250px;
}

.sec-schedule .schedule-box::after {
    background: url("../img/schedule-ico-02.webp");
    top: 0;
    bottom: 0;
    left: -250px;
    margin: auto 0;
}

.sec-schedule .schedule-box > li {
    position: relative;
    z-index: 20;
    width: calc((100% - var(--mx-90)) / 3);
    border: 3px solid;
    border-radius: var(--fz-20);
    padding: var(--fz-40) var(--fz-30) var(--fz-20);
    background: #fff;
}

.sec-schedule .schedule-box > li.open {
    z-index: auto;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 1) {
    border-color: #6B9CFA;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 1) .schedule-head .day {
    color: #6B9CFA;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 1) .modal-head .sub {
    background: #fff;
    border-bottom: 2px solid #6B9CFA;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 1) .modal-head .tit {
    color: #6B9CFA;
    margin-top: var(--mx-8);
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 1) .modal-deadline {
    border-color: #6B9CFA;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 1) .modal-deadline .txt {
    color: #6B9CFA;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 1) .modal-deadline .txt .ico {
    background: #6B9CFA;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 2) {
    border-color: #fe8c35;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 2) .schedule-head .day {
    color: #fe8c35;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 2) .modal-head .sub {
    background: #ffffff;
    border-bottom: 2px solid #6B9CFA;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 2) .modal-head .tit {
    color: #6B9CFA
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 2) .modal-deadline {
    border-color: #6B9CFA;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 2) .modal-deadline .txt {
    color: #6B9CFA;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 2) .modal-deadline .txt .ico {
    background: #6B9CFA;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 3) {
    border-color: #66b622;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 3) .schedule-head .day {
    color: #66b622;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 3) .modal-head .sub {
    background: #66b622;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 3) .modal-head .tit {
    color: #66b622;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 3) .modal-deadline {
    border-color: #66b622;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 3) .modal-deadline .txt {
    color: #66b622;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 3) .modal-deadline .txt .ico {
    background: #66b622;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 4) {
    border-color: #ec79ac;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 4) .schedule-head .day {
    color: #ec79ac;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 4) .modal-head .sub {
    background: #ec79ac;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 4) .modal-head .tit {
    color: #ec79ac;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 4) .modal-deadline {
    border-color: #ec79ac;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 4) .modal-deadline .txt {
    color: #ec79ac;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 4) .modal-deadline .txt .ico {
    background: #ec79ac;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 5) {
    border-color: #a259c3;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 5) .schedule-head .day {
    color: #a259c3;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 5) .modal-head .sub {
    background: #a259c3;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 5) .modal-head .tit {
    color: #a259c3;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 5) .modal-deadline {
    border-color: #a259c3;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 5) .modal-deadline .txt {
    color: #a259c3;
}

.sec-schedule .schedule-box > li:nth-of-type(5n + 5) .modal-deadline .txt .ico {
    background: #a259c3;
}

.sec-schedule .schedule-box > li:last-of-type::before {
    position: absolute;
    content: "";
    width: 580px;
    aspect-ratio: 58/29;
    background: url("../img/schedule-ico-03.webp");
    top: 0;
    left: 100%;
}

.sec-schedule .schedule-head .num {
    font-size: var(--fz-20);
    font-weight: var(--fw-700);
    letter-spacing: 0.05em;
    text-align: var(--ta-center);
    display: block;
}

.sec-schedule .schedule-head .day {
    text-align: var(--ta-center);
    display: block;
    margin: 5px 0 0;
}

.sec-schedule .schedule-head .day .big {
    font-size: var(--fz-50);
    font-weight: var(--fw-700);
    letter-spacing: 0.05em;
}

.sec-schedule .schedule-head .day .sml {
    font-size: var(--fz-30);
    font-weight: var(--fw-700);
    letter-spacing: 0.05em;
}

.sec-schedule .schedule-theme {
    margin: var(--fz-25) 0 0;
}

.sec-schedule .schedule-theme .tit {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: var(--mx-10);
}

.sec-schedule .schedule-theme .tit::after {
    content: "";
    width: 100%;
    height: 1px;
    background: #343F4F;
}

.sec-schedule .schedule-theme .tit span {
    -ms-flex-negative: 0;
    flex-shrink: 0;
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    letter-spacing: 0.05em;
}

.sec-schedule .schedule-theme .txt {
    font-size: var(--fz-16);
    letter-spacing: 0.05em;
    line-height: 1.5;
    margin: var(--fz-15) 0 0;
}

.sec-schedule .schedule-theme .txt + .txt {
    margin: var(--mx-3) 0 0;
}

.sec-schedule .schedule-modal-trigger {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    height: var(--fz-50);
    background: #343F4F;
    border: 2px solid #343F4F;
    border-radius: 999px;
    margin: var(--fz-15) 0 0;
    cursor: pointer;
    -webkit-transition: 0.3s ease;
    transition: 0.3s ease;
}

.sec-schedule .schedule-modal-trigger .txt {
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    color: #fff;
    letter-spacing: 0.05em;
    -webkit-transition: 0.3s ease;
    transition: 0.3s ease;
}

.sec-schedule .schedule-modal-trigger .ico {
    position: absolute;
    width: var(--fz-20);
    aspect-ratio: 24/20;
    right: 10%;
    -webkit-transition: 0.3s ease;
    transition: 0.3s ease;
}

.sec-schedule .schedule-modal-trigger .ico::after,
.sec-schedule .schedule-modal-trigger .ico::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    -webkit-transition: 0.3s ease;
    transition: 0.3s ease;
}

.sec-schedule .schedule-modal-trigger .ico::before {
    background: url("../img/ico-arrow-wh.svg") center / cover no-repeat;
    opacity: 1;
}

.sec-schedule .schedule-modal-trigger .ico::after {
    background: url("../img/ico-arrow-bk.svg") center / cover no-repeat;
    opacity: 0;
}

.sec-schedule .schedule-link {
    margin: var(--fz-15) 0 0;
}

.sec-schedule .schedule-link a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 5px;
    height: var(--fz-30);
}

.sec-schedule .schedule-link .txt {
    font-size: var(--fz-16);
    font-weight: var(--fw-700);
    color: #343F4F;
    letter-spacing: 0.05em;
    padding-bottom: 3px;
    -webkit-transition: 0.3s ease;
    transition: 0.3s ease;
}

.sec-schedule .schedule-link .ico {
    position: relative;
    width: var(--fz-16);
    aspect-ratio: 24/20;
    right: 0;
    -webkit-transition: 0.3s ease;
    transition: 0.3s ease;
}

.sec-schedule .schedule-link .ico::after,
.sec-schedule .schedule-link .ico::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    -webkit-transition: 0.3s ease;
    transition: 0.3s ease;
}

.sec-schedule .schedule-link .ico::before {
    background: url("../img/ico-arrow-bk.svg") center / cover no-repeat;
    opacity: 1;
}

.sec-schedule .schedule-link .ico::after {
    background: url("../img/ico-arrow-or.svg") center / cover no-repeat;
    opacity: 0;
}

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

.sec-schedule.sec-schedule--modalHost .schedule-box {
    display: block;
    margin: 0;
    gap: 0;
}

.sec-schedule.sec-schedule--modalHost .schedule-box::before,
.sec-schedule.sec-schedule--modalHost .schedule-box::after {
    content: none;
    display: none;
}

.sec-schedule.sec-schedule--modalHost .schedule-box > li {
    width: auto;
    max-width: none;
    border: none;
    border-radius: 0;
    padding: 0;
    margin: 0;
    background: transparent;
}

.sec-schedule.sec-schedule--modalHost .schedule-box > li:last-of-type::before {
    content: none;
    display: none;
}
