@charset "utf-8";
@import url('https://fonts.googleapis.com/css?family=Oswald|Roboto:500');

*{
	margin: 0;
	padding: 0;
	outline: none;
	box-sizing: border-box;
}
*:after, *:before{ box-sizing: border-box;}
html,body{ height: 100%;}
body{
	font-size: 16px;
	font-family:"メイリオ","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","sans-serif";
	line-height: 1.75;
}
p{ margin: 15px auto;}
a{
	text-decoration: none;
	transition: 0.3s ease-in-out;
}
a:not(.notrans):hover{
	opacity: 0.4;
	filter: alpha(opacity=40);
}
a.btn{
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
}
.ff-roboto{ font-family: 'Roboto', sans-serif;}
.ff-oswald{ font-family: 'Oswald', sans-serif;}
.green{ color: #208b7d;}
.pink{ color: #ff0058;}
.flexwrap{ display: flex;}
.flex1{ flex: 1;}
.order1{ order: 1;}
.order2{ order: 2;}
.alnC{ text-align: center;}
.fltL{ float: left;}
.fltR{ float: right;}
.clearfix:after{
	content:" ";
	display:block;
	clear:both;
}
.mt35{ margin-top: 35px;}
.mt1em{ margin-top: 1.8em;}
.inlineblock { display: inline-block; }

.tgt{
	margin-top:10px;
	opacity: 0;
}
.kv__img{
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 2;
	margin-top: calc(7%);
	display: flex;
	justify-content: center;
	align-items: center;
	/* margin-top: calc(7%);
	width: 25%;
	max-width: 604px;
	height: auto; */
	/*	position: absolute;
	top: 50%;*/
	@media screen and (max-width: 640px) {
		position: relative;
		margin-top: calc(110/640*100%);
		/* padding: 0 3.90625vw; */
		padding: 0 calc(40/640*100%);
	}
}
.kv__img-inner {
	max-width: 835px;
	width: 85%;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	/* @media screen and (max-width: 900px) {
		width: 70%;
	} */
	@media screen and (max-width: 640px) {
		/* width: 80%; */
		width: 100%;
	}
	@media screen and (max-height: 700px) {
		max-width: calc(835px*.8);
	}
	@media screen and (max-height: 600px) {
		max-width: calc(835px*.7);
	}
	@media screen and (max-height: 550px) {
		max-width: calc(835px*.6);
	}
	@media screen and (max-height: 500px) {
		max-width: calc(835px*.4);
	}
}
.kv__img-inner > img:nth-child(1) {
	margin-bottom: calc(44/835*100%);
	width: calc(354/835*100%);
}
.kv__img-inner > img:nth-child(2) {
	margin-bottom: calc(70/835*100%);
	width: 100%;
}
.kv__img-inner > img:nth-child(3) {
	margin-bottom: calc(36/835*100%);
	width: calc(405/835*100%);
}

.kv-btn {
	display: block;
	margin: 0 auto;
	/* width: 70%; */
	width: calc(405/835*100%);
	/* width: fit-content; */
}

.KV_close{
    padding-top: calc(5%);
    width: calc(70%);
}

@media screen and (max-width: 640px){
/* .kv__img{
 margin-top: calc(25%);
    width: calc(85%);
} */

.KV_close{
    padding-top: calc(15%);
    width: calc(80%);
}
}


.pc{ display: block;}
.pc-ib{ display: inline-block;}
.pc-f{ display: flex;}
.sp,.sp-ib,.sp-f{ display: none;}
@media screen and (max-width: 640px){
	body{ font-size: 4.0625vw;}
	.pc,.pc-ib,.pc-f{ display: none;}
	.sp{ display: block;}
	.sp-ib{ display: inline-block;}
	.sp-f{ display: flex;}
	.sp-fs20{ font-size: 3.125vw;}
}

/*-----------------------------------------------
	block
-----------------------------------------------*/
#btnCta{
	position: fixed;
	right: 45px;
	bottom: 35px;
	z-index: 99;
}
#btnCta img {
	width: calc(180px * .75);
	height: calc(204px * .75);
}
@media screen and (max-width: 640px){
	#btnCta{
		width: 100%;
		padding: 6.25vw 13.28125vw;
		text-align: center;
		color: #fff;
		right: 0;
		bottom: 0;
		font-size: 4.0625vw;
		background: url(../img/icn_arrow02.png) no-repeat right 5.46875vw center #ff0000;
		background-size: 7.03125vw auto;
	}
	#btnCta:hover{
		color: #000;
		background-color: #ffcb18;
	}
	#btnCta.fixed-bottom{
		bottom: 26.25vw;
	}
}

/*	header
--------------------------------------*/
header{
	height: 100vh;
	padding: 30px 0 35px 0;
	text-align: center;
	background: url(../img/bg_header.jpg) no-repeat center center;
	background-size: cover;
	position: relative;
	overflow: hidden; 
}
header:after{
	content: "";
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.38);
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
}
header nav{
	width: 100%;
	height: 80px;
	margin: 0 auto;
	padding: 0 45px;
	display: flex;
	align-items: center;
	position: relative;
	z-index: 2;
}
header nav ul{
	height: 100%;
	padding: 0 18px 0 20px;
	display: flex;
	flex:2;
	align-items: center;
	background: #000;
	list-style: none;
	overflow-y: hidden;
}
header nav li{
	font-size: 16px;
	font-family: 'Roboto', sans-serif;
	font-weight: 500;
	line-height: 1;
	text-align: left;
}
header nav li:first-child{
	width: 215px;
	flex: 1;
	font-size: 0;
}
header nav li a{
	padding: 0 12px;
	color: #fff;
	display: inline-block;
}
header nav li:first-child a{ padding: 0;}
header nav a.entry{
	width: 197px;
	height: 80px;
	font-size: 0;
	text-align: center;
	display: block;
	align-items: center;
	justify-content: center;
	background: url(../img/txt_entry.png) no-repeat center center #f00;
}
header nav a.entry:hover{
	background: url(../img/txt_entry_o.png) no-repeat center center #ffcb18;
}
header nav a.entry.close{
	background: url(../img/txt_entry.png) no-repeat center center #666;
}
header nav a.entry.close:hover{
	background: url(../img/txt_entry_o.png) no-repeat center center #666;
}
header nav#subnav{
	padding: 0;
	position: fixed;
	top: 0;
	left: 0;
	display: none;
	z-index: 99;
}
header nav#subnav ul{
	padding: 0 18px 0 65px;
	background: #000;
}
header nav#subnav a.entry{
	width: 240px;
}
/* header h1{
	width: calc(100%);
	margin:  105px auto 55px auto;
	text-align: center;
	position: relative;
	z-index: 2;
}
header h1 img{
	width: 100%;
	height: 70%;
	margin: 0 auto;
	display: block;
} */
header a.btndown{ position: relative; z-index: 2;}
/* @media screen and (max-height: 900px){
	header h1{
		width: 400px;
		margin:  10vh auto 5vh auto;
	}
} */
@media screen and (max-width: 1100px){
	header nav li{ font-size: 14px;}
	header nav a.entry,header nav a.entry:hover{
		width: 120px;
		background-size: 70px auto;
	}
	header nav a.entry.close,header nav a.entry.close:hover{
		width: 120px;
		background-size: 70px auto;
	}
}
@media screen and (max-width: 960px){
	header nav li:first-child{ width: 160px;}
	header nav li:first-child img{ width: 160px; height: auto;}
	header nav li{ font-size: 13px;}
	header nav a.entry,
	header nav a.entry:hover{
		width: 80px;
		background-size: 50px auto;
	}
	header nav a.entry.close:hover{
		width: 80px;

	}
	/* header h1{ width: 400px; margin-top: 70px;} */
}
@media screen and (max-width: 834px){
	header nav li a{ padding: 0 11px;}
}
@media screen and (max-width: 640px){
	header{
		height: auto;
		padding: 12.5vw 0 35px 0;
	}
	header nav{
		width: 100vw;
		height: 100vh;
		padding: 5.46875vw 0 0 0;
		display: block;
		position: fixed;
		top: 17.1875vw;
		left: 0;
		z-index: 3;
		background: #000;
		display: none;
	}
	header nav ul{
		height: 100%;
		padding: 0 18px 0 20px;
		display: block;
		background: #000;
	}
	header nav li{
		padding: 0;
		font-size: 5.9375vw;
		font-family: 'Roboto', sans-serif;
		font-weight: 500;
		line-height: 1;
		text-align: center;
		letter-spacing: 2px;
	}
	header nav li a{
		padding: 3.125vw 0;
		color: #fff;
		display: block;
	}
	header nav .entry{ display: none;}
	header nav#subnav{ display: none !important;}
	/* header h1{
		width: 100%;
		max-width: none;
		padding: 0 9.375vw;
	} */
}

/*	for sp-nav
--------------------------------------*/
@media screen and (max-width: 640px){
	#sphead{
		width: 100%;
		height: 17.1875vw;
		padding-left: 3.90625vw;
		display: flex;
		align-items: center;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 99;
	}
	#sphead.active{ background: #000;}
	#lit{
		line-height: 1;
		text-align: left;
	}
	#lit img{
		width: 43.75vw;
		height: auto;
	}
	#sphead a.entry{
		width: 26.5625vw;
		height: 17.1875vw;
		font-size: 0;
		text-align: center;
		display: block;
		align-items: center;
		justify-content: center;
		background: url(../img/txt_entry.png) no-repeat center center 	#f00;
		background-size: 18.75vw auto;
	}
	#sphead a.entry:hover{
		background: url(../img/txt_entry_o.png) no-repeat center center #ffcb18;
		background-size: 18.75vw auto;
	}
	#sphead a.entry.close{
		background: url(../img/txt_entry.png) no-repeat center center #666;
		background-size: 18.75vw auto;
	}
	#sphead a.entry.close:hover{
		background: url(../img/txt_entry_o.png) no-repeat center center #666;
		background-size: 18.75vw auto;
	}
	#btnSP{
		width: 17.1875vw;
		height: 100%;
		text-align: center;
		display: inline-block;
		background: #000;
		position: relative;
	}
	#btnSP.active{ background: #fff;}
	#btnSP span{
	  display: inline-block;
	  transition: all .4s;
	  position: absolute;
	  left: 31%;
	  width: 6.71875vw;
	  height: 4px;
	  background: #fff;
	  border-radius: 4px;
	}
	#btnSP.active span{ background: #000;}
	#btnSP span:nth-of-type(1){ top: 39%;}
	#btnSP span:nth-of-type(2){ bottom: 39%;}
	#btnSP.active span:nth-of-type(1){
		top: 46%;
		transform: rotate(45deg);
	}
	#btnSP.active span:nth-of-type(2){
		bottom: 50%;
		transform: rotate(-45deg);
	}
}


/*	main
--------------------------------------*/
main{}
.innerwrap{
	max-width: 1220px;
	margin: 0 auto;
	padding: 0 90px;
}
main article{
	padding: 80px 0 100px 0;
}
main h2{
	margin-bottom: 15px;
	font-size: 92px;
	font-family: 'Oswald', sans-serif;
	font-weight: normal;
	line-height: 1;
	letter-spacing: 0.5px;
	text-align: center;
}
main h2:first-letter{ color: #208b7d;}
main h3.lead{
	margin-bottom: 45px;
	padding-bottom: 15px;
	line-height: 1.4;
	font-size: 28px;
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	font-weight: bold;
	text-align: center;
	background: url(../img/dotline_b.png) no-repeat center bottom;
}
@media screen and (max-width: 640px){
	main{ padding: 0;}
	.innerwrap{ padding: 0;}
	main article{
		padding: 12.5vw 3.90625vw 15.625vw 3.90625vw;
	}
	main h2{ font-size: 14.375vw;}
	main h3.lead{
		font-size: 5vw;
		line-height: 1.4;
	}
}


/* about
--------------------------------------*/
#about{ padding-top: 25px;}
#about section{
	padding: 90px 90px 30px 90px;
	position: relative;
}
#about h2{
	margin: 0 0 -50px 0;
	padding-left: 120px;
	font-size: 160px;
	color: #bebebe;
	text-align: left;
	position: relative;
	z-index: 2;
}
#about h2:first-letter{ color: #bebebe;}
#about section:nth-child(odd){ background: #ffff4c;}
#about section:nth-child(even){ background: url(../img/bg_about.png) repeat center bottom;}
#about section.tail:before{
	content: "";
	width: 100%;
	height: 41px;
	background: url(../img/bg_tail01.png) no-repeat center bottom;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
}
#about section.tail:after{
	content:"";
	width: 100%;
	height: 41px;
	background: url(../img/bg_tail02.png) no-repeat center bottom;
	position: absolute;
	bottom: -41px;
	left: 0;
	z-index: 2;
}
#about section.tail.nobottomtri:after{
	content:none;
	z-index: 2;
}
#about h3{}
#about h3 img{
	width: 100%;
	max-width: 1030px;
	height: auto;
}
#about p{ margin: 30px auto;}
#about h3 + p{ margin-top: 15px;}
#about .flexwrap{ margin-top: 20px;}
#about .flexwrap + p{ margin-top:  0;}
#about .flex1{ padding-right: 15px;}
#about .flex1 p:first-child{ margin-top: 0;}
#about .video{ order: 2;}
#about .video iframe{
	width: 462px;
	height: 260px;
}
#about a{
	font-weight: bold;
	color: #000;
	text-decoration: underline;
}
#about a:hover{ text-decoration: none;}

@media screen and (max-width: 834px),
@media screen and (max-width: 640px){
	#about{ padding-top: 0;}
	#about section{
		padding: 60px 3.125vw 30px 3.125vw;
		position: relative;
	}
	#about h2{
		margin: 0 0 -50px 0;
		padding-left: 10px;
		font-size: 25vw;
		text-align: left;
		position: relative;
		z-index: 2;
	}
	#about .flexwrap{
		display: block;
	}
	#about .video iframe{
		width: 100%;
		height: 100%;
		margin: 0 auto;
	}
	#about .flex1 p:first-child{ margin-top: 6.25vw;}

}


/* schedule
--------------------------------------*/
#schedule{
	color: #fff;
	background: #208b7d;
}
#schedule h2,
#schedule h2:first-letter{ color: #fff;}
#schedule .timetable{
	display: flex;
	justify-content: center;
	gap: 20px;
}
#schedule h2 {
	margin-bottom: 45px;
	padding-bottom: 20px;
	background: url(../img/dotline_w.png) no-repeat center bottom;
}
#schedule table{
	width: 32%;
	max-width: 330px;
	margin-top: 5px;
	border-collapse: collapse;
	border: none;
	background: #fff;
}
#schedule caption{
	padding: 10px;
	font-size: 18px;
	font-weight: bold;
	color: #000;
	background: #b2ece4;
	border: 1px solid #000;
	border-bottom: none;
}
#schedule th{
	vertical-align: top;
	height: 50px;
	padding: 5px 15px;
	font-size: 15px;
	text-align: left;
	color: #000;
	border: 1px solid #000;	
}
#schedule td{
	height: 50px;
	padding: 5px 15px;
	font-size: 15px;
	text-align: left;
	color: #000;
	border: 1px solid #000;
}
#schedule th{
	width: 85px;
}
#schedule td{
	padding-left: 25px;
}
#schedule .pd40{
	padding-top: 40px;
	padding-bottom: 40px;
}
#schedule .pd50{
	padding-top: 50px;
	padding-bottom: 50px;
}
#schedule .pd60{
	padding-top: 60px;
	padding-bottom: 60px;
}
#schedule .pd70{
	padding-top: 72px;
	padding-bottom: 71px;
}
#schedule .pd90{
	padding-top: 90px;
	padding-bottom: 90px;
}
#schedule tr.bgG{ background: #f7f7f7;}
#schedule tr.bgY{ background: #fff100;}
#schedule ul:not(.switch){
	margin-top: 35px;
	list-style: none
}
#schedule ul:not(.switch) li{
	margin-top: 15px;
	font-size: 14px;
}
#schedule ul:not(.switch) li:first-child{ margin-top: 0;}


.schedule-list ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.schedule-list li {
    padding: 20px;
    margin-bottom: 15px;
    border-left: 5px solid #208b7d;
    background-color: #fff;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.schedule-list .date-location {
    font-size: 22px;
    font-weight: bold;
    color: #208b7d;
    margin-bottom: 10px;
}

.schedule-list .details {
    font-size: 18px;
    color: #333;
}

@media screen and (max-width: 640px) {
    .schedule-list li {
        padding: 15px;
    }
    .schedule-list .date-location {
        font-size: 18px;
    }
    .schedule-list .details {
        font-size: 16px;
    }
}




@media screen and (max-width: 640px) {
    .schedule-list li {
        padding: 10px;
    }
    .schedule-list .date-location {
        font-size: 16px;
    }
    .schedule-list .details {
        font-size: 14px;
    }
}




#place {
    padding: 80px 0;
    background: #f2f2f2;
}
#place h2 {
    font-size: clamp(48px, 8vw, 96px);
  	line-height: 1.05;
  	font-weight: 800;
  	text-align: center;
  	margin: 0 0 32px;
}
#place h3 {
    font-size: 28px;
    margin-bottom: 15px;
}
#place h4 {
    font-size: 24px;
    margin-bottom: 10px;
}
#place p {
    font-size: 18px;
    line-height: 1.5;
    margin-bottom: 20px;
}
#place .map-image {
    text-align: center;
}
#place .map-image img {
    max-width: 100%;
    height: auto;
    border: 1px solid #000;
}


.flexwrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.new-place-content {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.block {
    width: 48%;
    margin-bottom: 20px;
}

.map-image img {
    width: 100%;
    height: auto;
    border: 1px solid #000;
}

@media screen and (max-width: 768px) {
    .block {
        width: 100%;
    }
}
@media screen and (max-width: 640px){
	#schedule .switch{
		margin-bottom: 35px;
		display: flex;
		justify-content: space-between;
		align-items: center;
		list-style: none;
	}
	#schedule .switch li{
		width: 27vw;
		max-width: 180px;
		padding: 3.5vw 0;
		text-align: center;
		font-weight: bold;
		color: #000;
		background: #fff;
		position: relative;
	}
	#schedule .switch li:hover{ cursor: pointer;}
	#schedule .switch li.active{ background: #fff100;}
	#schedule .switch li:after{
		content: "";
		position: absolute;
		right: 0;
		bottom: -15px;
		left: 0;
		width: 0px;
		height: 0px;
		margin: auto;
		border-style: solid;
		border-color: #fff transparent transparent transparent;
		border-width: 15px 12px 0 12px;
	}
	#schedule .switch li.active:after{ border-color: #fff100 transparent transparent transparent;}
	#schedule .timetable{
		width: 100%;
		max-width: 100%;
		padding: 0 4.6875vw;
		display: block;
	}
	#schedule table{
		width: 100%;
		max-width: 100%;
		margin-top: 0;
		border-collapse: collapse;
		table-layout: fixed;
	}
	#schedule table:not(.active){ display: none;}
}



/* program
--------------------------------------*/
#program{ background: #f2f2f2;}


#program section{
	margin-top: 22px;
	padding: 35px 30px;
	background: #fff;
	border: 6px solid #208b7d;
}
#program section:first-child{ margin-top: 0;}
#program section h3{
	margin-bottom: 20px;
	line-height: 1;
}
#program section h3 img{
	/* width: 100%;
	max-width: 840px; */
	max-width: 100%;
	height: auto;
}
#program .leftbox{
	width: 363px;
	margin-right: 40px;
	text-align: center;
}
#program .leftbox img{
	width: 100%;
	height: auto;
	margin: 5px auto 25px auto;
}
#program .video{ margin: 5px 40px 10px auto;}
#program .video iframe{
	width: 363px;
	height: 241px;
}
#program h4{
	font-size: 24px;
	line-height: 1.4;
	letter-spacing: 1px;
	display: inline-block;
	border-bottom: 4px  solid #ffed22;
}
#program p{ margin-top: 0; font-size: 15px;}
#program h4 + p{ margin-top: 8px;}
#program a.btn{
	padding: 15px 70px;
	font-size: 18px;
	color: #fff;
	background: url(../img/icn_arrow01.png) no-repeat right 25px center #208b7d;
	border-radius: 35px;
	display: inline-block;
}
#program a.btn:hover{
	background-color: #0a433c;
}

/* 修正または追加箇所: 以下のセレクタ全体を追加 */

#program .innerwrap {
    max-width: 1220px;
    margin: 0 auto;
    padding: 0 90px;
}

#program h3.lead {
    margin-bottom: 30px;
    font-size: 28px;
    text-align: center;
    font-weight: normal;
    font-family: 'Oswald', sans-serif;
}
#program p {
    margin-bottom: 20px;
    text-align: left;
    font-size: 18px;
    line-height: 1.5;
}
#program ul {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: center;
    margin-bottom: 20px;
}
#program ul li {
    display: inline-block;
    margin-right: 15px;
    font-size: 18px;
}
#program .program-items {
    display: flex;
    justify-content: space-around;
    align-items: flex-start;
}
#program .program-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 45%;
}
#program .program-item h3 {
    font-size: 24px;
    margin-bottom: 10px;
    color: #333;
}
#program .program-item p {
    font-size: 18px;
    color: #666;
    margin-bottom: 10px;
}
#program .program-item img {
    width: 100%;
    height: auto;
    margin-top: 20px;
}

/* Responsive Styles */
@media screen and (max-width: 834px){
    #program section{
        padding: 6.25vw 5.46875vw 10.9375vw 5.46875vw;
    }
    #program .flexwrap{ display: block; }
    #program .program-items {
        flex-direction: column;
    }
    #program .program-item {
        max-width: 100%;
        margin-bottom: 20px;
    }
    #program .leftbox{
        width: 100%;
        margin-right: 0;
    }
}
@media screen and (max-width: 640px){
    #program h4{ font-size: 4.6875vw; }
    #program p{ font-size: 3.75vw; }
    #program a.btn{
        width: 100%;
        margin-top: 6.25vw;
        padding: 15px 25px;
        font-size: 4.275vw;
        border-radius: 40px;
    }
}


/* outline
--------------------------------------*/
#outline{}
#outline .alnC img{
	width: 100%;
	height: auto;
	margin-bottom: 40px;
}
#outline figure{
	width: 70%;
	max-width: 556px;
	min-height: 480px;
	margin-right: 40px;
	display: block;
}
#outline .rightbox{
	max-width: 445px;
	margin-top: 15px;
}
#outline h4{
	font-size: 34px;
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	line-height: 1.4;
	border-bottom: 4px  solid #ffed22;
	display: inline-block;
}
#outline h4 + h5{
	margin: 10px auto;
	font-size: 22px;
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	line-height: 1.5;
}
#outline table{
	margin: 40px auto 50px auto;
	border-collapse: collapse;
}
#outline th,#outline td{
	border: 1px solid #000;
}
#outline th{
	width: 260px;
	padding: 20px 25px;
	font-size: 20px;
	text-align: left;
	background: #e0f5f2;
}
#outline td{
	padding: 20px 30px;
	font-size: 15px;
}
#outline tr:nth-child(even) td{ background: #f6f6f6;}
#outline td h5{	font-size: 22px;}
#outline td strong{ font-size: 18px;}
#outline td span{ font-weight: normal;}
#outline td ul{ padding-left: 1.3em;}
#outline td small{
	margin-top: 5px;
	display: block;
}
#outline .step{
	list-style: none;
	display: flex;
	justify-content: space-between;
}
#outline .step li{
	max-width: 165px;
	padding: 6px;
	font-size: 14px;
	border: 2px solid #208b7d;
}
#outline .step h4{
	margin-bottom: 15px;
	font-size: 18px;
	text-align: center;
	color: #208b7d;
	border-bottom: none;
	display: block;
}
#outline .step h4 em{
	margin-bottom: 15px;
	height: 36px;
	padding: 10px;
	font-family: 'Roboto', sans-serif;
	font-style: normal;
	font-weight: 500;
	line-height: 1;
	color: #fff;
	display: block;
	background: #208b7d;
	position: relative;
	overflow: hidden;
}
#outline .step h4 em:after{
	content: "";
	position: absolute;
	width: 0;
	height: 0;
	margin: auto;
	top: 0;
	right: 0;
	border-style: solid;
	border-color: transparent transparent transparent #208b7d;
	border-width: 18px 0 18px 18px;
	background: #fff;
	z-index: 1;
}
#outline .step a{ color: #0092ff;}

.new-place-content {
    margin-top: 40px;
}

.new-place-content h4 {
    font-size: 24px;
    margin-bottom: 10px;
    color: #208b7d;
}

.new-place-content h5 {
    font-size: 20px;
    margin-bottom: 10px;
    color: #666;
}

.new-place-content p {
    font-size: 16px;
    line-height: 1.5;
    margin-bottom: 20px;
}

.new-place-content .map-image {
    text-align: center;
    margin-top: 20px;
}

.new-place-content .map-image img {
    max-width: 100%;
    height: auto;
    border: 1px solid #000;
}

@media screen and (max-width: 834px){
	#outline .flexwrap{ display: block;}
	#outline .alnC img{ margin-bottom:  0;}
	#outline figure{
		width: 100%;
		max-width: none;
		height: 62.5vw;
		margin-right: 0;
		display: block;
	}
	#outline .rightbox{
		max-width: 100%;
		margin-top: 6.25vw;
	}
	#outline .step{
		list-style: none;
		display: block;
		justify-content: space-between;
	}
	#outline .step li{
		max-width: 100%;
		margin-top: 2.125vw;
		padding: 2.125vw;
		font-size: 16px;
		border: 2px solid #208b7d;
	}
	#outline .step h4{
		margin-bottom: 15px;
		font-size: 3.175vw;
		text-align: center;
		color: #208b7d;
		border-bottom: none;
		display: block;
	}
	#outline .step h4 em{
		height: auto;
		margin-bottom: 15px;
		padding: 2.125vw;
		overflow: auto;
	}
	#outline .step h4 em:after{ content: none;}
}
@media screen and (max-width: 640px){
	#outline figure{
		max-width: 590px;
	}
	#outline h4 + h5{ font-size: 4.6875vw;}
	#outline p{ font-size: 3.75vw;}
	#outline th, #outline td{
		width: 100%;
		padding: 2.5vw 3.125vw;
		display: block;
	}
	#outline th{
		font-size: 4.375vw;
		border-top: none;
		border-bottom: none;
	}
	#outline tr:first-child th{ border-top: 1px solid #000;}
	#outline td{ font-size: 3.75vw;}
	#outline td h5{	font-size: 4.375vw;}
	#outline td strong{ font-size: 3.75vw;}
	#outline .step{
		list-style: none;
		display: block;
		justify-content: space-between;
	}
	#outline .step li{
		max-width: 100%;
		margin-top: 3.125vw;
		padding: 3.125vw;
		font-size: 3.75vw;
		border: 2px solid #208b7d;
	}
	#outline .step h4{
		margin-bottom: 15px;
		font-size: 4.375vw;
		text-align: center;
		color: #208b7d;
		border-bottom: none;
		display: block;
	}
	#outline .step h4 em{
		height: auto;
		margin-bottom: 15px;
		padding: 3.125vw;
		overflow: auto;
	}
	#outline .step h4 em:after{ content: none;}
}

.original-price {
    text-decoration: line-through;
    color: #999;
    margin-right: 10px;
}

.discounted-price {
    color: #e60000;
    font-weight: bold;
}

.special-discount {
    font-size: 14px;
    color: #e60000;
    font-weight: bold;
    background-color: #ffeb3b;
    padding: 2px 6px;
    border-radius: 3px;
    display: inline-block;
    margin-top: 5px;
}



.deadline-list {
    list-style-type: none;
    padding: 0;
}

.deadline-list li {
    margin-bottom: 5px;
}

.pink strong {
    color: #e60000;
    font-weight: bold;
}

/* voice
--------------------------------------*/
#voice{ background: #e0f5f2;}
#voice figure{
	width: 317px;
	height: auto;
	margin: 5px 45px 0 0;
}
#voice p{
	margin: 30px auto;
	font-size: 18px;
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	font-weight: bold;
	line-height: 1.7;
	letter-spacing: -1px;
}
#voice .flexwrap p:first-child{ margin-top:0;}
#voice h4{
	font-size: 26px;
	letter-spacing: 1px;
	text-align: right;
}
#voice h4 em{
	margin-bottom: 10px;
	padding-bottom: 3px;
	font-size: 22px;
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	font-style: normal;
	line-height: 1.4;
	border-bottom: 4px  solid #ffed22;
	display: inline-block;
}
#voice h4 small{
	margin-bottom: 10px;
	font-size: 18px;
	line-height: 1.4;
	display: inline-block;
}
@media screen and (max-width: 834px){
	#voice .flexwrap{ display: block;}
	#voice figure{
		width: 100%;
		margin: 0;
		text-align: center;
	}
	#voice figure img{
		width: 100%;
		max-width: 380px;
		height: auto;
	}
}
@media screen and (max-width: 640px){
	#voice h4{ font-size: 5vw;}
	#voice h4 em{ font-size: 4.0625vw;}
	#voice h4 small{ font-size: 4.0625vw;}
	#voice p{
		margin: 20px auto;
		font-size: 3.75vw;
		letter-spacing: 0;
	}
	#voice .flexwrap p:first-child{ margin-top: 20px;}
}

/* company
--------------------------------------*/
#company{}
#company h2{ line-height: 1.4;}
#company h3.lead + p.alnC{ margin: 0 auto 30px auto;}
#company a.btn{
	margin-top: 15px;
	padding: 20px 60px;
	font-size: 18px;
	font-weight: bold;
	color: #000;
	display: inline-block;
	border: 2px solid #ff0000;
	border-radius: 50px;
	background: url(../img/icn_arrow03.png) no-repeat right 30px center;
}
#company a.btn:hover{
	color: #fff;
	background: url(../img/icn_arrow01.png) no-repeat right 30px center #ff0000;
}

@media screen and (max-width: 640px){
	#company .alnC img{
		width: 90%;
		height: auto;
	}
	#company a.btn{
		width: 100%;
		padding: 20px 40px 20px 20px;
		font-size: 4.375vw;
	}
}


/* faq
--------------------------------------*/
#faq{ background: #f2f2f2;}
#faq h2{ line-height: 1.4;}
#faq dt{
	margin-bottom: 10px;
	padding: 0 0 0 53px;
	font-size: 28px;
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	font-weight: bold;
	position: relative;
}
#faq dt:before{
	content: "Q";
	width: 40px;
	height: 49px;
	padding: 9px 0 0 13px;
	font-size: 18px;
	color: #fff;
	background: url(../img/icn_hexagon.png) no-repeat 0 0;
	background-size: cover;
	display: inline-block;
	position: absolute;
	top: 0;
	left: 0;
	box-sizing: border-box;
}
#faq dd{
	margin-bottom: 35px;
	padding-bottom: 35px;
	border-bottom: 1px solid #d4d4d4;
}
#faq dd:before{
	content: "A. ";
}
#faq dd:last-child{
	margin-bottom: 0;
	border: none;
}
#faq a{
	color: #000;
	text-decoration: underline;
}
#faq a:hover{ text-decoration: none;}

@media screen and (max-width: 640px){
	#faq dt{
		margin-bottom: 0;
		padding: 3.3vw 30px 3.3vw 9vw;
		font-size: 4.0625vw;
		border-bottom: 1px solid #8d8d8d;
		background: url(../img/sp/icn_faqarrow02.png) no-repeat right 0 center;
		line-height: 1.5;
	}
	#faq dt.active{ background: url(../img/sp/icn_faqarrow01.png) no-repeat right 0 center;}
	#faq dt:first-child{ border-top: 1px solid #8d8d8d;}
	#faq dt:hover{ cursor: pointer;}
	#faq dt:before{
		width: 7.03125vw;
		margin-top: 2.3vw;
		padding-left: 0;
		text-align: center;
		font-size: 2.8125vw;
		background-size: 7.03125vw auto;
	}
	#faq dd{
		margin-bottom: 0;
		padding-top: 20px;
		font-size: 3.75vw;
		display: none;
	}
}


/* final
--------------------------------------*/
#final{
	padding: 100px 0 85px 0;
	text-align: center;
	background: url(../img/bg_header.jpg) no-repeat center center;
	background-size: cover;
	position: relative;
}
#final:after{
	content: "";
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.38);
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
}
#final .innerwrap{
	position: relative;
	z-index: 2;
}
#final a.btn{
	margin: 15px auto 25px auto;
	padding: 20px 100px;
	font-size: 24px;
	font-weight: bold;
	color: #fff;
	display: inline-block;
	border-radius: 110px;
	background: url(../img/icn_arrow02.png) no-repeat right 40px center #ff0000;
}
#final a.close.btn{
	background-image: none;
	background-color: #666;
}
#final a.btn:hover{
	color: #000;
	background-color: #ffff00;
}
#final a.close.btn:hover{
	color: #fff;
	background-image: none;
	background-color: #666;
	cursor: default;
}
#final h3{
	font-size: 24px;
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", sans-serif;
	color: #fff;
}

@media screen and (max-width: 640px){
	#final{ padding-top: 28.125vw;}
	#final h2{
		max-width: 428px;
		margin: 0 auto;
	}
	#final h2 img{
		width: 100%;
		height: auto;
	}
	#final a.btn{
		width: 100%;
		max-width: 580px;
		margin-top: 9.375vw;
		font-size: 4.0625vw;
		padding: 7.8125vw 13.28125vw;
		background: url(../img/icn_arrow02.png) no-repeat right 5.46875vw center #ff0000;
		background-size: 7.03125vw auto;
	}
	#final h3{ font-size: 3.75vw;}
}

@media screen and (max-width: 960px){
	.video{
		position: relative;
		width: 100%;
		padding-top: 56.25%;
		align-self: flex-start;
	}
	.video iframe{
		position:absolute;
		top: 0;
		right: 0;
		width: 100%;
		height: 100%;
	}
}

/*	footer
--------------------------------------*/
footer{
	height: 75px;
}
footer nav{
	height: 100%;
	display: flex;
	align-items: center;
}
footer nav ul{
	height: 100%;
	font-size: 13px;
	list-style: none;
	display: flex;
	flex: 1;
	align-items: center;
}
footer nav li{ margin-right: 25px;}
footer nav li a{
	color: #000;
}
footer p{
	font-size: 13px;
	display: inline-block;
}

@media screen and (max-width: 640px){
	footer{
		height: auto;
		margin-top: 6.25vw;
	}
	footer nav{
		height: 100%;
		display: block;
		align-items: center;
	}
	footer nav ul{
		height: 100%;
		margin-bottom: 6.25vw;
		font-size: 3.125vw;
		list-style: none;
		display: flex;
		flex: none;
		justify-content: center;
		align-items: center;
	}
	footer nav li{
		margin-left: 4.6875vw;
		margin-right: 0;
		text-align: center;
	}
	footer nav li:first-child{ margin-left: 0;}
	footer p{
		font-size: 3.4375vw;
		text-align: center;
		display: block;
	}
}

#schedule .timetable{ justify-content: center !important; }


/* ===== Placeセクション中央寄せ ===== */
#place .innerwrap {
  text-align: center; /* 全体を中央に */
}

/* 各ブロック（地図含む）を中央寄せ・幅制限 */
#place .block {
  margin: 0 auto;
  display: inline-block;
  text-align: left; /* テキストだけ左寄せに戻す（住所や文面が見やすい） */
}

/* 地図画像を中央寄せ */
#place .map-image {
  text-align: center;
}

#place .map-image img {
  display: inline-block;
  max-width: 100%;
  height: auto;
}