@charset "utf-8";

/* ==================================================================

	index.css
	
=================================================================== */

/* --------------------------------
   □ root
-------------------------------- */
:root {
	--main-color: #26348B;
	--btn-color-blue-hover: #08397c;
	--bg-color-blue: #EEF2F6;
}

img{
	max-width: 100%;
}

/* --------------------------------
   □ header
-------------------------------- */
header > p.tel {
    background: #fff;
}

/* --------------------------------
   □ .accent-box
-------------------------------- */
.accent-box{
	margin-top:89px;
}
.accent-box p{
	margin:0;
}
.accent-box p img{
	width:100%;
}

@media only screen and
(max-width : 640px) {
		
	/* --------------------------------
	□ .accent-box
	-------------------------------- */
	.accent-box{
		margin-top:59px;
		margin-bottom:0;
	}
}

/* --------------------------------
   □ .contents
-------------------------------- */
.contents > section{
	padding:80px 0;
}
.contents > section#schedule{
	padding-top: 40px;
}
.contents > section.bg_blue{
	background: var(--bg-color-blue);
}
.contents > section#access{
	background: url(../../images/access_bg.jpg) 50% 50% no-repeat;
	background-size: cover;
}
.contents ul.remarks{
	margin-top: 20px;
}
	.contents ul.remarks li{
		padding-left:1em;
		text-indent:-1em;
	}

@media only screen and
(max-width : 640px) {

	.contents > section{
		padding:56px 0;
	}
	.contents ul.remarks li{
		font-size: 80%;
	}
}

.contents h2.title{
	background:none;
	padding-bottom:0;
}

.contents h2.title span.en{
    color: #4DB6AC;
    text-transform: uppercase;
    letter-spacing: 0.04em;
	display:block;
	font-size:43%;
	margin-bottom:20px;
	padding-bottom:12px;
	background:url(../../images/title-background.png) 50% 100% no-repeat;
}

@media only screen and
(max-width : 640px) {

    .contents h2.title{
        margin-bottom: 30px;
    }
    .contents h2.title span.en{
        margin-bottom: 10px;
    }
}

/* --------------------------------
   □ #schedule
-------------------------------- */
#schedule dl.schedule:not(:last-of-type){
	margin-bottom:28px;
}
#schedule dl.schedule dt{
	color:var(--main-color);
	font-size:125%;
	margin-bottom:12px;
	font-weight: bold;
}
#schedule .text{
	font-size:125%;
	margin-bottom:30px;
	font-weight: bold;
    text-align: center;
}

@media only screen and
(max-width : 640px) {

    #schedule .text{
        font-size:100%;
    }
}

/* --------------------------------
   □ #campaign
-------------------------------- */
#campaign .area > section{
    border: solid 5px var(--main-color);
    border-radius: 12px;
	padding: 32px;
	box-sizing: border-box;
	background-color: #fff;

	& + section{
		margin-top: 40px;
	}
}
#campaign .area .image img{
	width: 100%;
}
#campaign .submitButton{
    text-align: center;
	margin: 24px 0 0;
}
#campaign .submitButton a{
    display: inline-block;
    position: relative;
    background: var(--main-color);
    color:#fff;
    font-size:150%;
    padding: 18px;
    width: 70%;
    max-width: 410px;
    border-radius: 34px;
	font-weight: bold;
}

#campaign .submitButton a span{
    position: relative;
}
#campaign .submitButton a span:after{
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    right: -40px;
    display: inline-block;
    width: 25px;
    height: 25px;
    background: url(../../images/circle-arrow-blue.png) no-repeat right center;
    background-size: contain;
}
#campaign .submitButton a:hover{
    background: var(--btn-color-blue-hover);
    text-decoration: none;
}

@media only screen and
(max-width : 640px) {

	#campaign .area > section{
		border: solid 4px var(--main-color);
		border-radius: 8px;
		padding: 20px 16px;
	}
	#campaign .submitButton a{
		font-size:100%;
		padding: 16px;
		width: 100%;
		box-sizing: border-box;
	}
}

/* --------------------------------
   □ #movie
-------------------------------- */
#movie .movie{
	width: 90%;
	margin: 0 auto;
}
#movie #youtube{
    width:100%;
	height: 100%;
	aspect-ratio: 16 / 9;
}
#movie .button {
    text-align: center;
}
#movie .button a{
    width:70%;
    margin:0 auto;
}

@media only screen and
(max-width : 640px) {

	#movie .movie{
		width: 100%;
	}
}

/* --------------------------------
   □ #spots
-------------------------------- */
#spots .text{
	font-size:115%;
	margin-bottom:40px;
	font-weight: bold;
    text-align: center;
    line-height: 2;
}
#spots .list{
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
    list-style: none;
    counter-reset: li;
}
#spots .list li {
    width: calc(( 100% - (32px * 2)) / 3);
    border: 1px solid #E3E3E8;
    border-radius: 8px;
    overflow: hidden;
	background-color: #fff;
    box-sizing: border-box;
    box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.08);
    position: relative;
}
#spots .list li::before {
    counter-increment: li;
    content: counter(li);
    position: absolute;
    left: 17px;
    top: 17px;
    display: block;
    width: 41px;
    height: 41px;
    border-radius: 50%;
    background-color: #4DB6AC;
    font-size: 12px;
    color: #fff;
    line-height: 41px;
    text-align: center;
	font-size:144%;
	font-weight: bold;
}
#spots figure{
	padding: 0;
    margin: 0;
}
#spots figure img{
    width: 100%;
    height: auto;
    border-radius: 7px 7px 0 0;
}
#spots figcaption{
	padding: 28px 24px 24px;
	box-sizing: border-box;
}
#spots dl dt{
	color:var(--main-color);
	font-size:144%;
	margin-bottom:12px;
	font-weight: bold;
}
#spots dl dd{
	font-size:107%;
    line-height: 1.7;
}
#spots .text-s{
	font-size:107%;
    text-align: right;
    margin-top: 20px;
}

@media only screen and
(max-width : 640px) {

    #spots .list li {
        width: 100%;
    }
    #spots figcaption{
        padding: 20px;
    }
    #spots .text {
        font-size: 100%;
        margin-bottom: 30px;
        text-align: left;
        line-height: 1.5;
    }
    #spots dl dt{
        font-size: 125%;
    }
    #spots dl dd{
        font-size: 100%;
        line-height: 1.5;
    }
    #spots .text-s{
        font-size: 80%;
    }
}

/* --------------------------------
   □ #reserve
-------------------------------- */
#reserve section h3{
    box-sizing:border-box;
    background:url(../../images/reserve_icon.png) 0 50% no-repeat;
    padding:13px 0 13px 69px;
    margin-bottom:30px;
    font-size:192%;
    min-height:54px;
}
#reserve section .explain{
    float:left;
    width:540px;
}
#reserve section .image{
    float:right;
    margin:0;
	width: 397px;
}

/* 
   □ #reserve1
-------------------------------- */
#reserve #reserve1 h3{
    background-image:url(../../images/reserve_icon.png);
}
#reserve #reserve1 p.text{
    font-size:114%;
}
#reserve #reserve1 p.remarks{
    margin-bottom:30px;
}
#reserve #reserve1 p.link{
    text-align:center;
	margin-top: 20px;
}
#reserve #reserve1 p.link a{
    display:block;
    background:var(--main-color);
    border-radius:34px;
    padding:20px;
    color:#fff;
    font-size:128%;
    text-decoration: none;
	font-weight: bold;
}
#reserve #reserve1 p.link a span{
    background:url(../../images/reserve1-btnicon.png) 0 50% no-repeat;
    padding-left:52px;
}
#reserve #reserve1 p.link a:hover{
    background:var(--btn-color-blue-hover);
}

@media only screen and
(max-width : 640px) {

	#reserve section h3{
		font-size:124%;
		background-size:auto 80%;
		margin-bottom:4%;
	}
	#reserve section .explain{
		float:none;
		width:auto;
	}
	#reserve section .image{
		float:none;
		width:auto;
		margin:0 0 8% 0;
	}
	
	/* 
	   □ #reserve1
	-------------------------------- */
	#reserve #reserve1 p.image{
		position:static;
		text-align:center;
		margin-bottom:6%;
	}
	#reserve #reserve1 p.image img{
		width:80%;
	}
	#reserve #reserve1 p.text{
		font-size:100%;
		margin-bottom: 0;
	}
	#reserve #reserve1 p.link {
		margin-bottom: 0;
	}
	#reserve #reserve1 p.link a{
		padding:16px;
		font-size:100%;
	}
	
}

/* --------------------------------
   □ #access
   □ #tour
-------------------------------- */
#access .drawing,
#tour .drawing{
	padding: 40px;
	background-color: #fff;
	box-sizing: border-box;
}
#tour .drawing{
	padding: 40px 93px;
}
#tour .text{
    text-align: center;
	font-size: 120%;
	margin-bottom: 28px;
}
#access .drawing p,
	#tour .drawing p{
    text-align: center;
    margin-bottom: 0;
}
#access .drawing p.text{
    margin: 20px 0;
	font-size: 120%;
	font-weight: bold;
}
#access ul.remarks li{
	font-weight: bold;
}
#access .button{
    text-align: center;
}
#access .button a{
    display: inline-block;
    position: relative;
    background: var(--main-color);
    color:#fff;
    font-size:150%;
    padding: 18px;
    width: 70%;
    max-width: 410px;
    border-radius: 34px;
	font-weight: bold;
}

#access .button a span{
    position: relative;
}
#access .button a span:after{
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    right: -40px;
    display: inline-block;
    width: 25px;
    height: 25px;
    background: url(../../images/circle-arrow-blue.png) no-repeat right center;
    background-size: contain;
}
#access .button a:hover{
    background: var(--btn-color-blue-hover);
    text-decoration: none;
}

@media only screen and
(max-width : 640px) {

	#access .drawing,
	#tour .drawing{
		padding: 20px;
	}
	#tour .text{
		text-align: left;
		font-size: 100%;
		margin-bottom: 20px;
	}
	#access .drawing p.text{
		margin: 20px 0;
		font-size: 100%;
		text-align: left;
	}
	#access .drawing p.text br{
		display: none;
	}
	#access .button a{
		font-size:100%;
		padding: 16px;
		width: 100%;
		box-sizing: border-box;
	}
}
