@charset "utf-8";
/* CSS Document */
/*--------------------
base
---------------------*/
@font-face {
    font-family: '游ゴシック';
    font-style: normal;
    font-weight: 400;
 }
html{
    font-size: 62.5%;
}
body{   
    color:#333333;
    font-family: "游ゴシック Medium",'Noto Sans JP', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
    font-feature-settings: "palt";
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    font-size: 1.6rem;
    line-height: 1;
}
a{
    color: #333;
    text-decoration: none;
    transition: all .2s;    
    -webkit-transition: all .2s;
    -moz-transition: all .2s;
    -ms-transition: all .2s;
    -o-transition: all .2s;
}
a:hover{
    opacity:0.5;
}
img{
    width:100%;
    height:auto;
}
input,textarea{
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
    outline:none;
    color:#333333;
    font-size: 1.6rem;
}
p{
	text-indent: 1em;
}
/*--------------------
parts
---------------------*/
.text_center{
	text-align:center;
}
.text_left{
	text-align: left;
}
.text_right{
	text-align: right;
}
.img_pc{
	display: none;
}
.inner{
	padding: 0 4%;
	margin: 0 auto;
	box-sizing: border-box;
}
.inner2{
	padding: 0 4%;
	margin: 0 auto;
	box-sizing: border-box;	
}
.br_pc{
	display: none;
}
.page-breaker {
	page-break-before: always;

}
/*--------------------
header,nav
---------------------*/
/* header*/ 
.header{
	display: none;
}

/*--------------------
hero-image
---------------------*/
.slider{
	width: 100%;
	height: 80vw;
}
.slider img{
	width: 50%;
	height: 80vw;
	object-fit:cover;
	overflow: hidden;
	position: relative;
	font-family: 'object-fit: cover;'; 
}
	.slider::after{
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: #000000;
    opacity: 0.2;
    display:block;
		mix-blend-mode: luminosity;
}
.hero_ad{
	position: absolute;
	bottom: 4%;
	right: 9%;
	color: #fff;
	z-index: 180;
	text-shadow:0 0 30px #000,0 0 5px #000;
	font-size: 1.4rem;
}
.hero_img{
/*	height: 100vh;
	width: auto;
	min-width: 460px;*/
	position: relative;
	margin: 70px auto 80px auto;
	box-sizing: border-box;
}
.hero_info{
	position: absolute;
	top: 15%;
	left: 9%;
	right: 9%;
	z-index: 90;
	color: #fff;
}
.hero_title{
	width: 160px;
	padding-bottom: 50px;
	margin: 0 auto;
}
.hero_text{
	text-shadow:0 0 30px #000,0 0 5px #000;
	margin-bottom: 20px;
	line-height: 1.7;
	font-family: "游明朝 Demibold","小塚明朝 Pro M", "ＭＳ Ｐ明朝", "MS PMincho", "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "serif";
}
/*--------------------
main_nav
---------------------*/
.main_nav_item{
	display: flex;
	margin-bottom: 40px;
}
.main_nav_item.reverse{
	flex-direction: row-reverse;
	align-items: center;
	text-align: left;
}
.main_nav_img{
	width: 50%;
	overflow: hidden;
}
.main_nav_title{
	width: 50%;
	height: calc(50vw - 20px);
	display: flex;
	flex-direction: column;
	text-align: center;
}
.main_nav_title.reverse{
	text-align: left;
}
.main_nav_icon img{
	height: calc(50vw - 80px); 
	width: auto;
	padding-bottom: 10px;
}
.btn_more{
	font-size: 1.4rem;
	border: solid #333 1px;
	text-align: center;
	padding: 10px 8px;
	margin: 0 8px;
}
/*--------------------
footer
---------------------*/
.footer{
	background-color:  #F3F3F3;
	padding-bottom: 50px;
	box-sizing: border-box;
}
.footer_nav{
	padding: 50px 0;
}
.footer .nav_list{
	margin-bottom: 40px;
}
.footer .nav_item{
	font-size: 1.4rem;
	margin-bottom: 16px;
}
.footer .nav_item:last-of-type{
	margin-bottom: 0;
}
.bar{
	margin: 20px auto;
	width: 30px;
}
.copy{
	font-size: 1.4rem;
	line-height: 1.4;
	margin: 0 auto;
}
/*--------------------
btn-top
---------------------*/
.btn_top{
	display: none;
	position: fixed;
	right: 30px;
	bottom: 10px;
	width: 60px;
	height: 60px;
	transition: all .2s ease;
}
.btn_top a{
	opacity: 1;
}
.btn_top:hover{
	transform: translateY(-10px);
}
/*---------------------------------------------------------
SP/lower pageここから      ::::::::::::::christ:::::::::::::
------------------------------------------------------*/
/*--------------------
hero-image
---------------------*/
.lower .slider{
	height: 60vw;
}
.lower .slider img{
	height: 60vw;
}
.lower .hero_info{
	position: absolute;
	top: 70px;
	right: 0;
}
.lower .hero_title{
	width: 100%;
	margin: 0;
	padding: 0;
}
/*--------------------
navigation
---------------------*/
.nav_small_list{
	margin-bottom: 40px;
}
.nav_small_item{
	margin-bottom: 20px;
	padding-left: 3em;
	font-size: 1.2rem;
}
/*--------------------
section
---------------------*/
.contents{
	line-height: 1.6;
}
.sub_title{
	margin-bottom: 40px;
}
h4{
	padding-top: 50px;
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.4;
}
h4 span {
	display: block;
	font-size: 1.2rem;
}
h4 span img{
	display: block;
	height: 12px;
	width: auto;;
	margin: 0 auto;
}
hr{
	border:solid 2px #EC85B4; 
	width: 115px;
}
h5{
	font-size: 1.7rem;
	font-weight: 700;
	margin-bottom: 20px;
	line-height: 2.0;
	text-align: center;
}
h5.mb0{
	line-height: 1;
	margin-bottom: 0;
}
h6{
	padding: 8px 4%;
	line-height: 1.6;
	font-weight: bold;
	text-align: center;
}
.info_cont{
	padding-bottom: 30px;
	border-bottom: solid 1px #f3f3f3;
	margin-bottom: 30px;
}
.chapter{
	font-size: 1.6rem;
	line-height: 1.6;
}
.icons{
	width: 28px;
	padding: 6px 6px 0;
}
.question dt{
	padding-left: 3.8rem;
	text-indent: -3.8rem;
}
.question dd{
	padding-left: 3.8rem;
	text-indent: -3.8rem;
}
.chronology{
	margin-bottom: 40px;
}
.chronology .img_pc{
	display: none;
}
.info_item{
	display: flex;
	flex-direction: column;
	padding-bottom: 30px;
	border-bottom: solid 1px #f3f3f3;
	margin-bottom: 30px;
}
.info_item:last-of-type{
	margin-bottom: 0;
}
/*.info_item.reverse{	
	flex-direction: column-reverse;
}*/
.info_item .info_cont{;
	margin-bottom: 0;
	padding-bottom: 0;
}
.info_item.vertical{
	flex-direction: row;
}
.info_item.vertical.reverse{
	flex-direction: row-reverse;
}
.boys .info_item{
	border-bottom: none;
}
.boys .info_img{
	width: 50%;
	padding-right: 4%;
}
.info_item.vertical.reverse .info_img{
	padding-right: 0;
	padding-left: 4%;
}
.boys .info_text{
	width: 50%;
}
.spot_item{
	display: flex;
	flex-direction: column;
	margin-bottom: 30px;
}
.spot_title{
	color: #EC85B4;
	font-weight: bold;
	text-align: center;
}
.spot_item.bg_white{
	padding: 0;
	margin-bottom: 4%;
}
.spot_item.bg_white:last-of-type{
	margin-bottom: 0;
}
.red{
	color: red;
}
.bg_grey{
	background: #f3f3f3;
}
.bg_grey_gra{
	background: linear-gradient(to bottom, #f3f3f3 99%, #FFF);
}
.bg_grey .info_item{
	border-bottom: none;
	margin-bottom: 0;
}
.bg_white{
	background-color: #fff;
	margin-bottom: 20px;
	padding-top: 20px;
}
.bg_white:last-of-type{
	margin-bottom: 50px;
}
.bg_white p{
	padding:  4% 4% 20px;
}
.bg_white p:last-of-type{
	position: relative;
}
.spot .bg_white p{
	padding: 0 4%;
}
.illust3{
	width: 50px;
	position: absolute;
	bottom: -30px;
	right: 20px;
}
.nanban{
	background-image: url(../images/swirl_sp.png);
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	padding: 30px 0;
}
.picture{
	margin-bottom: 16px;
}
.loop{
	position: relative;
	z-index: 1;
	bottom: -15px;
	width: 70px;
	animation: wave 20s linear infinite;
	transform: translateX(100vw);
	overflow: hidden;
}
@keyframes wave {
	100% {
			transform: translateX(0);
	}
}
.ship{
	animation: ship 3s ease-in infinite;
	overflow: hidden;
}
@keyframes ship{
	50%  { transform: rotate(10deg) translateY(-5px);}
}
.wave{
	position: relative;
	z-index: 5;
	overflow: hidden;
}
.bg_font img{
	overflow: hidden;
	width: 100%;
	object-fit: cover;
	height: 13vw;
	display: inline-block;
}
.tensyo{
	background-image: url(../images/boys-bg.png);
	background-size: 60%;
	background-repeat: no-repeat;
	background-position: center;
}
.text_small{
	font-size: 1.4rem;
}
.bg_pink{
	background-image: url(../images/bg_pink_sp.png);
	background-size: 80%;
	background-repeat: no-repeat;
	background-position: bottom;
	padding: 60px 4% 80px;
	box-sizing: border-box;
	overflow: hidden;
}
/*-------------------------------------------------------------------------------------------------------------------
SP::::::::::::::castle:::::::::::::::::::::::::::::::::::::::
--------------------------------------------------------------------------------------------------------------------*/
.bb_none{
	border-bottom: none;
}
.question.shogun{
	background-image: url(../images/castle_bg01.png);
	background-repeat: no-repeat;
	background-position: center;	
}
.h_pc{
	display: none;
}
.address{
	display: flex;
}
.address dt{
	width: 4.5em;
}
.address dd{
	width: calc(100% - 4.5em);
}
.fa-train{
	padding: 0 3px;
}
.fa-bus{
	padding: 0 3px;
}
.f_pink{
	color: #EC85B4; 
}
.f_pink dt{
	display: inline-block;
	width: 5em;
	margin-left: 2em;
}
.f_pink dd{
	display: inline-block;
}
.castle{
	background-image: url(../images/castle_illust.png);
	background-repeat: no-repeat;
	/*animation: castle 5s ease 1s 5 reverse;
	opacity: 0*/
}



.bg_fence{
	background-image: url(../images/castle_bg_fence.png);
	background-repeat: no-repeat;
	padding: 120px 0 50px;
}
.half_text.bg_white{
	margin-bottom: 0;
}
.half_image.bg_white{
	margin: 0;
}
.bg_white dl{
	padding: 0 4%;
}
.bg_white dl:last-of-type{
	padding-bottom: 4%;
}
/*-------------------------------------------------------------------------------------------------------------------
SP::::::::::::::street:::::::::::::::::::::::::::::::::::::::
--------------------------------------------------------------------------------------------------------------------*/
.question.hotel{
	background-image: url(../images/street_bg.png);
	background-repeat: no-repeat;
	background-position: center;	
	background-size: contain;
}
.loop2{
	animation: walking 30s linear infinite;
	transform: translateX(100vw);
	overflow: hidden;
}
@keyframes walking {
	100% {
			transform: translateX(-100vw);
	}
}
/*-------------------------------------------------------------------------------------------------------------------
SP::::::::::::::great_people:::::::::::::::::::::::::::::::::::::::
--------------------------------------------------------------------------------------------------------------------*/
.people05{
	background-image: url(../images/great_05.png);
	background-position: right bottom;
	background-repeat: no-repeat;
	background-size: 40%;
}
.people08{
	background-image: url(../images/great_08.png);
	background-position: right bottom;
	background-repeat: no-repeat;
	background-size: 50%;
}
.people09{
	background-image: url(../images/great_09.png);
	background-position: right bottom;
	background-repeat: no-repeat;
	background-size: 60%;
}
/*-------------------------------------------------------------------------------------------------------------------
タブレット版ここから
--------------------------------------------------------------------------------------------------------------------*/

/*--------------------
hero-image
---------------------*/
	/*.slider{
		height: 80vw;
}
	.slider img{
		height: 80vw;
}*/
/*--------------------
main_nav
---------------------*/
	.main_nav_title{
		height: 335px;
	}
	.main_nav_icon img{
		height: calc(50vw - 250px); 
		padding: 20px 0;
		min-height: 220px;	
	}
	.main_nav_item{
		margin: 0 auto 60px auto;
		max-width: 680px;
	}
/*--------------------
footer
---------------------*/
	.footer_nav{
		padding: 100px 0 80px;
	}
	.footer .nav_list{
		display: flex;
		justify-content: center;
	}
	.footer .nav_item{
		font-size: 1.5rem;
		margin-right: 20px;
		margin-bottom: 0;
	}
	.footer .nav_item:last-of-type{
		margin-right: 0;
	}	
/*---------------------------------------------------------
タブレット/lower pageここから      ::::::::::::::christ:::::::::::::
------------------------------------------------------*/
	/*--------------------
hero-image
---------------------*/
.lower .slider{
	height: 30vw;
}
.lower .slider img{
	height: 30vw;
}
	h3 .img_pc{
		display: block;
	}
	h3 .img_sp{
		display: none;
	}
	h4{
		font-size: 2.8rem;
	}
	hr{
		width: 240px;
	}
	.lower .hero_title {
		width: 50%;
		position: absolute;
		top: 0;
		right: 0;
	}
/*--------------------
section
---------------------*/
	.float{
		display: flex;
		box-sizing: border-box;
	}
	.float_img{
		width: 32%;
		box-sizing: border-box;
	}
	.float_text{
		width: 60%;
		box-sizing: border-box;
	}
	.info_cont{
		border-bottom: none;
		margin-bottom: 50px;
		padding-bottom: 50px;
	}
	.chronology .chronology_img{
		padding: 0 4% 120px;
		background-image: url(./../images/chronology_bg_pc.jpg);
		background-size: 100%;
		background-repeat: no-repeat;
		background-position: bottom ;
	}
	.chronology .img_pc{
		/*padding: 0 4% 120px;*/
		margin: 0 auto;
		display: block;
	}
	.chronology .img_sp{
		display: none;
	}
	.question{
		width: 60%;
		padding: 50px 0;
		margin: 0 auto;
	}
	.info_item{
		flex-direction: row;
		padding-bottom: 50px;
		margin-bottom: 50px;
		border-bottom: none;
	}
	.info_item.reverse{
		flex-direction: row-reverse;
	}
	.half_image{
		width: 50%;
		margin: auto 0;
	}
	.half_text{
		width: 50%;
		margin: auto 0;
		padding: 0 4%;
	}
	d1{
		width: 70%;
		margin: 0 auto;
	}
	.bg_font img{
		object-fit: cover;
		height: 6vw;
		overflow: hidden;
		width: auto;
	}
	.loop{
		width: 140px;
		bottom: -29px;
	}
	.box3{
		display: flex;
		margin-right: -3%;
	}
	.bg_white:last-of-type{
		margin-bottom: 20px;
	}
	.box3 .bg_white{
		width: 33.333%;
		margin-right: 3%;
		display: flex;
		flex-direction: column;
	}
	.treasure{
		margin-top: auto;
		font-family: 'object-fit: contain;'; 
	}
	.illust3{
		bottom: -160px;
	}
	.nanban{
		padding: 100px 0;
	}
	.boys.row2{
		display: flex;
		flex-wrap: wrap;
		margin-right: -4%;
		box-sizing: border-box;
	}
	.boys.row2 .info_item{
		width: 50%;
		flex-direction: row;
		padding-right: 4%;
		box-sizing: border-box;
	}
	.boys .info_text{
		padding-left: 4%;
	}
	.boys .info_img{
		padding-right: 0;
	}
	.info_item.vertical.reverse .info_img{
		padding-left: 0;
	}
	.bg_pink{
		padding: 30px 16% 60px;
		background-image: url(../images/bg_pink_pc.jpg);
		background-position: center;
		background-size: 95%;
	}
	.spot2{
		display: flex;
		margin-right: -4%;
		flex-flow: wrap;
		box-sizing: border-box;
	}
	.spot2 .spot_item{
		width: 46%;
		margin-right: 4%;
		box-sizing: border-box;
	}
	.spot2 .bg_white{
		padding: 0;
		margin-right: -4%;
	}
	.spot2 .bg_white.spot_item{
		width: 46%;
		margin-right: 4%;
	}
	.spot2 img{
		height: 30vw;
		object-fit:cover;
		font-family: 'object-fit: cover;'; 
	}

/*---------------------------------------------------------
タブレット/::::::::::::::castle:::::::::::::
------------------------------------------------------*/
	.family_tree{
		width: 80%;
		margin: 0 auto;
	}
	.spot_item.bg_white.mb0{
		margin-bottom: 0;
	}
	.castle{
		background-size: cover;
	}
	.bg_fence{
		padding: 130px 0 50px
	}
	.half_text.bg_white{
		margin: 0;
		padding: auto;
	}
	.half_text.bg_white .f_pink{
		padding-top: 4%;
	}
	.half_image.bg_white{
		margin: 0;
		padding: auto;
	}

