@charset "UTF-8";

/*====================================
	Reset
====================================*/
abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}body{line-height:1}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}nav ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}ins{text-decoration:none}ins,mark{background-color:#ff9;color:#000}mark{font-style:italic;font-weight:700}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}input,select{vertical-align:middle}
div, a, li, span, textarea, input{ -webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;}
input[type="text"], input[type="password"],textarea,button{ outline: none; vertical-align:middle;}
input[type="text"], input[type="password"],textarea{border: 1px solid #ccc;}

/*====================================
	font
====================================*/
html{
	font-size: 62.5%;
    overflow-x: clip; /* 横スクロールバー抑制（overflow:hidden と異なり scroll container を作らず sticky を壊さない） */
}
body, textarea, input, select, label{
	font-size: 16px;
	line-height: 1.6;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    font-style: normal;
    color: #303439;
}

/*====================================
	scroll-margin-top: アンカーリンクのヘッダーオフセット
====================================*/
#fv, #concept, #program, #sponsor, #gaiyou, #contact, #privacy,
#schedule_tabs_anchor {
    scroll-margin-top: 120px;
}
@media screen and (max-width: 1200px) {
    #fv, #concept, #program, #sponsor, #gaiyou, #contact, #privacy,
    #schedule_tabs_anchor {
        scroll-margin-top: 70px;
    }
}

/*====================================
	base
====================================*/
a{
	color: #000;
    text-decoration: none;
    transition: all .2s;
}
a:hover {
    opacity: .7;
}
img {
    vertical-align: middle;
    object-fit: cover;
    max-width: 100%;
}
table {
    border-collapse: collapse;
    width: 100%;
    border-spacing: 0;
}
ul {
    list-style: none;
}
p {
    letter-spacing: 0.05em;
}

.sp{
    display: none;
}

.wrap {
    max-width: 1200px;
    margin: 0 auto;
    box-sizing: border-box;
}

.wrap2 {
    max-width: 1000px;
    margin: 0 auto;
    box-sizing: border-box;
}

/* ttl */
.ttl {
    margin-bottom: 70px;
    text-align: center;
}
    .ttl h2 {
        font-size: 40px;
        line-height: 1.2;
        letter-spacing: 0;
        font-weight: 700;
    }
    .ttl .en {
        font-size: 22px;
        line-height: 1.2;
        letter-spacing: 0;
        font-weight: 700;
        display: block;
        color: #0963DF;
        margin-bottom: 10px;
        font-family: "montserrat", sans-serif;
        font-style: normal;
    }

/* cta_area */
.cta_area {
    padding: 30px;
    text-align: center;
    background: linear-gradient(91.76deg, #001D5D 69.7%, #0963DF 102.27%);
}

/* btn */
.btn_txt {
    font-size: 18px;
    color: #fff;
    text-align: center;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
    margin-bottom: 15px;
}
.btn a {
    letter-spacing: 0;
    line-height: 1.2;
    color: #fff;
    padding: 20px 30px;
    background: linear-gradient(92.23deg, #B02427 32.71%, #B04024 99.41%);
    border-radius: 100px;
    display: inline-flex;
    align-items: center;
    gap: 20px;
    font-size: 20px;
}
    .btn a span {
        display: inline-block;
    }
    .btn a span.muryo {
        font-size: 16px;
        color: #B02427;
        background: #FFFFFF;
        border-radius: 16px;
        padding: 5px 11px;
    }
    .btn a span.kotira {
        position: relative;
    }
    .btn a span.kotira::after {
        content: "";
        display: inline-block;
        margin-left: 20px;
        width: 8px;
        height: 8px;
        border-top: 2px solid #fff;
        border-right: 2px solid #fff;
        transform: translateY(-25%) rotate(45deg);
    }


/* iframe */
.ifm {
    width: 100%;
    height: 2500px;
    overflow: hidden;
    padding-bottom: 57%;
    position: relative;
}
    .ifm iframe {
        position: absolute;
        left: 0;
        top: 0;
        height: 100%;
        width: 100%;
    }
    .ifm iframe .p-request .m-form td:last-of-type {
        min-width: initial !important;
    }

/*====================================
	header
====================================*/
header {
    position: fixed;
    z-index: 9999;
    width: 100%;
    transition: all .2s; 
    background: #FFFFFF;
    box-shadow: 0px 4px 30px rgba(0, 0, 0, 0.05);
}

header #header_area {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 0 auto;
    padding: 20px 0 20px 50px;
    transition: all .2s; 
    height: 120px;
}
    header #header_area h1 {
        transition: all .2s; 
    }
        header #header_area h1 a {
            display: block;
        }
        header #header_area h1 img {
            display: inline-block;
            max-width: 100%;
        }
    header #header_area .logo {
        display: none;
    }
    header #header_area nav {
        display: block;
    }
        header #header_area nav ul {
            display: flex;
            align-items: center;
            box-sizing: border-box;
            position: relative;
        }
        header #header_area nav li {
            display: block;
            text-align: left;
            margin-left: 40px;
            font-size: 20px;
        }
            header #header_area nav li a {
                position: relative;
                width: 100%;
                display: block;
                line-height: 1.2;
                letter-spacing: 0;
                font-weight: 700;
            }
            header #header_area nav li.days a {
                display: inline-block;
                width: auto;
            }

            header #header_area nav li.contact a {
                letter-spacing: 0;
                line-height: 1.5;
                color: #fff;
                padding: 23px 38px;
                background: linear-gradient(92.23deg, #B02427 32.71%, #B04024 99.41%);
                border-radius: 100px 0px 0px 100px;
                display: inline-flex;
                align-items: center;
                gap: 20px;
            }
                header #header_area nav li.contact a span {
                    display: inline-block;
                }
                header #header_area nav li.contact a span.muryo {
                    font-size: 16px;
                    color: #B02427;
                    background: #FFFFFF;
                    border-radius: 16px;
                    padding: 5px 11px;
                }
                header #header_area nav li.contact a span.kotira {
                    position: relative;
                }
                header #header_area nav li.contact a span.kotira::after {
                    content: "";
                    display: inline-block;
                    margin-left: 20px;
                    width: 8px;
                    height: 8px;
                    border-top: 2px solid #fff;
                    border-right: 2px solid #fff;
                    transform: translateY(-25%) rotate(45deg);
                }
        
        
    .nav-button_area {
        display: none;
    }



/*====================================
	fv
====================================*/
#fv {
    padding-top: 120px;
}
#fv .fv_area {
    position: relative;
    width: 100%;
}
#fv .fv_sp {
    display: none;
}

/* PC FV layout */
#fv .fv_pc {
    position: relative;
    overflow: hidden;
    line-height: 0;
}
#fv .fv_bg {
    display: block;
    width: 100%;
}
#fv .fv_logo,
#fv .fv_logo_video,
#fv .fv_tagline,
#fv .fv_dates,
#fv .fv_speakers,
#fv .btn_area {
    position: absolute;
}
#fv .fv_logo {
    left: 14%;
    top: 6%;
    width: 42%;
}
#fv .fv_logo_video {
    left: 7.4%;
    top: 6%;
    width: 52%;
    aspect-ratio: 812 / 138;
    display: block;
    object-fit: cover;
    object-position: left center;
    mix-blend-mode: multiply;
}
#fv .fv_tagline {
    left: 14%;
    top: 38%;
    width: 41%;
}
#fv .fv_dates {
    left: 14%;
    top: 49%;
    width: 37%;
}
#fv .fv_speakers {
    right: 0;
    bottom: 0;
    width: 44%;
}
#fv .btn_area {
    left: 29%;
    bottom: 0;
    width: 17%;
}
#fv .fv_btn {
    width: 100%;
}

/* Noise overlay */
#fv .fv_noise {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 3;
    opacity: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.72' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='400' height='400' filter='url(%23n)'/%3E%3C/svg%3E");
    background-size: 220px 220px;
    mix-blend-mode: overlay;
}

/* 初期状態：非表示（アニメーション待機） */
#fv .fv_bg         { opacity: 0; }
#fv .fv_logo       { opacity: 0; }
#fv .fv_logo_video { opacity: 0; }
#fv .fv_tagline    { opacity: 0; }
#fv .fv_dates     { opacity: 0; }
#fv .fv_speakers  { opacity: 0; }
#fv .btn_area     { opacity: 0; }

/* 全画像読み込み完了後 (.is-loaded) にアニメーション開始 */
@keyframes fv-noise-pos {
    0%   { background-position:   0%   0%; }
    14%  { background-position:  -6% -12%; }
    28%  { background-position:   8% -20%; }
    42%  { background-position: -14%   6%; }
    57%  { background-position:  22%  18%; }
    71%  { background-position: -20%  11%; }
    85%  { background-position:  12% -16%; }
}
@keyframes fv-noise-fade {
    0%   { opacity: 0.65; }
    60%  { opacity: 0.35; }
    100% { opacity: 0; }
}
@keyframes fv-bg-enter {
    from { opacity: 0.2; transform: scale(1.05); }
    to   { opacity: 1;   transform: scale(1); }
}
@keyframes fv-logo-enter {
    from { opacity: 0; transform: translateX(-28px); }
    to   { opacity: 1; transform: translateX(0); }
}
@keyframes fv-up-enter {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes fv-speakers-enter {
    from { opacity: 0; transform: translateX(32px); }
    to   { opacity: 1; transform: translateX(0); }
}
/* ボタン入場: translate + opacity のみ（scale と競合しない） */
@keyframes fv-btn-enter {
    from { opacity: 0; translate: 0 20px; }
    to   { opacity: 1; translate: 0 0px; }
}
/* ボタンバウンス: scale のみ（translate と競合しない） */
@keyframes fv-btn-bounce {
    0%   { scale: 1; }
    28%  { scale: 1.10; }
    52%  { scale: 0.95; }
    74%  { scale: 1.03; }
    100% { scale: 1; }
}
/* ボタンタップフィードバック */
#fv .fv_btn a {
    display: block;
    transition: scale 0.12s ease, opacity 0.12s ease;
}
#fv .fv_btn a:hover  { opacity: 0.8; }
#fv .fv_btn a:active { scale: 0.91; opacity: 0.9; }

#fv.is-loaded .fv_noise      { animation: fv-noise-pos 0.12s steps(1) infinite, fv-noise-fade 2s ease forwards; }
#fv.is-loaded .fv_bg         { animation: fv-bg-enter 1.6s cubic-bezier(0.22, 1, 0.36, 1) forwards; }
#fv.is-loaded .fv_logo       { animation: fv-logo-enter 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.2s forwards; }
#fv.is-loaded .fv_logo_video { animation: fv-logo-enter 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.2s forwards; }
#fv.is-loaded .fv_tagline { animation: fv-up-enter 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.45s forwards; }
#fv.is-loaded .fv_dates   { animation: fv-up-enter 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.62s forwards; }
#fv.is-loaded .fv_speakers { animation: fv-speakers-enter 1.1s cubic-bezier(0.22, 1, 0.36, 1) 0.25s forwards; }
/* ボタン入場 */
#fv.is-loaded .btn_area {
    animation: fv-btn-enter 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.6s forwards;
}
/* ロゴ動画終了後にJSが .do-bounce を付与してバウンス発火 */
/* opacity: 1 を明示 — fv-btn-enter の forwards 状態が失われるのを防ぐ */
#fv .btn_area.do-bounce {
    opacity: 1;
    animation: fv-btn-bounce 0.7s ease forwards;
}

@media (prefers-reduced-motion: reduce) {
    #fv .fv_noise { display: none; }
    #fv .fv_bg,
    #fv .fv_logo,
    #fv .fv_logo_video,
    #fv .fv_tagline,
    #fv .fv_dates,
    #fv .fv_speakers,
    #fv .fv_sp_content .fv_logo,
    #fv .fv_sp_content .fv_tagline,
    #fv .fv_sp_content .fv_dates,
    #fv .fv_speakers_sp,
    #fv .btn_area,
    #fv .btn_area.do-bounce { opacity: 1; animation: none; transform: none; translate: none; scale: none; }
    #fv .fv_btn a { transition: none; scale: none; }
}

/*====================================
	concept
====================================*/
#concept {
    width: 100%;
    padding-top: 100px;
    padding-bottom: 70px;
    position: relative;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #F7F7F7 60.49%);
}
#concept .wrap {
    position: relative;
}
    #concept .pic {
        position: absolute;
        top: 0;
        right: 0;
        width: 35%;
    }
        #concept .pic img {
            width: 100%;
            display: block;
        }
    #concept .box {
        margin: 0 auto;
        position: relative;
    }
         #concept .box .concept_tbl_img {
            display: none;
         }
        #concept .box .item {
            display: flex;
            align-items: flex-start;
        }
            #concept .box .item .txt {
               width: 60%;
            }
                #concept .box .item .txt p {
                    font-size: 18px;
                    line-height: 1.8;
                    letter-spacing: 0.04em;
                }
                    #concept .box .item .txt p span {
                        font-size: 22px;
                        font-weight: 700;
                    }
    #concept .target {
        margin-top: 100px;
    }
        #concept .target h3 {
            text-align: center;
            font-size: 28px;
            font-weight: 700;
            line-height: 1.2;
            letter-spacing: 0;
            margin-bottom: 30px;
            position: relative;
            padding-bottom: 20px;
        }
            #concept .target h3 span {
                font-size: 16px;
            }
        #concept .target h3::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 50%;
            transform: translateX(-50%);
            width: 90px;
            height: 3px;
            background-color: #0963DF;
        }
        #concept .target .target_box {
            display: flex;
            justify-content: space-between;
        }
            #concept .target .target_box .item {
                width: calc((100% - 60px) / 3);
                border-radius: 5px;
                overflow: hidden;
                background-size: cover;
                background-position: center;
                display: flex;
                flex-direction: column;
            }
            #concept .target .target_box .item:nth-child(1) {
                background-image: linear-gradient(rgba(0, 29, 93, 0.4), rgba(0, 29, 93, 0.4)), url(../img/target_1.png);
            }
            #concept .target .target_box .item:nth-child(2) {
                background-image: linear-gradient(rgba(0, 29, 93, 0.4), rgba(0, 29, 93, 0.4)), url(../img/target_2.png);
            }
            #concept .target .target_box .item:nth-child(3) {
                background-image: linear-gradient(rgba(0, 29, 93, 0.4), rgba(0, 29, 93, 0.4)), url(../img/target_3.png);
            }
                #concept .target .target_box .item div {
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    text-align: center;
                }
                #concept .target .target_box .item div.tp {
                    padding: 50px 20px;
                    flex: 1;
                    flex-direction: column;
                }
                    #concept .target .target_box .item div.tp .day {
                        font-size: 18px;
                        line-height: 1.8;
                        letter-spacing: 0;
                        color: #FF601B;
                        display: block;
                        font-weight: 700;
                    }
                    #concept .target .target_box .item div.tp span {
                        font-size: 16px;
                        line-height: 1.8;
                        letter-spacing: 0;
                        color: #fff;
                        font-weight: 700;
                    }
                #concept .target .target_box .item div.bt {
                    padding: 20px;
                    background: rgba(0, 29, 93, 0.8);
                    min-height: 85px;
                }
                    #concept .target .target_box .item h4 {
                        color: #fff;
                        font-size: 22px;
                        font-weight: 700;
                        line-height: 1.8;
                        letter-spacing: 0.04em;
                    }
                    #concept .target .target_box .item p {
                        color: #fff;
                        font-size: 14px;
                        line-height: 1.4;
                        letter-spacing: 0.04em;
                    }


/*====================================
	program
====================================*/
#program {
    padding-top: 150px;
    padding-bottom: 150px;
    position: relative;
}
    #program .time_table {
        text-align: center;
        overflow-x: clip; /* translateX アニメーション初期状態のはみ出しを封じ込める */
    }
        #program .time_table .accordion_header {
            display: none;
        }
        #program .time_table .day_tabs {
            display: flex;
            gap: 10px;
            margin-bottom: 10px;
            position: sticky;
            top: 120px;
            z-index: 100;
        }
        #program .time_table .day_tab {
            flex: 1;
            padding: 15px 10px;
            border: 3px solid #D6DBE1;
            border-bottom: none;
            background: #fff;
            color: #A8ACB2;
            cursor: pointer;
            text-align: center;
            transition: background 0.2s, color 0.2s;
            border-radius: 30px 30px 0px 0px;
        }
        #program .time_table .day_tab.active {
            border: 1px solid #000;
            background: linear-gradient(95.68deg, #418FD6 1.36%, #0963DF 100%);
            color: #fff;
        }
        #program .time_table .day_tab .day_label {
            display: block;
            font-size: 30px;
            font-weight: 700;
            line-height: 1.2;
            letter-spacing: 0;
        }
        #program .time_table .day_tab .day_date {
            display: block;
            font-size: 24px;
            line-height: 1.2;
            letter-spacing: 0;
            margin-bottom: 8px;
        }
        #program .time_table .day_tab .day_cont {
            display: inline-block;
            font-size: 15px;
            line-height: 1.2;
            letter-spacing: 0;
            padding: 5px 15px;
        }
        #program .time_table .day_tab.active .day_cont {
            color: #418FD6;
            background-color: #fff;
        }
        #program .time_table .tab_panel {
            display: none;
        }
        #program .time_table .tab_panel.active {
            display: block;
        }
        #program .time_table .item {
            position: relative;
            display: flex;
            justify-content: space-between;
            z-index: 1;
            margin-bottom: 50px;
            padding: 30px;
            border: 2px solid #F7F7F7;
            text-align: left;
        }
                #program .time_table .item .txt_area {
                    width: 54%;
                    display: flex;
                    flex-direction: column;
                    justify-content: space-between;
                }
                    #program .time_table .item .txt_area .time_area {
                        display: flex;
                        align-items: center;
                        gap: 30px;
                        margin-bottom: 30px;
                    }
                        #program .time_table .item .txt_area .time {
                            font-size: 28px;
                            font-weight: 700;
                            color: #0963DF;
                            line-height: 1.2;
                            letter-spacing: 0;
                        }
                        #program .time_table .item .txt_area .cat {
                            font-size: 14px;
                            font-weight: 700;
                            line-height: 1.2;
                            letter-spacing: 0;
                        }
                    #program .time_table .item .txt_area h3 {
                        margin-bottom: 30px;
                        font-size: 24px;
                        line-height: 1.6;
                        letter-spacing: 0;
                    }
                    #program .time_table .item .txt_area .name_area {
                        margin-bottom: 30px;
                    }
                        #program .time_table .item .txt_area .name_area .name {
                            font-size: 22px;
                            line-height: 1.2;
                            letter-spacing: 0;
                            margin-bottom: 10px;
                            font-weight: 700;
                        }
                        #program .time_table .item .txt_area .name_area .company {
                            font-size: 16px;
                            line-height: 1.2;
                            letter-spacing: 0;
                        }
                    #program .time_table .item .txt_area .btn_area a {
                        padding-bottom: 15px;
                        border-bottom: 2px solid #303439;
                        display: inline-block;
                        padding-left: 30px;
                        font-size: 16px;
                        font-weight: 700;
                        line-height: 1.2;
                        letter-spacing: 0;
                        position: relative;
                    }
                    #program .time_table .item .txt_area .btn_area a::before {
                        content: "";
                        display: inline-block;
                        width: 15px;
                        height: 17px;
                        background: url(../img/icon_sankaku.svg) no-repeat center / contain;
                        position: absolute;
                        left: 0;
                        top: calc(50% - 7.5px);
                        transform: translateY(-50%);
                    }

                #program .time_table .item .pic_area {
                    width: 42%;
                    position: relative;
                    z-index: 2;
                }
                    #program .time_table .item .pic_area .pic {
                        width: 100%;
                        display: flex;
                        margin-bottom: 30px;
                    }
                        #program .time_table .item .pic_area .pic img {
                            display: block;
                            max-width: 240px;
                            margin-left: auto;
                            width: 50%;
                        }
                    #program .time_table .item .pic_area .btn_area {
                        text-align: right;
                    }
                        #program .time_table .item .pic_area .btn_area a {
                            display: inline-block;
                            padding-right: 35px;
                            font-size: 18px;
                            font-weight: 700;
                            line-height: 1.2;
                            letter-spacing: 0;
                            position: relative;
                        }
                        #program .time_table .item .pic_area .btn_area a::after {
                            content: "";
                            display: inline-block;
                            width: 25px;
                            height: 15px;
                            background: url(../img/icon_arrow.svg) no-repeat center / contain;
                            position: absolute;
                            right: 0;
                            top: 50%;
                            transform: translateY(-50%);
                        }
  
/* modal */
#program .modal {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.8);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 99999;
}
#program .modal .wrap2 {
    position: relative;
    width: 1000px;
}
    #program .modal .modal-content {
        max-height: 80vh;
        overflow-y: auto;
        background: #fff;
        width: 100%;
        padding: 55px 40px;
    }

    #program .modal .close {
        position: absolute;
        top: -55px;
        right: -65px;
        background: none;
        border: none;
        cursor: pointer;
    }
        #program .modal .close img {
            display: block;
        }

    @media only screen and (max-width: 1200px){
        #program .modal .modal-content {
            overflow-y: auto;
        }

            #program .modal .close {
                top: 20px;
                right: 45px;
            }
    }

    #program .modal .content {
        border-bottom: 1px solid #000;
        text-align: left;
    }
    #program .modal.yt .content {
        border-bottom: none;
    }
        #program .modal .content .time_area {
            margin-bottom: 25px;
            display: flex;
            align-items: center;
            gap: 30px;
        }   
            #program .modal .content .time_area .time {
                font-size: 28px;
                font-weight: 700;
                color: #0963DF;
                line-height: 1.2;
                letter-spacing: 0;
            }
            #program .modal .content .time_area .cat {
                font-size: 14px;
                font-weight: 700;
                line-height: 1.2;
                letter-spacing: 0;
            }
        #program .modal .content h3 {
            margin-bottom: 25px;
            font-size: 24px;
            font-weight: 700;
            line-height: 1.6;
            letter-spacing: 0;
            color: #0963DF;
        }
        #program .modal .content p {
            margin-bottom: 25px;
            font-size: 16px;
            line-height: 1.4;
            letter-spacing: 0;
            font-weight: 400;
            font-family: "zen-kaku-gothic-new", sans-serif;
        }
    #program .modal .profile {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        padding: 25px 0 0;
    }
        #program .modal .profile .text {
            width: 70%;
            text-align: left;
        }
            #program .modal .profile .text .msg {
                font-size: 16px;
                line-height: 1.4;
                letter-spacing: 0;
                font-weight: 400;
                font-family: "zen-kaku-gothic-new", sans-serif;
            }
            #program .modal .profile .info {
                margin-bottom: 20px;
            }
                #program .modal .profile .name {
                    font-size: 32px;
                    font-weight: 700;
                    letter-spacing: 0;
                    line-height: 1.2;
                    margin-bottom: 10px;
                    font-family: "zen-kaku-gothic-new", sans-serif;
                }
                #program .modal .profile .company {
                    font-size: 18px;
                    line-height: 1.2;
                    letter-spacing: 0;
                }

        #program .modal .profile .image {
            width: 27%;
        }
            #program .modal .profile .image .pic {
                width: 100%;
            }
                #program .modal .profile .image .pic img {
                    width: auto;
                    max-width: 100%;
                    display: block;
                }

    #program .modal .movie {
        position: relative;
        width: 100%;
        aspect-ratio: 16 / 9;
        margin-bottom: 30px;
    }
    #program .modal .movie iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }
    #program .modal .btn_area {
        padding-top: 30px;
    }
        #program .modal .btn_area .btn a {
            width: 400px;
            background: #E30012;
            justify-content: center;
        }


/*====================================
	sponsor
====================================*/
#sponsor {
    width: 100%;
    background: url(../img/sponsor_bg.png) no-repeat center;
    background-size: cover;
    box-sizing: border-box;
    padding-top: 100px;
    padding-bottom: 270px;
    position: relative;
}
    #sponsor .box {
        max-width: 815px;
        margin: 0 auto;
        position: relative;
    }
    #sponsor .box + .box {
        margin-top: 80px;
    }
        #sponsor .box .item {
            display: flex;
            flex-direction: column;
        }
            #sponsor .box .item .ttl {
                margin-bottom: 40px;
            }
            #sponsor .box .item .thumb {
                width: 100%;
                display: flex;
                gap: 60px 30px;
                flex-wrap: wrap;
            }
                #sponsor .box .item .thumb img {
                    max-width: 100%;
                    display: block;
                    margin: 0 auto;
                    object-fit: cover;
                }



/*====================================
	gaiyou
====================================*/
#gaiyou {
    padding-top: 150px;
    padding-bottom: 150px;
    background: linear-gradient(120.7deg, #0963DF 31.37%, #099BDF 97.25%);
}
#gaiyou .ttl {
    margin-bottom: 35px;
}
    #gaiyou .ttl span,
    #gaiyou .ttl h2 {
        color: #fff;
    }
#gaiyou table {
    border-collapse: separate;
    border-spacing: 40px 0;
}
    #gaiyou table th,
    #gaiyou table td {
        box-sizing: border-box;
        border-bottom: 1px solid #fff;
        font-size: 18px;
        line-height: 1.7;
        letter-spacing: 0.03em;
        color: #fff;
        font-family: "zen-kaku-gothic-new", sans-serif;
    }
    #gaiyou table tr:last-child th,
    #gaiyou table tr:last-child td {
        border-bottom: none;
    }
    #gaiyou table th {
        width: 21%;
        position: relative;
        padding: 25px 0;
    }
    #gaiyou table td {
        width: 76%;
        padding: 25px 0;
    }
        #gaiyou table td ul {
            margin: 0;
        }
            #gaiyou table td li {
                position: relative;
                padding-left: 1em;
                word-break: break-all;
            }
            #gaiyou table td li::before {
                content: "・";
                position: absolute;
                left: 0;
                top: 0;
            }


/*====================================
	contact
====================================*/
#contact {
    padding-top: 150px;
    padding-bottom: 150px;
}

/*====================================
	privacy
====================================*/
#privacy {
    padding-top: 150px;
    padding-bottom: 150px;
    background: #F8F8F8;
}
#privacy .ttl {
    margin-bottom: 60px;
}
#privacy .stage_area {
    width: 100%;
    margin: 0 auto;
}
#privacy .stage_area ul {
    width: 100%;
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 15px 50px;
    font-family: "zen-kaku-gothic-new", sans-serif;
}
    #privacy .stage_area ul li {
        width: calc((100% - 100px) / 3);
        text-align: left;
    }
        #privacy .stage_area ul li a {
            font-size: 16px;
            line-height: 1.7;
            letter-spacing: 0.03em;
            display: inline-flex;
            align-items: center;
            transition: all .4s;
            color: inherit;
            text-decoration: none;
        }
        #privacy .stage_area ul li a::before {
            content: "";
            display: inline-block;
            width: 15px;
            border-top: 1px solid currentColor;
            margin-right: 30px;
            flex-shrink: 0;
        }


/*====================================
	thanks
====================================*/
#thanks {
    width: 100%;
    background: url(../img/thanks_bg.png) no-repeat center;
    background-size: cover;
    box-sizing: border-box;
    padding-top: 170px;
    padding-bottom: 40px;
    position: relative;
}
    #thanks .ttl {
        margin-bottom: 15px;
    }
        #thanks .ttl img {
            margin: 0 auto 20px;
            display: block;
            width: 490px;
        }
        #thanks .ttl h2 {
            font-size: 24px;
            line-height: 1.5;
            letter-spacing: 0.02em;
        }

    #thanks .txt {
        margin-bottom: 20px;
        text-align: center;
    }
        #thanks .txt p {
            font-size: 16px;
            line-height: 1.8;
            letter-spacing: 0.04em;
        }

    #thanks .box {
        padding: 20px 40px;
        text-align: center;
        border: 1.5px solid #C8CDD9;
        border-radius: 10px;
        margin: 0 auto 50px;
        display: block;
        width: fit-content;
    }
        #thanks .box p {
            font-size: 16px;
            line-height: 1.8;
            letter-spacing: 0.04em;
        }
        #thanks .box p + p {
            margin-top: 5px;
        }

    #thanks .btn_area {
        max-width: 820px;
        margin: 0 auto;
    }
        #thanks .btn_area p {
            font-size: 20px;
            font-weight: 800;
            line-height: 1.5;
            letter-spacing: 0.02em;
            margin-bottom: 40px;
            text-align: center;
            color: #0963DF;
        }
        #thanks .btn_area .btn_box {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        #thanks .btn_area .btn_box .btn {
            width: calc((100% - 20px) / 3);
            text-align: center;
        }
            #thanks .btn_area .btn_box .btn a {
                width: 100%;
                padding: 25px;
                filter: drop-shadow(0px 5px 20px rgba(48, 50, 60, 0.11));
                background: transparent;
                color: #000;
                justify-content: center;
                transition: all .2s;
            }
            #thanks .btn_area .btn_box .btn.service a {
                font-size: 18px;
            }
            #thanks .btn_area .btn_box .btn a:hover {
                filter: drop-shadow(0px 5px 20px rgba(48, 50, 60, 0.11));
                background: #fff;
                color: #0963DF;
                opacity: 1;
            }
            #thanks .btn_area .btn_box .btn a span {
                position: relative;
                width: 100%;
            }
            #thanks .btn_area .btn_box .btn a span::after {
                content: "";
                position: absolute;
                display: inline-block;
                right: 0;
                top: 50%;
                transform: translateY(-25%) rotate(45deg);
                margin-left: 20px;
                width: 8px;
                height: 8px;
                border-top: 2px solid #000;
                border-right: 2px solid #000;
            }
            #thanks .btn_area .btn_box .btn a:hover span::after {
                border-top: 2px solid #0963DF;
                border-right: 2px solid #0963DF;
            }

/*====================================
	footer
====================================*/
footer {
    width: 100%;
    position: relative;
    padding-top: 60px;
    padding-bottom: 60px;
}
footer .logo_area p {
    text-align: center;
    font-size: 16px;
    line-height: 1.7;
    letter-spacing: 0.03em;
    font-weight: 700;
}

/* thanks page only */
body.thanks-page footer {
    padding-top: 15px;
    padding-bottom: 15px;
    background: linear-gradient(95.68deg, #418FD6 1.36%, #0963DF 100%);
}
body.thanks-page footer .logo_area p {
    color: #fff;
}


@media only screen and (max-width: 1400px){

/*====================================
	header
====================================*/
    header #header_area {
        padding: 20px 0 20px 25px;
    }
    header #header_area nav li {
        margin-left: 20px;
        font-size: 18px;
    }
    header #header_area nav li.contact a {
        padding: 15px 20px;
    }

}





@media only screen and (max-width: 1200px) {
/*====================================
	base
====================================*/
.wrap {
    padding-left: 25px;
    padding-right: 25px;
}
.wrap2 {
    padding-left: 25px;
    padding-right: 25px;
}

/*====================================
	header
====================================*/
header #header_area {
    padding: 20px 20px;
    justify-content: flex-start;
    height: 70px;
}
header #header_area nav {
    display: none;
}
header #header_area.sp-mode nav {
    display: flex;
}

header #header_area.sp-mode {
    margin: 0;
    height: 100vh;
    max-height: 100dvh;
    background-color: #fff;
    display: block;
}
header.scrolled #header_area.sp-mode {
    padding-top: 20px;
    padding-bottom: 20px;
}
    header #header_area.sp-mode .logo {
        display: block;
        margin: 0 auto 50px;
        width: 250px;
    }
    header #header_area.sp-mode nav {
    }
        header #header_area.sp-mode nav ul {
            flex-direction: column;
            width: 100%;
        }
        header #header_area.sp-mode nav li {
            width: 100%;
            margin: 0 auto 50px;
            text-align: center;
            font-size: 22px;
        }
        header #header_area.sp-mode nav li.contact {
            width: 60%;
            font-size: 26px;
        }
            header #header_area.sp-mode nav li.contact a {
                border-radius: 100px;
                justify-content: center;
                padding: 30px 40px;
            }
            header #header_area nav li.contact a::after {
                right: 45px;
            }        

header #header_area.sp-mode {
    display: flex;
    flex-direction: column;
    justify-content: center;
}
        header #header_area.sp-mode h1 {
            display: none;
            position: absolute;
            top: 20px;
            left: 20px;
        }
            header #header_area h1 {
                width: 200px;
            }
        header #header_area.sp-mode .sp-mode-wrap {
            width: 100%;
        }

header .nav-button {
    display: block;
    cursor: pointer;
}

/*メニューボタンのエフェクト*/
.nav-button_area {
    display: block;
    z-index: 3;
    position: fixed;
    right: 25px;
    top: 20px;
    transition: all .2s; 
}
.nav-button_area.scrolled {
    top: 20px;
}
  .nav-button,
  .nav-button span {
    display: inline-block;
    transition: all 0.4s;
    box-sizing: border-box;
  }
  .nav-button {
	width: 40px;
    height: 35px;
    margin: 0 auto;
    position: relative;
  }
	.nav-button.active {
		height: 100px;
	}
	  .nav-button span {
		position: absolute;
		left: 0;
		width: 100%;
		height: 3px;
		background-color: #000;
		border-radius: 2.5px;
	  }
	  .nav-button.bar_black span {
		background-color: #000;
	  }
	  .nav-button span:nth-of-type(1) {
		top: 0;
	  }
	  .nav-button span:nth-of-type(2) {
		  top: 10px;
	  }
	  .nav-button span:nth-of-type(3) {
		  top: 20px;
	  }
	  .nav-button.active span:nth-of-type(1) {
		  transform: translateY(20px) rotate(-45deg);
	  }
	  .nav-button.active span:nth-of-type(2) {
		opacity: 0;
	  }
	  .nav-button.active span:nth-of-type(3) {
		  transform: translateY(0) rotate(45deg);
	  }


/*====================================
	fv
====================================*/
#fv {
    padding-top: 70px;
}


/*====================================
	concept
====================================*/
#concept .pic {
    display: none;
    /* top: 100px;
    right: 25px; */
}
    #concept .box {
        width: fit-content;
    }
    #concept .box .concept_tbl_img {
        display: block;
        position: absolute;
        top: -215px;
        right: 0;
        width: 181px;
    }
    #concept .box .item .txt {
        width: 100%;
    }

#concept .target .target_box .item {
    width: calc((100% - 30px) / 3);
}
#concept .target .target_box .item .pc {
    display: none;
}
    #concept .target .target_box .item div.tp {
        /* padding: 20px 15px 0; */
    }
    #concept .target .target_box .item div.bt {
        /* padding: 0 10px 20px; */
        /* background: transparent; */
    }
        #concept .target .target_box .item h4 {
            font-size: 20px;
        }


/*====================================
	program
====================================*/
#program .time_table .day_tabs {
    top: 70px;
}


/*====================================
	sponsor
====================================*/
#sponsor .box .item .ttl {
    margin-bottom: 20px;
}


/*====================================
	thanks
====================================*/
#thanks {
    padding-top: 100px;
}
#thanks .btn_area p {
    font-size: 18px;
}



}


html.is-fixed body {
    height: 100%;
    overflow: hidden;
}

@media only screen and (max-width: 767px){

/*====================================
	font
====================================*/
body, textarea, input, select, label{
	font-size: 14px;
}

/*====================================
	base
====================================*/

.sp{
    display: block;
}
.pc{
    display: none;
}

.wrap {
    padding-left: 20px;
    padding-right: 20px;
}

/* ttl */
.ttl {
    margin-bottom: 50px;
}
    .ttl h2 {
        font-size: 30px;
    }
    .ttl .en {
        font-size: 18px;
    }


/* btn */
.btn_txt {
    font-size: 16px;
}
.btn a {
    padding: 15px 20px;
    font-size: 18px;
}


/* pagetop */
#pagetop {
    bottom: 3rem;
    right: 1.5rem;
    width: 5rem;
    height: 5rem;
}


/*====================================
	header
====================================*/
header #header_area.sp-mode nav li {
    font-size: 18px;
}
header #header_area.sp-mode nav li.contact {
    width: 100%;
    font-size: 20px;
}
    header #header_area.sp-mode nav li.contact a {
        padding: 15px 20px;
    }


/*====================================
	fv
====================================*/
#fv .fv_pc {
    display: none;
}
#fv .fv_sp {
    display: block;
    position: relative;
    overflow: hidden;
    background: url('../img/fv_sp_bg.webp') no-repeat top center / 100% 100%;
}
#fv .fv_sp_content {
    position: relative;
    padding: 5% 5% 4%;
}
#fv .fv_sp_content .fv_logo {
    position: static;
    display: block;
    width: 88%;
    margin: 0 auto;
    top: auto;
    left: auto;
    opacity: 0;
}
#fv .fv_sp_content .fv_tagline {
    position: static;
    display: block;
    width: 92%;
    margin: 4% auto 0;
    top: auto;
    left: auto;
    opacity: 0;
}
#fv .fv_sp_content .fv_dates {
    position: static;
    display: block;
    width: 85%;
    margin: 3% auto 0;
    top: auto;
    left: auto;
    opacity: 0;
}
#fv .fv_speakers_sp {
    display: block;
    width: 100%;
    opacity: 0;
}

#fv.is-loaded .fv_sp_content .fv_logo       { animation: fv-logo-enter 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.2s forwards; }
#fv.is-loaded .fv_sp_content .fv_tagline { animation: fv-up-enter 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.45s forwards; }
#fv.is-loaded .fv_sp_content .fv_dates   { animation: fv-up-enter 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.62s forwards; }
#fv.is-loaded .fv_speakers_sp            { animation: fv-up-enter 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.35s forwards; }

/*====================================
	concept
====================================*/
#concept {
    padding-top: 50px;
    padding-bottom: 50px;
}
    #concept .pic {
        display: block;
        position: relative;
        width: 50%;
        margin: 0 auto;
        top: initial;
        right: initial;
    }
    #concept .box {
        margin-bottom: 40px;
    }
    #concept .box .concept_tbl_img {
        display: none;
    }
            #concept .box .item .txt p {
                font-size: 16px;
                line-height: 1.6;
            }
                #concept .box .item .txt p span {
                    font-size: 20px;
                }
    #concept .target h3 {
        font-size: 22px;
    }
    #concept .target .target_box {
        flex-direction: column;
        gap: 20px;
    }
    #concept .target .target_box .item {
        width: 100%;
        min-height: 200px;
    }
    /* #concept .target .target_box .item div.tp {
        justify-content: flex-end;
    }
    #concept .target .target_box .item div.bt {
        align-items: initial;
    } */


/*====================================
	program
====================================*/
#program {
    padding-top: 50px;
    padding-bottom: 50px;
    position: relative;
}
        #program .time_table .day_tab {
            padding: 10px;
        }
        #program .time_table .day_tab .day_label {
            font-size: 20px;
        }
        #program .time_table .day_tab .day_date {
            font-size: 14px;
            margin-bottom: 5px;
        }
        #program .time_table .day_tab .day_cont {
            font-size: 12px;
            padding: 5px 10px;
        }
        #program .time_table .item {
            flex-direction: column;
            padding: 20px;
        }
                #program .time_table .item .txt_area {
                    width: 100%;
                    margin-bottom: 30px;
                }
                    #program .time_table .item .txt_area .time_area {
                        gap: 20px;
                        margin-bottom: 20px;
                    }
                        #program .time_table .item .txt_area .time {
                            font-size: 20px;
                        }
                    #program .time_table .item .txt_area h3 {
                        font-size: 22px;
                    }
                    #program .time_table .item .txt_area .name_area {
                        margin-bottom: 20px;
                    }
                        #program .time_table .item .txt_area .name_area .name {
                            font-size: 18px;
                        }

                    #program .time_table .item .txt_area .btn_area a {
                        padding-bottom: 10px;
                        padding-left: 25px;
                    }
                    #program .time_table .item .txt_area .btn_area a::before {
                        top: calc(50% - 5.0px);
                    }

                #program .time_table .item .pic_area {
                    width: 100%;
                    position: relative;
                    z-index: 2;
                }
                    #program .time_table .item .pic_area .pic {
                        margin-bottom: 20px;
                        justify-content: flex-end;
                    }
                        #program .time_table .item .pic_area .pic img {
                            margin: 0;
                        }
                        #program .time_table .item .pic_area .btn_area a {
                            display: inline-block;
                            padding-right: 30px;
                            font-size: 16px;
                        }

/* アコーディオン（SP） */
#program .time_table .day_tabs {
    display: none;
}
#program .time_table .tab_panel {
    display: block;
    overflow: hidden;
}
#program .time_table .tab_panel .accordion_header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #fff;
    padding: 15px 50px;
    cursor: pointer;
    margin-bottom: 20px;
    background: linear-gradient(95.68deg, #418FD6 1.36%, #0963DF 100%);
    border-radius: 10px;
    position: relative;
    flex-wrap: wrap;
    gap: 10px;
}
#program .time_table .tab_panel.accordion_closed .accordion_header {
    background: #F9F9F9;
    border: 3px solid #D6DBE1;
}
#program .time_table .tab_panel .accordion_header::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 17px;
    transform: translateY(-50%);
    display: inline-block;
    width: 17px;
    height: 8px;
    background: url(../img/icon_close.svg) no-repeat center / contain;
    flex-shrink: 0;
}
#program .time_table .tab_panel.accordion_closed .accordion_header::after {
    background-image: url(../img/icon_open.svg);
}
#program .time_table .tab_panel.accordion_closed > *:not(.accordion_header) {
    display: none;
}
#program .time_table .tab_panel .accordion_left {
    display: flex;
    align-items: center;
    gap: 15px;
    font-weight: 700;
}
    #program .time_table .tab_panel .accordion_left .day_label {
        font-family: "montserrat", sans-serif;
        font-style: normal;
        font-size: 30px;
        line-height: 1.2;
        letter-spacing: 0;
    }
    #program .time_table .tab_panel.accordion_closed .accordion_left .day_label {
        color: #333333;
    }
    #program .time_table .tab_panel .accordion_left .day_date {
        font-size: 24px;
        line-height: 1.2;
        letter-spacing: 0;
        transform: translateY(2px);
    }
    #program .time_table .tab_panel.accordion_closed .accordion_left .day_date {
        color: #333333;
    }
#program .time_table .tab_panel .accordion_right {
    display: flex;
    align-items: center;
}
    #program .time_table .tab_panel .accordion_right .day_cont {
        background: #fff;
        padding: 5px 15px;
        font-size: 14px;
        line-height: 1.2;
        letter-spacing: 0;
        color: #418FD6;
    }
    #program .time_table .tab_panel.accordion_closed .accordion_right .day_cont {
        color: #333333;
    }

/* modal */
#program .modal {
    padding-left: 20px;
    padding-right: 20px;
}
#program .modal .wrap2 {
    padding-left: 0;
    padding-right: 0;
    width: 100%;
}
    #program .modal .modal-content {
        padding: 50px;
    }
    #program .modal .close {
        top: 15px;
        right: 15px;
        width: 30px;
    }
        #program .modal .content .time_area {
            margin-bottom: 10px;
        }   
        #program .modal .content h3 {
            margin-bottom: 30px;
        }
        #program .modal .content p {
            margin-bottom: 20px;
        }
    #program .modal .profile {
        padding: 20px 0 0;
        flex-direction: column-reverse;
    }
        #program .modal .profile .text {
            width: 100%;
        }
            #program .modal .profile .info {
                margin-bottom: 0;
            }

        #program .modal .profile .image {
            width: 100%;
            margin-bottom: 20px;
            display: flex;
            gap: 35px;
        }
            #program .modal .profile .image .pic {
                width: 36%;
            }
            #program .modal .profile .info {
                margin-top: auto;
                text-align: left;
            }

    #program .modal .btn_area {
        padding-top: 30px;
    }
        #program .modal .btn_area .btn a {
            width: 90%;
            max-width: 400px;
        }


/*====================================
	sponsor
====================================*/
#sponsor {
    padding-top: 50px;
    padding-bottom: 100px;
}
#sponsor .box + .box {
    margin-top: 50px;
}
#sponsor .box .item .thumb img {
    width: 80%;
    /* max-width: 330px; */
    max-width: 250px;
}


/*====================================
	gaiyou
====================================*/
#gaiyou {
    padding-top: 50px;
    padding-bottom: 50px;
}
#gaiyou table {
    border-spacing: 0;
}
#gaiyou table tr {
    display: block;
    width: 100%;
}
    #gaiyou table th,
    #gaiyou table td {
        display: block;
        width: 100%;
        font-size: 16px;
        text-align: left;
    }
    #gaiyou table th {
        border-bottom: none;
        padding-top: 15px;
        padding-bottom: 0;
    }
    #gaiyou table td {
        padding: 15px 0;
    }


/*====================================
	contact
====================================*/
#contact {
    padding-top: 50px;
    padding-bottom: 50px;
}


/*====================================
	privacy
====================================*/
#privacy {
    padding-top: 50px;
    padding-bottom: 50px;
}
#privacy .stage_area ul {
    flex-direction: column;
    gap: 20px;
}
    #privacy .stage_area ul li {
        width: 100%;
    }
        #privacy .stage_area ul li a {
        font-size: 14px;
        }
        #privacy .stage_area ul li a::before {
            width: 15px;
            margin-right: 20px;
        }


/*====================================
	thanks
====================================*/
    #thanks .ttl img {
        width: 80%;
        max-width: 400px;
    }
    #thanks .ttl h2 {
        font-size: 20px;
    }

#thanks .box {
    padding: 20px 30px;
    margin: 0 auto 40px;
}
    #thanks .box p {
        font-size: 14px;
    }

    #thanks .btn_area p {
        font-size: 16px;
    }
    #thanks .btn_area .btn_box {
        flex-direction: column;
    }
    #thanks .btn_area .btn_box .btn {
        width: 80%;
        margin-bottom: 20px;
    }
        #thanks .btn_area .btn_box .btn a {
            filter: drop-shadow(0px 5px 20px rgba(48, 50, 60, 0.11));
            background: #fff;
            color: #0963DF;
        }
        #thanks .btn_area .btn_box .btn.service a {
            font-size: 16px;
        }
        #thanks .btn_area .btn_box .btn a span::after {
            border-top: 2px solid #0963DF;
            border-right: 2px solid #0963DF;
        }

}


@media only screen and (max-width: 500px){

/*====================================
	program
====================================*/
/* アコーディオン（SP） */
#program .time_table .tab_panel .accordion_header {
    padding: 15px 35px 15px 15px;
}
#program .time_table .tab_panel.accordion_closed .accordion_header {
    background: #F9F9F9;
    border: 3px solid #D6DBE1;
}
#program .time_table .tab_panel .accordion_header::after {
    right: 10px;
}
#program .time_table .tab_panel .accordion_left {
    gap: 10px;
}
    #program .time_table .tab_panel .accordion_left .day_label {
        font-size: 20px;
    }
    #program .time_table .tab_panel .accordion_left .day_date {
        font-size: 16px;
    }

    #program .time_table .tab_panel .accordion_right .day_cont {
        padding: 5px 10px;
        font-size: 12px;
    }

/* modal */
    #program .modal .modal-content {
        padding: 30px;
    }

    #program .modal .close {
        right: 20px;
    }

        #program .modal .content .time_area {
            margin-bottom: 20px;
            gap: 20px;
        }   
            #program .modal .content .time_area .time {
                font-size: 20px;
            }
        #program .modal .content h3 {
            font-size: 22px;
        }
        #program .modal .content p {
            font-size: 14px;
        }
    #program .modal .profile {
        padding: 20px 0 0;
    }
            #program .modal .profile .text .msg {
                font-size: 14px;
            }
                #program .modal .profile .name {
                    font-size: 22px;
                }
                #program .modal .profile .company {
                    font-size: 14px;
                }

    #program .modal .btn_area {
        padding-top: 20px;
    }

}

/*====================================
    GSAP Animation Helpers
====================================*/
.ttl,
#concept .box,
#concept .target .item,
.day_tabs,
.cta_area,
#sponsor .box,
#gaiyou table,
#contact .wrap,
#privacy .wrap {
    will-change: transform, opacity;
}

/*====================================
	logo marquee
====================================*/
.logo_marquee {
    overflow: hidden;
    background: #fff;
    padding: 18px 0;
    margin: 40px 0;
}
.logo_marquee_inner {
    display: flex;
    width: 100%;
    overflow: hidden;
}
.logo_marquee_track {
    display: flex;
    align-items: center;
    width: max-content;
    animation: logo-marquee 50s linear infinite;
}
.logo_marquee_track img {
    height: 36px;
    width: auto;
    margin: 0 40px;
    object-fit: contain;
    flex-shrink: 0;
}
/* ロゴサイズ個別調整：比率の違いによる視覚的アンバランスを補正 */
.logo_marquee_track img[src*="logo_kairos"]  { height: 50px; }   /* 比率2.0 → 73px幅→50pxで101px相当 */
.logo_marquee_track img[src*="logo_ferret"]  { height: 48px; }   /* 比率2.3 → 84px幅→48pxで112px相当 */
.logo_marquee_track img[src*="logo_zoom"]    { height: 28px; }   /* 比率4.4 → 160px幅→28pxで124px相当 */
.logo_marquee_track img[src*="logo_suswork"] { height: 28px; }   /* 比率5.1 → 184px幅→28pxで143px相当 */
.logo_marquee_track img[src*="logo_immedio"] { height: 28px; }   /* 比率4.9 → 177px幅→28pxで138px相当 */
.logo_marquee_track img[src*="logo_di"]      { height: 28px; }   /* 比率4.7 → 169px幅→28pxで131px相当 */
.logo_marquee_track img[src*="logo_gs"]      { height: 18px; }   /* 比率9.2 → 333px幅→18pxで166px相当 */
.logo_marquee_track img[src*="logo_it"]      { height: 50px; }   /* 比率1.2 → 正方形に近いため拡大 */
.logo_marquee_track img[src*="logo_wacul"]   { height: 44px; }   /* 比率2.2 → やや小さいため拡大 */
@keyframes logo-marquee {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
@media (max-width: 767px) {
    .logo_marquee {
        padding: 14px 0;
        margin: 20px 0;
    }
    .logo_marquee_track img {
        height: 24px;
        margin: 0 24px;
    }
    /* SP用ロゴサイズ個別調整（PC比率に準じてスケール） */
    .logo_marquee_track img[src*="logo_kairos"]  { height: 34px; }
    .logo_marquee_track img[src*="logo_ferret"]  { height: 32px; }
    .logo_marquee_track img[src*="logo_zoom"]    { height: 19px; }
    .logo_marquee_track img[src*="logo_suswork"] { height: 19px; }
    .logo_marquee_track img[src*="logo_immedio"] { height: 19px; }
    .logo_marquee_track img[src*="logo_di"]      { height: 19px; }
    .logo_marquee_track img[src*="logo_gs"]      { height: 12px; }
    .logo_marquee_track img[src*="logo_it"]      { height: 34px; }
    .logo_marquee_track img[src*="logo_wacul"]   { height: 30px; }
}
@media (prefers-reduced-motion: reduce) {
    .logo_marquee_track {
        animation-play-state: paused;
    }
}

/* 登壇者アイテム：JS実行前から非表示にしてフラッシュを防ぐ */
.tab_panel .item {
    opacity: 0;
    transform: translateX(60px);
    will-change: transform, opacity;
}