/*----------------------------------------
    top page
------------------------------------------*/

/* fv_expo_fes
------------------------------------------*/
#fv_expo_fes {position: relative; display: block; width: 100%; min-height: 700px; height: calc(100lvh - var(--cmn_section_border_h)); background-color: var(--c_black_d);
    .cmn_bg_layer {
        .bg_video {position: absolute; top: 0; left: 0; width: 100%; height: 100%;
         video {position: relative; display: block; width: 100%; height: 100%; object-fit: cover;}
        }
        .layer_black {position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--c_black_d); opacity: 0.4;}
        .layer_dot {position: absolute; top: 0; left: 0; width: 100%; height: 100%;background: repeat center url(../images/webp/video_overlay_dots_01_b.png); background-size: var(--base_video_overlay_dots_size);}
    }
    .cmn_main_layer {position: relative; display: block; width: 100%; height: 100%; text-align: left;
        .content_box {position: absolute; top: 50%; left: 50%; transform: translate(-50% , -50%); width: 90%; height: auto; display: flex; flex-direction: column; justify-content: center; align-items: flex-start;
            .main_title {color: var(--white_l, #FFF); font-size: min(24px , 3.2vw); font-weight: 600; line-height: 2.3em; letter-spacing: 0.7em; margin-bottom: 1.5em;
                .small {font-size: 0.7em;}
            }
            .latest_info_box {position: relative; display: flex; justify-content: flex-start; align-items: center; font-size: clamp(13px , 1.5vw , 14px); line-height: 1.7em; letter-spacing: 0.05em; gap: 1em; width: min(450px, 100%); color: var(--c_white_l); transition: 0.2s;
                .link_arrow {position: relative; display: block; border: 1px solid var(--c_white_l); width: 4em; height: 4em; border-radius: 50%;
                    &::after { position: absolute; display: block; content: ""; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 30%; height: 100%; background: no-repeat center url(../images/svg/icon_dot_arrow_half_r_w.svg); background-size: contain; transition: 0.2s;}
                }
                .latest_info_content_outer {position: relative; display: block; width: calc(100% - 4em - 1em); height: auto; background: var(--c_gd_expo_fes); border-radius: var(--base_border_radius); overflow: hidden;
                    &::before { position: absolute; display: block; content: ""; top: 1px; left: 1px; width: calc(100% - 2px); height: calc(100% - 2px); border-radius: calc(var(--base_border_radius) - 1px); background-color: var(--c_black_d);}
                    .latest_info_content_box {position: relative; display: block; width: calc(100% - 2px); height: auto; padding: 0.7em 1.2em; margin: 0 auto; overflow: hidden;
                        .latest_info_content {position: relative; display: block; white-space: nowrap; width: auto; min-width: max-content;
                            &.is_animated {animation: ticker-animation 12s ease-in-out infinite;}
                        }
                    }
                }
                &:hover {transform: translateX(5px);
                    .link_arrow::after  { transform: translate(-30%, -50%);}
                }
            }
        }
    }
}
@media only screen and (max-width: 835px) {
    #fv_expo_fes { height: calc(var(--vh_px) - var(--cmn_section_border_h)); min-height: initial;
        .cmn_main_layer {
            .content_box {top: initial; bottom: 4%; transform: translate(-50% , 0%); height: calc(100% - 5% - var(--cmn_header_h)*2.8); justify-content: space-between;}
        }
    }
}

@keyframes ticker-animation {
  0% { transform: translateX(0); }
  20% { transform: translateX(0); }
  70% { transform: translateX(calc(-1 * var(--ticker_content_width) + var(--ticker_outer_width) - 1.2em*2 )); }
  90% { transform: translateX(calc(-1 * var(--ticker_content_width) + var(--ticker_outer_width) - 1.2em*2 )); }
  100% { transform: translateX(0); }
}

/* fv_teaser
-------------------------------*/
#fv_teaser {position: relative; display: block; width: 100%; height: calc(100lvh - var(--cmn_section_border_h)); max-height: calc(100vw * 1.4 / 1); min-height: 700px; background-color: var(--c_white_l);
    .cmn_bg_layer {
        .teaser_bg {position: absolute; display: block; top: 0; left: 0; width: 100%; height: 100%;
            img {position: relative; display: block; width: 100%; height: 100%; object-fit: cover;}
        }
    }
    .cmn_main_layer {position: relative; display: block; width: 100%; height: 100%;
        .main_title {position: absolute; display: block; top: 50%; left: 50%; transform: translate(-50% , -50%);
            img { position: relative; display: block; width: 100%; height: 100%; object-fit: contain; }
            &.type_expo { width: 82%; height: 80%;}
            &.type_fes { width: 85%; height: 80%;}
        }
    }
}
@media only screen and (max-width: 835px) {
    #fv_teaser { height: calc(var(--vh_px)*0.7 - var(--cmn_section_border_h)); min-height: initial;}
}

/* fv main
-------------------------------*/
#fv_main {position: relative; display: flex; justify-content: center; align-items: center; width: 100%; height: auto; max-width: 2000px; margin: 0 auto; background-color: var(--c_white_l);
    .area_bg { position: absolute; display: block; top: 0; left: 0; width: 100%; height: 100%;
        img { position: relative; display: block; width: 100%; height: 100%; object-fit: cover;}
    }
    .kv_area_aspect_ratio {position: relative; display: block; width: 100%; height: auto; padding-top: clamp( 550px ,  calc( 100% * 9 / 16 ) , calc(100lvh - var(--cmn_section_border_h))); overflow: hidden;
        .kv_area {position: absolute; top: 0; left: 0; display: block; width: 100%; height: 100%; overflow: hidden;
            .kv_box {position: absolute; display: block; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transform: scale(1.02); transition: 1.6s var(--easeOutQuint);
                img {position: relative; display: block; width: 100%; height: 100%; object-fit: cover;}
                &.active {opacity: 1; transform: scale(1); transition-property: opacity , transform; transition-duration: 2.0s , 6.0s; transition-timing-function: var(--easeOutQuint) , var(--easeOutQuint); }
            }
        }
    }
    .main_title {position: absolute; display: flex;
        img { position: relative; display: block; width: 100%; height: auto; max-height: 100%; object-fit: contain; object-position: bottom center;}
    }
    &.type_expo {
        .main_title {bottom: 0; left: 0; width: 20%; height: auto; transform: translate(4% , 0%);}
    }
    &.type_fes { background: var(--c_gd_fes_green);}
}
@media only screen and (max-width: 835px) {
    #fv_main { height: calc(var(--vh_px)*0.7 - var(--cmn_section_border_h)); max-height: calc(100vw * 1.4 / 1); padding: 4px;
        .kv_area_aspect_ratio {padding-top: min( calc(var(--vh_px) - var(--cmn_section_border_h)) ,  calc( 100% * 9 / 14 )); border-radius: var(--base_border_radius);}
        &.type_expo {
            .kv_area_aspect_ratio {filter: drop-shadow(0 0 6px rgba(0, 187, 255, 0.80));}
            .main_title {left: 50%; transform: translate(-50% , 0%); width: 60%; height: 42%;}
        }
    }
}

/* expo_fes_top_link_boxes
-------------------------------*/
.expo_fes_top_link_boxes {position: relative; display: flex; justify-content: space-between; gap: calc(var(--base_gap)*1); height: auto; margin-bottom: calc(var(--base_distance)*0.5);
    .top_link_box { position: relative; display: block; width: 50%; height: auto; border-radius: var(--base_border_radius); padding: calc(var(--base_gap)*2); overflow: hidden;
        .bg {position: absolute; display: block; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--c_black_d);
            img {position: relative; display: block; width: 100%; height: 100%; object-fit: cover;}
        }
        .logo {position: relative; display: flex; justify-content: center; align-items: center; width: 70%; height: auto; aspect-ratio: 1.1 / 1; margin: 0 auto;
            img {display: block; width: 100%; height: auto;}
            &.type_mb {margin-bottom: var(--base_gap);}
        }
        &.type_expo {border: 1px solid var(--c_expo_blue);
            .logo { /* transform: translateY(3.8%); */ /* filter: drop-shadow(0 0 10px #FFF) drop-shadow( 0 0 50px rgba(120, 219, 255 , 0.7)); */}
        }
        &.type_fes {border: 1px solid var(--c_fes_green);
            .logo { transform: translateY(2.5%); /* filter: drop-shadow(0 0 10px #FFF) drop-shadow( 0 0 min(50px, 7vw) rgba(55, 211, 89, 0.7)); */ }
        }
    }
}
@media only screen and (max-width: 835px) {
    .expo_fes_top_link_boxes { flex-direction: column;
        .top_link_box {width: 100%;}
    }
}

/* date place
-------------------------------*/
.cmn_date_place {position: relative; display: block; text-align: left;
    .date {font-size: min(70px , 8.2vw); line-height: 1.2em; font-weight: 800;  margin-bottom: calc(var(--base_gap)*0.5);
        span {font-size: 0.6em;}
    }
    .event_box {position: relative; display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; margin-bottom: calc(var(--base_gap)*1);
        .event_title {display: inline-block; font-family: var(--f_lexend); font-weight: 700; color: var(--c_white_l); font-size: clamp(11px , 1.3vw , 19px); padding: 0.1em 0.7em; margin-bottom: 0.4em;}
        .place_main {font-weight: 700; font-size: min(24px , 4.8vw); line-height: 1.3em; letter-spacing: 0.05em; margin-bottom: 0.1em;}
        .place_sub {font-weight: 700; margin-bottom: 0.3em;}
        .schedule {display: flex; flex-direction: column; gap: calc(var(--base_gap)*0.25);
            li {display: flex; justify-content: flex-start; align-items: center; flex-wrap: wrap; gap: 0 calc(var(--base_gap)*0.5);
                p {margin-bottom: 0;}
                .title {color: var(--c_white_l); font-weight: 600; padding: 0.1em 0.7em; min-width: 9.5em;}
                .time {font-weight: 600;}
            }
        }
        &.c_expo {
            .event_title {background-color: var(--c_expo_blue);}
            .place_main {color: var(--c_expo_blue);}
            .place_sub {color: var(--c_expo_blue);}
            .schedule {
                li {
                    .title {background-color: var(--c_expo_blue);}
                }
            }
        }
        &.c_fes {
            .event_title {background-color: var(--c_fes_green);}
            .place_main {color: var(--c_fes_green);}
            .place_sub {color: var(--c_fes_green);}
            .schedule {
                li {
                    .title {background-color: var(--c_fes_green);}
                }
            }
        }
        &:last-of-type {margin-bottom: 0;}
    }
}
@media only screen and (max-width: 835px) {
    .cmn_date_place {
        .event_box {
            .schedule {
                li {flex-direction: column; align-items: flex-start;}
            }
        }
    }
}

/* news
-------------------------------*/
#news , #in_news {
    .cmn_news_list {margin-bottom: calc(var(--base_gap)*1);}
}

.cmn_news_list {position: relative; display: flex; flex-direction: column; gap: calc(var(--base_gap)*0.5);}
.cmn_news_rack {position: relative; display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start; gap: 0; width: 100%; height: auto; border: 1px solid var(--c_gray_l); background-color: var(--c_white_l); border-radius: var(--base_border_radius); padding: calc(var(--base_gap)*1) calc(var(--base_gap)*1.5); padding-right: calc(var(--base_gap)*4); text-align: left; transition: 0.2s;
    .news_title {color: var(--c_black_d); font-weight: 700; font-size: clamp(14px , 2vw , 17px); line-height: 1.6em; transition: 0.2s;}
    &::after { position: absolute; display: block; content: ""; top: 0; right: calc(var(--base_gap)*2); width: calc(var(--base_gap)*1); height: 100%; background: no-repeat center url(../images/svg/icon_dot_arrow_r_b.svg); background-size: contain; opacity: 0.4; transition: 0.2s;}
    &:hover {
        .cmn_date {color: var(--c_orange);}
        .news_title {color: var(--c_orange);}
        &::after {transform: translateX(20%);}
    }
    &.type_article_head { padding: calc(var(--base_gap)*1) calc(var(--base_gap)*1.5); margin-bottom: calc(var(--base_gap)*0.5);
        .news_title {font-size: clamp(15px , 2vw , 19px); font-weight: 800; line-height: 1.4em; margin-bottom: calc(var(--base_gap)*0.5);}
        &::after {display: none;}
        &:hover {
            .cmn_date {color: var(--c_black_d);}
            .news_title {color: var(--c_black_d);}
        }
    }
}
@media only screen and (max-width: 835px) {
    .cmn_news_rack {padding: calc(var(--base_gap)*1.4) calc(var(--base_gap)*1);
        &::after {display: none;}
    }
}

/* rich_link_btn
-------------------------------*/
.cmn_rich_link_btn_box {--cmn_rich_link_btn_font_size:clamp(17px , 2.4vw , 26px); position: relative; display: block; 
    .cmn_rich_link_btn_rack {position: relative; display: flex; justify-content: center; align-items: stretch; gap: calc(var(--base_gap)*0.5); margin-bottom: calc(var(--base_gap)*0.5);
        .cmn_rich_link_btn {position: relative; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; width: calc((100% - var(--base_gap)*0.5*2)/3); text-align: left; padding: calc(var(--cmn_rich_link_btn_font_size)*1.2) calc(var(--cmn_rich_link_btn_font_size)*1.6); padding-right: calc(var(--cmn_rich_link_btn_font_size)*4); border-radius: var(--base_border_radius); color: var(--c_white_l); font-weight: 700; font-size: var(--cmn_rich_link_btn_font_size); line-height: 1.1em; letter-spacing: 0.2em; background: var(--c_gd_darkblue); overflow: hidden; transition: 0.2s;
            .text {position: relative;
                .text_main {margin-bottom: 0;
                    &.size_small {font-size: calc(var(--cmn_rich_link_btn_font_size)*0.75); line-height: 1.1em; letter-spacing: 0.2em;}
                }
                .text_sub {font-size: 0.5em; letter-spacing: 0.2em; line-height: 1.4em; margin: 0.4em 0 0.4em;
                    span {white-space: nowrap;}
                }
            }
            .icon { position: absolute; display: block; content: ""; top: 0; right: calc(var(--cmn_rich_link_btn_font_size)*2.5); transform: translateX(50%); width: calc(var(--cmn_rich_link_btn_font_size)*1.4); height: 100%;
                img {display: block; width: 100%; height: 100%; object-fit: contain; transition: 0.6s var(--easeOutQuint);}
                &.arrow {width: calc(var(--cmn_rich_link_btn_font_size)*1);}
            }
            &.type_expo , &.type_fes {padding: calc(var(--cmn_rich_link_btn_font_size)*1.6); padding-right: calc(var(--cmn_rich_link_btn_font_size)*3.5); width: calc((100% - var(--base_gap)*0.5*1)/2);
                &::before { position: absolute; display: block; content: "";  position: absolute; display: block; content: ""; top: 50%; right: calc(var(--cmn_rich_link_btn_font_size)*2.5); transform: translate(50% , -50%); width: calc(var(--cmn_rich_link_btn_font_size)*13); height: auto; aspect-ratio: 1 / 1; background: no-repeat center; background-size: contain; opacity: 0.6; transition: 0.6s var(--easeOutQuint);}
                &:hover {
                    &::before {transform: translate(50% , -50%) scale(1.1);}
                }
            }
            &.type_expo { background: var(--c_gd_expo_blue);
                &::before { background-image: url(../images/svg/link_image_expo.svg); }
            }
            &.type_fes { background: var(--c_gd_fes_green);
                &::before { background-image: url(../images/svg/link_image_fes.svg); }
            }
            &.type_portal {padding: calc(var(--cmn_rich_link_btn_font_size)*1.6); padding-right: calc(var(--cmn_rich_link_btn_font_size)*3.5);  width: 100%; background: var(--c_gd_expo_fes_portal);
                .icon {width: calc(var(--cmn_rich_link_btn_font_size)*1);}
            }
            &:hover {filter: brightness(1.2);
                .icon {
                    img {transform: rotateX(360deg);}
                }
            }
            &.disactive { pointer-events: none; filter: grayscale(1); opacity: 0.5;}
        }
    }
}
@media only screen and (max-width: 835px) {
    .cmn_rich_link_btn_box {
        .cmn_rich_link_btn_rack {flex-direction: column;
            .cmn_rich_link_btn {width: 100%; padding: calc(var(--cmn_rich_link_btn_font_size)*1.2) calc(var(--cmn_rich_link_btn_font_size)*1.2); padding-right: calc(var(--cmn_rich_link_btn_font_size)*4);
                &.type_expo , &.type_fes { width: 100%;  padding: calc(var(--cmn_rich_link_btn_font_size)*1.5) calc(var(--cmn_rich_link_btn_font_size)*1.2); padding-right: calc(var(--cmn_rich_link_btn_font_size)*4);}
            }
        }
    }
}

/*----------------------------------------
    special
------------------------------------------*/
.special_fv_swiper_outer {position: relative; display: block; width: 100%; height: auto; padding: calc(var(--base_gap)*1.5) calc(var(--base_gap)*1);
    .special_fv_swiper {position: relative; display: block; width: 100%; height: calc(var(--vh_px) - var(--cmn_section_border_h) - var(--cmn_header_h)*7.9); max-height: calc(100vw * 9 / 16); margin-bottom: calc(var(--base_gap)*1); 
        .slide_inner {position: relative; display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; padding: calc(var(--base_gap)*0.5); border-radius: var(--base_border_radius); overflow: hidden;
            .slide_bg {position: absolute; display: block; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--c_white_l);
                img { position: relative; display: block; width: 100%; height: 100%; object-fit: cover;  filter: blur(20px) brightness(1.3);}
            }
            .main_img {position: relative; display: block; width: 100%; height: 100%;
                img { position: relative; display: block; width: 100%; height: 100%; object-fit: contain; transition: 0.2s; }
            }
            &:hover {
                .main_img {
                    img {filter: brightness(1.2);}
                }
            }
        }
    }
}

@media only screen and (max-width: 835px) {
    .special_fv_swiper_outer {
        .special_fv_swiper { height: calc(100% *9 / 16); max-height: initial;
            .slide_inner {padding: 0;
                .slide_bg {display: none;}
            }
        }
    }
}

/*----------------------------------------
    in info
------------------------------------------*/
#in_info {
    .cmn_date_place {margin-bottom: calc(var(--base_distance)*0.5);}
    .cmn_sponsors {margin-bottom: calc(var(--base_distance)*1);}
}

.cmn_sponsors { position: relative; display: block; text-align: left;
    .cmn_sponsors_rack {margin-bottom: 1em;
        .cmn_links_rack_title {margin-bottom: 0.5em;}
        p {margin-bottom: 0;}
    }
}

/*----------------------------------------
    in video
------------------------------------------*/
#in_video {
    .cmn_thumbnail_content_list {margin-bottom: calc(var(--base_distance)*0.5);}
}

/*----------------------------------------
    in ticket
------------------------------------------*/
.ticket_list_outer { position: relative; display: block; margin-bottom: calc(var(--base_gap)*2); display: flex; justify-content: flex-start; align-items: stretch; gap: calc(var(--base_gap)*0.5);
    &:last-of-type {margin-bottom: calc(var(--base_distance)*1);}
    .left { position: relative; display: block; width: calc(var(--cmn_section_head_font_size)*4.5); border-radius: var(--base_border_radius);
        .h_box {position: sticky; top: calc(var(--cmn_header_h)*1); left: 0; display: flex; justify-content: center; align-items: flex-start; width: 100%; height: calc(var(--vh_px) - var(--cmn_header_h)*1.3 - var(--cmn_over_frame_size)*2*2); height: auto; padding: calc( var(--cmn_section_head_font_size)*2) 0; overflow: hidden;
            .area_title {position: relative; font-family: var(--f_lexend); font-size: calc( var(--cmn_section_head_font_size)*0.8); font-weight: 700; color: var(--c_white_l); line-height: 1.4em; letter-spacing: 0.1em; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; text-align: left;}
        }
    }
    .right { position: relative; display: block; width: calc(100% - var(--cmn_section_head_font_size)*4.5 - var(--base_gap)*0.5);
        .ticket_box { position: relative; display: block; width: 100%; height: auto; margin-bottom: calc(var(--base_gap)*0.5); border-radius: var(--base_border_radius); overflow: hidden;
            &:last-of-type {margin-bottom: 0;}
            .detail_area { position: relative; display: flex; justify-content: flex-start; align-items: flex-start; gap: calc(var(--base_gap)*2); text-align: left; padding: calc(var(--base_gap)*2) calc(var(--base_gap)*2);
                .main_info {--ticket_info_title_size:clamp(16px , 2vw , 21px); position: relative; width: 50%; height: auto;
                    .price_list {position: relative; display: flex; flex-direction: column; gap: calc(var(--ticket_info_title_size)*1); margin-bottom: calc(var(--base_gap)*1);
                        .price_rack {position: relative; display: block; width: 100%; height: auto; padding-bottom: calc(var(--ticket_info_title_size)*1); border-bottom: 1px solid var(--c_black_d);
                            .price_title {font-size: var(--ticket_info_title_size); line-height: 1.4em; font-weight: 600; margin-bottom: 0.2em;}
                            .price_num {font-size: calc(var(--ticket_info_title_size)*1.2); line-height: 1.4em; font-weight: 600; margin-bottom: 0;
                                span {font-size: 0.6em;}
                            }
                        }
                    }
                    .ticket_links_list { position: relative; display: flex; flex-direction: column; gap: calc(var(--ticket_info_title_size)*0.7); margin-bottom: calc(var(--base_gap)*1);
                        .ticket_link_rack {position: relative; display: block; border: 1px solid var(--c_theme_color); padding: calc(var(--ticket_info_title_size)*1); border-radius: var(--base_border_radius); background-color: var(--c_white_l);
                            .ticket_link_title {font-size: var(--ticket_info_title_size); font-weight: bold; line-height: 1.4em; margin-bottom: 0.5em;}
                            .cmn_link_btn_a {min-width: initial; margin: 0;}
                            &.disactive {
                                .ticket_link_title , .link_btn {opacity: 0.5; pointer-events: none; filter: grayscale(1);}
                            }
                        }
                    }
                    .seat_map {position: relative; display: block;
                        img {width: 100%;}
                    }
                }
                .notice_box {position: relative; width: 50%; height: auto;}
            }
        }
    }
    &.c_expo {
        .left {background-color: var(--c_expo_blue);
            .h_box {}
        }
        .right {
            .ticket_box { border: 2px solid var(--c_expo_blue);
                .detail_area {
                    .ticket_links_list {
                        .ticket_link_rack {border: 1px solid var(--c_expo_blue);
                            .ticket_link_title {}
                        }
                    }
                }
            }
        }
    }
    &.c_fes {
        .left {background-color: var(--c_fes_green);
            .h_box {}
        }
        .right {
            .ticket_box { border: 2px solid var(--c_fes_green);
                .detail_area {
                    .ticket_links_list {
                        .ticket_link_rack {border: 1px solid var(--c_fes_green);}
                    }
                }
            }
        }
    }
}
@media only screen and (max-width: 835px) {
    .ticket_list_outer {
        .left { width: calc(var(--cmn_section_head_font_size)*2);
            .h_box { top: calc(var(--cmn_header_h)*1.5);}
        }
        .right { width: calc(100% - var(--cmn_section_head_font_size)*2 - var(--base_gap)*0.5);
            .ticket_box {
                .detail_area { flex-direction: column; padding: calc(var(--base_gap)*2) calc(var(--base_gap)*1);
                    .main_info {width: 100%;}
                    .notice_box {width: 100%;}
                }
            }
        }
    }
}

/*----------------------------------------
    in_expo_exhibition
------------------------------------------*/
#in_expo_exhibition {
    .area_map_section {margin-bottom: calc(var(--base_gap)*2);
        .area_map { position: relative; display: block; width: 100%; height: auto; margin-bottom: calc(var(--base_gap)*0.5);
            img {width: 100%;}
        }
    }
    .cmn_thumbnail_content_list {margin-bottom: calc(var(--base_gap)*2);}
}


/*----------------------------------------
    in_expo_schedule
------------------------------------------*/
#in_expo_schedule {
    .cmn_page_tab_target , .cmn_page_tab_target_style {margin-bottom: calc(var(--base_gap)*2);}
    .schedule_outer {position: relative; display: block; margin-bottom: calc(var(--base_gap)*2);}
    .schedule_img {position: relative; display: block; width: 100%; height: auto; margin-bottom: calc(var(--base_gap)*1);
        img {width: 100%;}
    }
}

/*----------------------------------------
    in_fes_message
------------------------------------------*/
#in_fes_message {
    .message_box_outer { margin-bottom: calc(var(--base_gap)*2);
        .message_box {position: relative; display: block; width: 100%; height: auto; border-radius: var(--base_border_radius); background: var(--c_gd_expo_fes); font-size: clamp(14px , 2vw , 17px); line-height: 2.5em; letter-spacing: 0.1em; text-align: left; padding: calc(var(--base_distance)*1);
            &::before { position: absolute; display: block; content: ""; top: 1px; left: 1px; width: calc(100% - 2px); height: calc(100% - 2px); border-radius: calc(var(--base_border_radius) - 1px); background-color: var(--c_white_l);}
            p {position: relative; font-weight: 600; margin-bottom: 3em;
                &.large {font-size: 1.5em; line-height: 2.5em; letter-spacing: 0.15em; color: var(--c_fes_green);margin-bottom: 2em; }
            }
            .rubi {position: relative; display: inline-block;
                &::before { position: absolute; display: block; content: attr(data-rubi); top: 0; left: 50%; transform: translate(-50% , 0); font-size: 0.45em; white-space: nowrap; line-height: 1em;}
            }
        }
    }
}
@media only screen and (max-width: 835px) {
    #in_fes_message {
        .message_box_outer {
            .message_box {padding: calc(var(--base_distance)*1) calc(var(--base_distance)*0.6);}
        }
    }
}

/*----------------------------------------
    in_fes_cast
------------------------------------------*/
#in_fes_cast {
    .cmn_page_tab_target {margin-bottom: calc(var(--base_gap)*0.5);}
    .stage_title {position: relative; display: block; width: 100%; height: auto; font-size: clamp(16px , 2vw , 26px); font-weight: 600; text-align: center; letter-spacing: 0.1em; color: var(--c_white_l); background-color: var(--c_fes_green); border-radius: var(--base_border_radius); padding: 0.5em 1em; margin-bottom: calc(var(--base_gap)*1.5);}
    .cast_list {position: relative; --grid_gap: 0px; --grid_column:4; display: grid; grid-template-columns: repeat(var(--grid_column), calc((100% - (var(--grid_gap) * ( var(--grid_column) - 1 ) )) / var(--grid_column))); grid-row-gap: var(--grid_gap); grid-column-gap: var(--grid_gap); width: 100%; height: auto;
        .cast_box {position: relative; display: flex; justify-content: flex-start; align-items: center; gap: 10px; width: 100%; height: auto; padding: clamp(8px, 1vw, 10px); border-right: 1px dotted var(--c_fes_green); border-bottom: 1px dotted var(--c_fes_green);
            .icon {position: relative; display: block; width: 25%; height: auto;
                img {display: block; width: 100%; height: auto;}
            }
            .name { position: relative; display: block; width: 70%; height: auto; font-size: clamp(14px, 1.4vw, 17px); line-height: 1.2em; letter-spacing: 0.1em; text-align: left;
                .main {font-weight: 600; margin-bottom: 0.2em;}
                .sub {font-size: 0.8em; line-height: 1.2em; margin-bottom: 0; transform: translateX(0.2em);}
            }
        }
    }
    .cast_notes {text-align: right; color: var(--c_orange); margin-bottom: calc(var(--base_gap)*2); font-size: 0.9em; font-weight: 700; }
}
@media only screen and (min-width: 835px) {
    #in_fes_cast {
        .cast_list {
            .cast_box {
                &:nth-of-type(4n) {border-right: initial;}
                &:nth-last-of-type(-n+4) {border-bottom: initial;}
            }
        }
    }
}
@media only screen and (max-width: 835px) {
    #in_fes_cast {
        .cast_list { --grid_column:1;
            .cast_box { border-right: initial; padding: clamp(8px, 1vw, 10px) 0;
                &:nth-last-of-type(1) {border-bottom: initial;}
            }
        }
    }
}