@charset "utf-8";
/*
	Last Update:2020/01/23
	Auther: iw
*/
/*===================================================================
	layout
===================================================================*/
html { background:#fff; }
body { text-align:center; }
body, #base { position:relative; overflow-x:hidden; }
#body,
.wrapper, .wrapper-t, .wrapper-b { position:relative; }
	@media (max-width: 991px){
		.wrapper, .wrapper-t { padding-top:60px; }
		.wrapper, .wrapper-b { padding-bottom:60px; }
	}
	@media (min-width: 992px){
		.wrapper, .wrapper-t { padding-top:100px; }
		.wrapper, .wrapper-b { padding-bottom:100px; }
	}

.center,
.center2 { margin:0 auto; text-align:left; }
.center { max-width:1100px; }
.center2 { max-width:800px; }
	@media (max-width:1130px){
		.center { padding-left:15px; padding-right:15px; }
	}
	@media (max-width: 830px){
		.center2 { padding-left:15px; padding-right:15px; }
	}
.center._col7 { max-width:calc(1100px / 12 * 7 + 50px); margin:0 0 0 auto; }
.center._col5 { max-width:calc(1100px / 12 * 5 + 25px); margin:0 auto 0 0; }
	@media (min-width: 576px){
		.center._col7 { padding-right:50px; }
		.center._col5 { padding-left:25px; }
	}

/* icon */
.icon {
	display: inline-block;
	line-height: 100%;
	background-repeat: no-repeat;
	background-size: contain;
	background-position: left center;
}

/*===================================================================
	#head
===================================================================*/
#head { position:relative; top:0; left:0; width:100%; z-index:1100; }
#head a { text-decoration:none; }
#head .site_logo { position:absolute; z-index:2; }
	@media (max-width: 991px){
		#head .site_logo { top:0; left:0; width:20vw; min-width:100px; }
	}
	@media (min-width: 992px){
		#head .site_logo { top:-8px; left:calc(50% - 115px); width:230px; }
	}

#head_1 { background:#49256b url(../image/head/head_1.png) repeat-x center center; color:#fff; padding:15px 0; }
#head_1 a { color:#fff; }
#head_1 .center { position:relative; }
#head_1 .right { font-size:13px; }
	@media (max-width: 991px){
		#head_1 .right { text-align:right; }
		#head_1 .btn_wrap { position:fixed; bottom:0; left:0; width:100%; }
		#head_1 .btn_wrap .active { display:block; background:#0fb541; color:#fff; text-align:center; padding:10px; }
	}
	@media (min-width: 992px){
		#head_1 .desc { font-size:0.9em; }
		#head_1 .right { position:absolute; top:-3px; right:15px; }
		#head_1 .btn_wrap { display:table; border:1px solid #fff; border-radius:3px; overflow:hidden; margin-left:15px; }
		#head_1 .btn_wrap > a { display:table-cell; vertical-align:middle; padding:2px 10px; font-size:12px; }
		#head_1 .btn_wrap > a.active { background:#fff; color:#49256b; }
	}

#head_navi {}
#head_navi:before { content:""; position:absolute; bottom:0; left:0; width:100%; height:20px; box-shadow:0 -10px 8px rgba(0,0,0,0.1) inset; }
#head_navi li a { display:block; }
	@media (max-width: 991px){
		#head_navi { position:absolute; top:52px; left:0; width:100%; background:rgba(73, 37, 107,0.9) url(../image/head/sub.png) no-repeat left top / auto 700px; }
		#head_navi ul { padding:30px 0; margin:0 0 0 auto; width:75vw; }
		#head_navi li { border-bottom:1px solid #8673a0; }
		#head_navi li.blank { display:none; }
		#head_navi li a { color:#fff; padding:10px; }
	}
	@media (min-width: 992px){
		#head_navi { position:relative; padding:25px 0; background:#fff; }
		#head_navi ul { display:table; width:100%; table-layout:fixed; line-height:100%; border-right:1px solid #ddd; }
		#head_navi li { display:table-cell; text-align:center; border-left:1px solid #ddd; }
		#head_navi li.blank { width:250px; }
		#head_navi .main a { color:#444; }
		body.pc #head_navi { padding:25px 0 19px; }
		body.pc #head_navi .main a > span { display:inline-block; position:relative; }
		body.pc #head_navi .main a > span:after { content:""; display:block; width:0; height:3px; margin:3px auto 0; background:#49256b; transition:all .5s; }
		body.pc #head_navi .main a:hover { color:#49256b; }
		body.pc #head_navi .main a:hover > span:after { width:100%; }

		#plan #head_navi ._plan a,
		#facility #head_navi ._facility a,
		#flow #head_navi ._flow a,
		#access #head_navi ._access a,
		#faq #head_navi ._faq a,
		#blog #head_navi ._blog a { color:#49256b; }
		#plan #head_navi ._plan a > span:after,
		#facility #head_navi ._facility a > span:after,
		#flow #head_navi ._flow a > span:after,
		#access #head_navi ._access a > span:after,
		#faq #head_navi ._faq a > span:after,
		#blog #head_navi ._blog a > span:after { width:100%; }
	}

#head_navi .sub_navi { display:none; }
#head_navi .head_photo_unit a { display:block; }
	@media (max-width: 991px){
		#head_navi .sub_navi { background:rgba(255,255,255,0.2); }
		#head_navi .sub_navi h3,
		#head_navi .head_photo_unit .photo { display:none; }
		#head_navi .sub_navi a { border-top:1px solid #8673a0; }
	}
	@media (min-width: 992px){
		#head_navi .sub_navi .pc-mb20 {margin-bottom: 20px;}
		#head_navi .sub_navi { position:absolute; top:100%; left:0; width:100%; background:rgba(73, 37, 107,0.9) url(../image/head/sub.png) no-repeat center center / contain; }
		#head_navi .sub_navi .center { padding:80px 60px; }
		#head_navi .sub_navi a { color:#fff; }
		#head_navi .sub_navi h3 { color:#fff; font-size:2em; line-height:100%; background:url(../image/head/mark1.png) no-repeat left 5px; padding:0 0 20px 30px; margin:0 0 20px; border-bottom:1px dotted #fff; }
		#head_navi .sub_navi h3 .sub { display:inline-block; vertical-align:middle; margin-left:15px; font-size:14px; }
		#head_navi .head_photo_unit {}
		#head_navi .head_photo_unit .photo { margin-bottom:15px; }
	}

#head.fixed { position:fixed; }
	@media (max-width: 991px){
		#base:not(.open) #head_navi { display:none; }
	}
	@media (min-width: 992px){
		#base:not(.open) #head.fixed .site_logo,
		#base:not(.open) #head.fixed #head_navi { display:none; }
		#head.fixed #head_1 .right .active { background:#0fb541; color:#fff; }
	}

#btn_open { vertical-align:middle; font-size:1.5em; line-height:100%; }
	@media (max-width: 991px){
		#btn_open { display:inline-block; margin-left:5px; }
	}
	@media (min-width: 992px){
		#btn_open { display:none; margin-left:20px; }
		#head.fixed #btn_open { display:inline-block; }
	}

#head_1 .joint_venture{position: relative; z-index: 10;}
#head_1 .joint_venture p{     font-size: 0.7em; }
#head_1 .joint_venture p a{text-decoration: underline; }
#head_1 .desc .br_name{display: none;}
@media (max-width: 575px){
	#head_navi{top: 75px;}
	#head_1 .joint_venture{    padding-top: 5px;}
	#head_1 .desc{position: absolute;  display: block; left: 115px; font-weight: bold;}
	#head_1 .desc .first{display: none;}
	#head_1 .joint_venture p{margin-left: 100px;}
}

@media (min-width:992px){
	#head_1 .center{display: table;  width: 100%;}
	#head_1 .desc {display: table-cell; vertical-align: middle;}
	#head_1 .right{position: relative; text-align: right;  right: 0;}
}
@media (min-width: 576px) and (max-width:991px){
	#head_navi{top: 70px;}
	#head_1 .joint_venture p{ width: 100%; text-align: right;}
	#head_1 .desc{ position: absolute; left: 22%;      width: 63%;  }
}
@media (min-width: 576px) and (max-width:767px){
	#head_navi{top: 90px;}
	#head_1 .desc{width:58%; }
	#head_1 .joint_venture p{ padding-top: 25px}
}
@media (min-width: 992px) and (max-width:1199px){
	#head_1 .desc .br_name{display: block;}
}
@media (min-width: 992px) {
	#head_1 .joint_venture p{text-align: right;}
}


/*===================================================================
	#foot
===================================================================*/
#foot_contact .home_back a{ color: #fff;
	text-align: center;
    border: 1px solid #fff;
    text-decoration: none;
    margin: 0 auto;
    max-width: 200px;
    display: block;
    padding: 10px 0;}

#foot_contact { color:#fff; background-repeat:no-repeat; background-position:center center; background-size:cover; }
#foot_contact .tel_wrap { text-align:center; font-size:0.95em; }
#foot_contact .tel_wrap .tag { display:inline-block; border:1px solid #fff; padding:1px 5px 0; margin-right:10px; }
#foot_contact .tel_wrap .tel { font-size:3em; line-height:120%; }
#foot_contact .tel_wrap .tel a { color:#fff; }
	@media (min-width: 576px){
		#foot_contact .tel_wrap { border-right:1px solid rgba(255,255,255,0.5); }
		#foot_contact .ban { padding-left:40px; }
	}

#foot { position:relative; padding-top:30px; font-size:0.9em; }
#foot a { color:#444; }
#foot .disp_td { vertical-align:bottom; }
#foot .foot_logo { display:block; }
#copyright { font-size:12px; text-align:center; color:#fff; padding:5px 0; margin-top:30px; background:#49256b; }
	@media (max-width: 991px){
		#foot{    padding-bottom: 42px;}
	}
	@media (max-width: 575px){
		#foot .foot_logo { text-align:center; margin-bottom:15px; }
		#foot .foot_logo img { width:200px; }
		#foot address { margin-bottom:10px; }
	}

#pagetop { position:fixed; bottom:10px; right:10px; z-index:9000; line-height:100%; }
#pagetop a { color:#fff; text-decoration:none; display:block; background:rgba(0,0,0,0.6); }
#pagetop a span { display:none; }
	@media (max-width: 575px){
		#pagetop a { width:45px; height:45px; line-height:50px; font-size:23px; }
	}
	@media (min-width: 576px){
		#pagetop a { width:56px; height:56px; line-height:60px; font-size:30px; }
	}



/* base_transition */
#base_transition{position: fixed;
    top: 20vh;
    right: 0;
    z-index: 999;}
#base_transition ul li .icon_right1 {width: 100%;}
	#base_transition{}
	#base_transition  details[open] .icon.close{
		content: "";
		background-repeat: no-repeat;
		background-image: url(../image/contents/plan/close.png);
		background-size: 11px;
		background-position: center right 5px;
	    padding: 5px 20px 5px 10px;
	}
	#base_transition summary{text-align: right;}
	#base_transition details:not([open]) summary{ border: 1px solid #47266A;}
	#base_transition details[open] span.close{ border: 1px solid #47266A;}
	#base_transition details:not([open]) summary::before{
		content: "";
	    background-image: url(../image/contents/plan/menu.png);
	    background-size: contain;
	    background-repeat: no-repeat;
	    width: 15px;
	    height: 15px;
	    display: block;
	    position: absolute;
	    top: 10px;
	    left: 50%;
	    transform: translateX(-50%);
	    -webkit-transform: translateX(-50%);
	    -ms-transform: translateX(-50%);
	}
	#base_transition details:not([open]) summary{ -ms-writing-mode: tb-rl; writing-mode: vertical-rl;
		position: relative;
	    background: #fff;
		width: 41px;
		display: flex; align-items: center;}
	#base_transition summary span{background: #fff; font-weight: bold; display: inline-block;
    font-size: 1.25em; padding: 35px 0px 10px 0px;
    color: #47266A;}
	#base_transition details[open] summary span{     padding: 10px;}
	#base_transition summary {
		display: block;
	}
	#base_transition summary::-webkit-details-marker {
		display: none;
	}
	#base_transition ul {background: rgba(71,38,106,0.9);   padding: 10px 12px;}
	#base_transition ul li a{ color:#fff; display: block;  padding: 5px 0; letter-spacing: 1px; font-size: 1.1em; }
	#base_transition ul li:not(:last-child) a{ border-bottom: 1px dotted #fff;}

#browser_back{
	position: fixed;
    text-align: center;
    bottom: 50px;
    left: 15px;
    z-index: 9000;
    width: 90px;
}
@media (max-width: 767px){
	#browser_back{
	    top: unset;
	    bottom: 5px;
	    left: 6px;
		width: 60px;
	}
}


/*===================================================================
	#common
===================================================================*/
/* title */
#page_title { position:relative; }
#page_title picture {display: block;}
#page_title picture, #page_title img {width: 100%; height: 100%; object-fit: cover;}
#page_title .img_back,#page_title picture { height:30vw; max-height:250px; overflow:hidden; }
#page_title .page_title_wrap { position:absolute; top:0; left:0; width:100%; height:100%; }
#page_title .center { display:table; width:100%; height:100%; }
#page_title h2 { display:table-cell; text-align:center; vertical-align:middle; color:#fff; font-weight:bold; text-shadow:0 0 5px #333; }
	@media (max-width: 575px){
		#page_title h2 { font-size:2em; }
		#page_title .img_back { min-height: 180px;}
	}
	@media (min-width: 576px) and (max-width: 767px){
		#page_title h2 { font-size:2.5em; }
	}
	@media (min-width: 768px) and (max-width: 991px){
		#page_title h2 { font-size:2.75em; }
	}
	@media (min-width: 992px){
		#page_title h2 { font-size:3em; padding:40px 0 0; }
	}

/* pankuzu */
#pankuzu { text-align:left; font-size:13px; color:#444; padding:10px 0; }
#pankuzu a { color:#444; }
#pankuzu li { display:inline-block; }
#pankuzu li:before { content:"/"; padding:0 10px; }
#pankuzu ul > li:first-child:before { content:""; padding:0; }
	@media (max-width: 767px){
		#pankuzu { display:none; }
	}
