@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;600;800;900&display=swap');
@import url('https://use.typekit.net/yjq2dmf.css');
:root {
	/* ========== Color ========== */
	--color-main:       #15412c;
	--color-sub:        #be0909;
	--color-bg-or:      #e8e4df;
	--color-text:       #333333;
	--color-border:     #dddddd;
	--color-white:      #ffffff;
	--color-gray:       #858585;
	--color-gray-02:    #222222;
}

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:0 0}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:0 0}ins{background-color:#ff9;color:#000;text-decoration:none}mark{background-color:#ff9;color:#000;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}.clearfix::after{content:"";display:block;clear:both;}

*,*::before,*::after{
	box-sizing: border-box;
}

html{
	font-size: 62.5%;
}

*{
	max-height: 99999px;
}

body{
	font-family: "Noto Sans JP", 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', 'Meiryo', '游ゴシック', 'Yu Gothic', 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
	-webkit-text-size-adjust: 100%;
	font-size: 1.6rem;
	color: var(--color-text);
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 3px;
	font-feature-settings: "palt";
}

img, video {
	vertical-align: bottom;
	max-width: 100%;
	height: auto;
}

button, input, textarea, select {
	font-family: inherit;
	font-size: inherit;
}

li {
	list-style: none;
}

a {
	text-decoration: none;
	color: var(--color-text);
}

a:hover {
	opacity: 0.6;
}

.en {
	font-family: "adobe-garamond-pro", serif;
	font-weight: 400;
	font-style: normal;
}
.min{
	font-family: "vdl-v7mincho", sans-serif;
	font-weight: 500;
	font-style: normal;
}

#wrap {
	overflow-x: clip;
}

.relative { position: relative; }
.absolute { position: absolute; }
.inline   { display: inline-block; }
.left     { float: left; }
.right    { float: right; }

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

.in {
	width: 1200px;
	margin: 0 auto;
	position: relative;
	z-index: 3;
}
.in_in {
	width: 1000px;
	margin: 0 auto;
	position: relative;
	z-index: 3;
}

.flex   { display: flex; }
.flex_w { flex-wrap: wrap; }
.palt   { font-feature-settings: "palt"; }

.c_main        { color: var(--color-main); }
.c_sub         { color: var(--color-sub); }
.c_text        { color: var(--color-text); }
.c_white       { color: var(--color-white); }
.c_gray        { color: var(--color-gray); }
.bg_main       { background-color: var(--color-main); }
.bg_sub        { background-color: var(--color-sub); }
.bg_color_bg_or{ background-color: var(--color-bg-or); }
.bg_white      { background-color: var(--color-white); }
.bg_gray_02    { background-color: var(--color-gray-02); }
.bg_grd {
	background-image: -moz-linear-gradient( -10deg, rgba(33,80,58,0.99608) 0%, rgb(25,70,49) 61%, rgb(17,60,40) 100%);
	background-image: -webkit-linear-gradient( -10deg, rgba(33,80,58,0.99608) 0%, rgb(25,70,49) 61%, rgb(17,60,40) 100%);
	background-image: -ms-linear-gradient( -10deg, rgba(33,80,58,0.99608) 0%, rgb(25,70,49) 61%, rgb(17,60,40) 100%);
}

@media screen and (min-width: 751px) and (max-width: 1024px) {
	.pc  { display: block; }
	.sp  { display: none; }
	.tab { display: block; }
	.in, .in_in {
		width: 90%;
		margin: 0 auto;
	}
}
@media screen and (max-width: 750px) {
	body {
		font-size: 1.2rem;
		letter-spacing: 2px;
	}
	#wrap {
		width: 100vw;
	}
	.pc  { display: none; }
	.sp  { display: block; }
	.tab { display: none; }
	.in, .in_in {
		width: 90%;
		margin: 0 auto;
	}
	.flex_w_sp {
		flex-wrap: wrap;
	}
}

.btn_w{}
.btn_i{
	width: 190px;
	justify-content: space-between;
	padding-bottom: 8px;
	border-bottom: 1px solid;
	line-height: 1;
	align-items: center;
}
.btn_i.btn_i_02{
	padding-bottom: 0;
	border-bottom: 0px;
	width: 170px;
}
.btn_i .txt{}
.btn_i .icon img{
	width: 40px;
}
.btn_03{
	align-items: center;
	padding: 15px;
}
.btn_03 .txt{
	width: 100%;
	text-align: center;
}
.btn_03 .icon{}
.btn_03 .icon img{
	width: 40px;
	flex-shrink: 0;
}
.btn_04{
	width: 300px;
	border: 1px solid;
	padding: 10px 20px;
	position: relative;
	display: block;
	text-align: center;
	font-size: 2.2rem;
	box-sizing: border-box;
}
.btn_04:after{
	content: "";
	width: 25px;
	height: 1px;
	display: block;
	top: 50%;
	right: 0;
	background: var(--color-white);
	position: absolute;
}
@media screen and (max-width: 750px) {
	.btn_i{
		width: 160px;
	}
	.btn_i.btn_i_02{
		width: 140px;
	}
	.btn_04{
		width: 250px;
		font-size: 1.6rem;
	}
}

.sec_ttl_w{
	margin-bottom: 70px;
}
.sec_ttl_w .s_ttl{
	align-items: center;
	margin-bottom: 30px;
}
.sec_ttl_w .s_ttl::before{
	content: "";
	display: block;
	width: 28px;
	height: 1px;
	background: var(--color-main);
	margin-right: 10px;
}
.sec_ttl_w .s_ttl.c_white::before{
	background: var(--color-white);
}
.sec_ttl_w .s_ttl .txt{
	font-size: 2.0rem;
	line-height: 1;
}
.sec_ttl_w.sec_ttl_w_02{}
.sec_ttl_w.sec_ttl_w_02 .s_ttl{
	margin-bottom: 45px;
}
.sec_ttl_w.sec_ttl_w_02 .sec_ttl{
	font-size: 6.0rem;
	line-height: 1.25;
	letter-spacing: 6px;	
}
.sec_ttl_w .jp_w{
	align-items: flex-end;
}
.sec_ttl_w .jp_w .en_ttl{
	font-size: 5.8rem;
	letter-spacing: 4px;
	line-height: 0.75;
}
.sec_ttl_w .jp_w .sec_ttl {
	font-size: 2.0rem;
	letter-spacing: 4px;
	line-height: 1;
}
.sec_ttl_w_s{
	margin-bottom: 45px;
	text-align: center;
}
.sec_ttl_s{
	font-size: 3.8rem;
}
.sec_ttl_lead_txt{
	font-size: 2.0rem;
	margin-bottom: 0px;
}
.l_deco_ttl_w{
	align-items: center;
	margin-bottom: 30px;
}
.l_deco_ttl_w .icon{
	margin-right: 10px;
}
.l_deco_ttl_w .icon img{
	width: 20px;
	vertical-align: baseline;
}
.l_deco_ttl_w .en_ttl{
	font-size: 3.2rem;
	line-height: 0.8;
	margin-right: 10px;
}
.l_line_ttl_w{
	align-items: center;
	margin-bottom: 30px;
}
.l_line_ttl_w::before {
	content: "";
	width: 20px;
	height: 1px;
	background: var(--color-main);
	display: block;
	margin-right: 10px;
}
.l_line_ttl_w .l_line_ttl{
	font-size: 2.8rem;
}
@media screen and (max-width: 750px) {
	.sec_ttl_w.sec_ttl_w_02 .s_ttl {
		margin-bottom: 15px;
	}
	.sec_ttl_w.sec_ttl_w_02 .sec_ttl{
		font-size: 3.5rem;
		letter-spacing: 4px;
	}
	.sec_ttl_w {
		margin-bottom: 40px;
	}
	.sec_ttl_w .s_ttl {
		align-items: center;
		margin-bottom: 15px;
	}
	.sec_ttl_w .jp_w .en_ttl{
		font-size: 3.8rem;
	}
	.sec_ttl_w .jp_w .sec_ttl {
		font-size: 1.4rem;
		letter-spacing: 2px;
		line-height: 1;
	}
	.sec_ttl_w_s{
		margin-bottom: 25px;
	}
	.sec_ttl_s{
		font-size: 2.5rem;
	}
	.sec_ttl_lead_txt{
		font-size: 1.6rem;
		margin-bottom: 0px;
	}
	.l_deco_ttl_w .en_ttl{
		font-size: 2.6rem;
	}
	.l_line_ttl_w{
		margin-bottom: 20px;
	}
	.l_line_ttl_w .l_line_ttl{
		font-size: 2.2rem;
	}
}


.event_w{
    justify-content: space-between;
    position: relative;
    z-index: 2;
	gap: 30px;
}
.event_w .event_i{
    width: 31.5%;
}
.event_w .event_i .imgarea{
	position: relative;
	margin-bottom: 15px;
}
.event_w .event_i .imgarea .upcoming_ribbon{
    position: absolute;
    top: 15px;
    left: -10px;
    background: var(--color-sub);
    color: var(--color-white);
    font-size: 1.4rem;
    letter-spacing: 2px;
    padding: 6px 20px 6px 12px;
    line-height: 1;
    z-index: 2;
    clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 50%, 100% 100%, 0 100%);
}
.event_w .event_i .txtarea{}
.event_w .event_i .txtarea .date{
    margin-bottom: 5px;
    font-size: 1.8rem;
}
.event_w .event_i .txtarea .event_name{
    margin-bottom: 10px;
    font-size: 1.8rem;
    font-weight: 600;
}
.event_w .event_i .event_i_btm{
    justify-content: space-between;
}
.event_w .event_i .event_i_btm .tag_w{}
.event_w .event_i .event_i_btm .tag_w .tag_i{
    font-size: 1.4rem;
    letter-spacing: 2px;
    line-height: 1;
}
.event_w .event_i .event_i_btm .tag_w .tag_i span{
    display: inline-block;
    padding: 5px 10px;
}
.event_w .event_i .event_i_btm .arr{
    margin-right: 10px;
}
.event_w .event_i .event_i_btm .arr img{
    width: 50px;
}
@media screen and (max-width: 750px) {
	.event_w .event_i{
		width: 100%;
	}
	.event_w .event_i .txtarea .date{
		font-size: 1.4rem;
	}
	.event_w .event_i .txtarea .event_name{
		font-size: 1.6rem;
	}
	.event_w .event_i .event_i_btm .tag_w .tag_i{
		font-size: 1.2rem;
	}
}

.artist_w{
    gap: 15px;
}
.artist_w .artist_i{
    width: 24%;
}
.artist_w .artist_i .imgarea{
    margin-bottom: 15px;
}
.artist_w .artist_i .txtarea{
    text-align: center;
}
.artist_w .artist_i .txtarea .name{
    font-weight: 500;
    font-size: 1.8rem;
    line-height: 1;
    margin-bottom: 10px;
}
.artist_w .artist_i .txtarea .part{
	line-height: 1.25;
}
.artist_w.artist_w_02 .artist_i {
	width: 32%;
}
.artist_w.artist_w_02 .artist_i .txtarea .name{
	font-size: 1.6rem;
}
@media screen and (max-width: 750px) {
	.artist_w{
		gap: 10px 0;
	}
	.artist_w .artist_i{
		width: 50%;
	}
	.artist_w .artist_i .imgarea {
		margin-bottom: 10px;
	}
	.artist_w .artist_i .txtarea .name{
        font-size: 1.5rem;
		margin-bottom: 5px;
    }
	.artist_w.artist_w_02 .artist_i {
		width: 50%;
	}
	.artist_w.artist_w_02 .artist_i .txtarea .name{
		font-size: 1.5rem;
	}
}

.news_w{
	justify-content: space-between;
}
.news_w .news_i{
	width: 49%;
	padding: 20px 0;
	border-top:1px solid var(--color-gray);
}
.news_w .news_i .news_i_h{
	align-items: center;
	margin-bottom: 5px;
}
.news_w .news_i .news_i_h .date{
	font-size: 1.8rem;
	margin-right: 10px;
}
.news_w .news_i .news_i_h .tag_w{}
.news_w .news_i .news_i_h .tag_w .tag_i{
    font-size: 1.4rem;
    letter-spacing: 2px;
    line-height: 1;
}
.news_w .news_i .news_i_h .tag_w .tag_i span{
    display: inline-block;
    padding: 5px 10px;
}
@media screen and (max-width: 750px) {
	.news_w .news_i{
		width: 100%;
		padding: 15px 0;
	}
	.news_w .news_i .news_i_h .date{
		font-size: 1.4rem;
	}
	.news_w .news_i .news_i_h .tag_w .tag_i{
		font-size: 1.2rem;
	}
	.news_w .news_i .ttl a{
		font-size: 1.3rem;
	}
}

.sponser_w{
	justify-content: center;
	gap: 8px;
}
.sponser_w .sponser_i{
	width: 16%;
}
@media screen and (max-width: 750px) {
	.sponser_w .sponser_i {
		width: 48.5%;
	}
}


.tab_w{
    padding: 40px 0 0px;
}
.event_tab{
    gap: 15px;
    flex-wrap: wrap;
}
.event_tab_i{}
.event_tab_i a{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-width: 180px;
    padding: 12px 20px;
    border: 1px solid var(--color-main);
    border-radius: 100px;
    font-size: 1.6rem;
    letter-spacing: 3px;
    color: var(--color-main);
    line-height: 1;
    transition: background .3s, color .3s;
}
.event_tab_i a:hover{
    opacity: 1;
    background: var(--color-main);
    color: var(--color-white);
}
.event_tab_i a:hover .arr img{
    filter: brightness(0) invert(1); /* 矢印を白に */
}
.event_tab_i.is_active a{
    background: var(--color-main);
    color: var(--color-white);
}
.event_tab_i .arr img{
    width: 24px;
}
.bg_main .event_tab_i a{
    border-color: var(--color-white);
    color: var(--color-white);
    background: transparent;
}
.bg_main .event_tab_i a:hover{
    background: var(--color-white);
    color: var(--color-main);
}
.bg_main .event_tab_i.is_active a{
    background: var(--color-white);
    color: var(--color-main);
}
@media screen and (max-width: 750px){
    .tab_w{
        padding: 30px 0 0;
    }
    .tab_w .in{
        width: 100%; /* 画面幅いっぱい */
        padding: 0;
    }
    .event_tab{
        flex-wrap: nowrap;           /* 折り返し禁止 */
        overflow-x: auto;            /* 横スクロール */
        padding: 0 5% 10px;          /* 画面端の余白 + スクロールバー用下余白 */
        gap: 8px;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;       /* Firefox スクロールバー非表示 */
    }
    .event_tab::-webkit-scrollbar{
        display: none;               /* Chrome/Safari スクロールバー非表示 */
    }
    .event_tab_i{
        flex-shrink: 0;              /* 各タブを縮めない */
    }
    .event_tab_i a{
        min-width: 0;
        padding: 10px 15px;
        gap: 10px;
        font-size: 1.2rem;
        letter-spacing: 2px;
        white-space: nowrap;         /* テキスト折り返し禁止 */
    }
    .event_tab_i .arr img{
        width: 18px;
    }
}

.lis_w{}
.lis_w .lis_i{
	align-items: center;
	border-top: 1px solid var(--color-gray);
	padding: 15px 0
}
.lis_w .lis_i:nth-last-of-type(1){
	border-bottom: 1px solid var(--color-gray);
}
.lis_w .lis_i:before{
	content: "";
	width: 8px;
	height: 8px;
	background: var(--color-main);
	margin-right: 10px;
	display: block;
	border-radius: 100px;
}

/* ===== Reveal Animations ===== */

/* 基本フェード (下から浮上) */
.js-reveal{
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 1s ease, transform 1s cubic-bezier(.2,.7,.2,1);
	will-change: opacity, transform;
}
.js-reveal.is-revealed{
	opacity: 1;
	transform: translateY(0);
}

/* バリエーション: 左から */
.js-reveal[data-reveal="left"]{ transform: translateX(-40px); }
.js-reveal[data-reveal="left"].is-revealed{ transform: translateX(0); }

/* バリエーション: 右から */
.js-reveal[data-reveal="right"]{ transform: translateX(40px); }
.js-reveal[data-reveal="right"].is-revealed{ transform: translateX(0); }

/* バリエーション: ズームイン */
.js-reveal[data-reveal="zoom"]{ transform: scale(.9); }
.js-reveal[data-reveal="zoom"].is-revealed{ transform: scale(1); }

/* バリエーション: フェードのみ */
.js-reveal[data-reveal="fade"]{ transform: none; }


/* ===== Split Text (1文字ずつ) ===== */
.js-reveal-split{
	/* JS実行前も非表示にしてFOUC防止 */
	visibility: hidden;
}
.js-reveal-split.is-ready{
	visibility: visible;
}
.js-reveal-char{
	display: inline-block;
	opacity: 0;
	transform: translateY(0.6em);
	transition: opacity .6s ease, transform .7s cubic-bezier(.2,.7,.2,1);
	transition-delay: calc(var(--i, 0) * 0.05s);
	will-change: opacity, transform;
}
.js-reveal-split.is-revealed .js-reveal-char{
	opacity: 1;
	transform: translateY(0);
}
.js-reveal-split[data-split-mode="word"] .js-reveal-char{
	transition-delay: calc(var(--i, 0) * 0.08s);
}

/* ===== Sketch SVG (輪郭→塗り) ===== */
.js-sketch svg path,
.js-sketch svg polygon,
.js-sketch svg circle,
.js-sketch svg rect,
.js-sketch svg ellipse{
	fill: transparent;
	stroke: currentColor;
	stroke-width: 0.3;
	stroke-dasharray: 3;
	stroke-dashoffset: 3;
}
.js-sketch.is-playing svg path,
.js-sketch.is-playing svg polygon,
.js-sketch.is-playing svg circle,
.js-sketch.is-playing svg rect,
.js-sketch.is-playing svg ellipse {
	animation: sketchDraw 1s ease-out forwards, sketchFill 0.6s ease-in 0.8s forwards;
}

@keyframes sketchDraw{
	to { stroke-dashoffset: 0; }
}
@keyframes sketchFill{
	to {
		fill: currentColor;
		stroke-width: 0;
	}
}