/*==============================================

	菊水楼
	結婚式プレゼントキャンペーン

==============================================*/

/*================================
	COmmon Styles
================================*/
:root {
	--col-text : #333;
	--col-main: #479871;
	--col-hlt: #A5473A;
	--col-bg-base: #F0F0F0;
	--col-bd: #D3D3D3;
	--fnt-min: "Shippori Mincho", "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "HG明朝E","ＭＳ Ｐ明朝", "MS PMincho", serif;
}
img{
	width: auto;
	max-width: 100%;
}
body{
	background: #6CA591;
}
main,
#pagefooter{
	max-width: 500px;
	margin: 0 auto;
	background: #fff;
}
main{
	padding-bottom: 85px;
}
main *{
	letter-spacing: .05em;
}
main p, main li, main dt, main dd{
	font-size: 14px;
}
main .present h3,
 main #entry h2{
	background: var(--col-main);
	text-align: center;
	font-size: 20px;
	line-height: 70px;
	color: #fff;
	position: relative;
}
main .present h3::after,
main #entry h2::after{
	content:"";
	display: block;
	margin: 0 auto;
	border: 10px solid transparent;
	border-top: 10px solid var(--col-main);
	position:absolute;
	left:50%;bottom:-20px;
	-webkit-transform:translateX(-50%);
	-moz-transform:translateX(-50%);
	transform:translateX(-50%);
	z-index: 2;
}




/*================================
	Intro
================================*/
main .intro {
	position: relative;
}
main .intro .logo{
	position:absolute;
	left:50%;top:45px;
	-webkit-transform:translateX(-50%);
	-moz-transform:translateX(-50%);
	transform:translateX(-50%);
	z-index: 2;
	max-width: 83px;
}
main .intro h1,
main .intro .copy,
main .intro .note{
	padding: 0 5%;
	text-align: center;
}
main .intro h1{
	margin-top: 40px;
	font-family: var(--fnt-min);
	font-size: 25px;
}
main .intro h1 span{
	display: block;
	font-size: 34px;
}
main .intro h1 em{
	color: var(--col-hlt);
}
main .intro .copy{
	margin-top: 20px;
	font-size: 19px;
}
main .intro .copy em{
	color: var(--col-hlt);
}
main .intro .note{
	margin-top: 30px;
	line-height: 2.3;
}
main .more a{
	display: block;
	max-width: 90%;
	margin: 40px auto 0;
	background: var(--col-hlt);
	border-radius: 5px;
	text-align: center;
	font-size: 14px;
	line-height: 55px;
	color: #fff;
}
main .intro figure img,
main .intro figure video {
	width: 100%;
}





/*================================
	Private
================================*/
main .private {
	margin-top: 60px;
	padding: 60px 0;
	background: var(--col-bg-base);
}
main .private h2{
	padding: 0 5%;
	text-align: center;
	font-size: 16px;
	line-height: 2.2;
}
main .private h2 em{
	display: block;
	margin-top: 10px;
	font-size: 22px;
	line-height: 1.6;
	color: var(--col-main);
}
main .private .gallery {
	margin-top: 45px;
}
main .private .gallery .slick-slide{
	padding-right: 3px;
}
main .private .note {
	margin-top: 40px;
	padding: 0 5%;
	text-align: center;
	line-height: 2.2;
}





/*================================
	Present
================================*/
main .present {
	margin-top: 55px;
}
main .present h2{
	margin-bottom: 50px;
	text-align: center;
	font-size: 22px;
	line-height: 1.8;
	color: var(--col-main);
}

/*------------------------
	Visit
------------------------*/
main .present .visit .list{
	margin-top: 40px;
	padding: 0 8%;
}
main .present .visit .list li{
	border: 1px solid  var(--col-bd);
	border-radius: 5px;
	overflow: hidden;
}
main .present .visit .list li + li{
	margin-top:30px;
}
main .present .visit .list li p{
	padding: 30px 5% 40px;
	text-align: center;
	font-size: 16px;
}
main .present .visit .list li em{
	display: block;
	margin-top: 5px;
	font-size: 30px;
	color: var(--col-hlt);
}
main .present .visit .list li.course em{
	font-size: 25px;
}
main .present .visit .list li img.underline{
	border-bottom: 1px solid #eee;
}

/*------------------------
	Contract
------------------------*/
main .present .contract {
	margin-top: 70px;
}
main .present .contract .copy{
	margin-top: 50px;
	padding: 0 5%;
	text-align: center;
}
main .present .contract .copy em{
	display: block;
	margin-top: 5px;
	font-size: 25px;
}
main .present .contract .copy em span{
	color: var(--col-hlt);
}
main .present .contract .list{
	margin-top: 40px;
	padding: 0 8%;
	display:flex;
	display: -webkit-flex;
	-webkit-justify-content: space-between;
	justify-content: space-between;
	-webkit-align-items: flex-start;
	align-items:flex-start;
	-webkit-flex-wrap:wrap;
	flex-wrap:wrap;
	gap: 15px 0;
}
main .present .contract .list li{
	text-align: center;
	color: var(--col-main);
}
main .present .contract .list li:not(.ceremony){
	width: 49%;
}
main .present .contract .list img{
	display: block;
	border-radius: 5px;
	margin-bottom: 10px;
}
main .present .contract .plus {
	width: 84%;
	margin: 60px auto 0;
	padding-top: 45px;
	border-top: 1px solid var(--col-main);
	text-align: center;
	position: relative;
	font-size: 16px;
}
main .present .contract .plus::before{
	content: "+";
	display: block;
	width: 25px;
	height: 25px;
	background: var(--col-main);
	border-radius: 50%;
	position:absolute;
	left:50%;top:-12.5px;
	-webkit-transform:translateX(-50%);
	-moz-transform:translateX(-50%);
	transform:translateX(-50%);
	color: #fff;
}
main .present .contract .plus em{
	font-size: 30px;
	color: var(--col-main);
}
main .present .contract .plus img{
	display: block;
	margin: 30px 0 25px;
	margin-top: 30px;
}
main .present .contract .plus span{
	display: block;
	margin-top: 10px;
	font-size: 30px;
	line-height: 1.4;
	color: var(--col-hlt);
}

/*------------------------
	Logo
------------------------*/
main .present .logo {
	max-width: 80px;
	margin: 60px auto 0;
}





/*================================
	Features
================================*/
main .features {
	background: var(--col-bg-base);
	margin-top: 50px;
	padding: 50px 0 70px;
}
main .features h2{
	margin-bottom: 50px;
	text-align: center;
	font-size: 25px;
	line-height: 1;
	color: var(--col-main);
}
main .features .chapter:not(:first-of-type){
	margin-top: 60px;
}
main .features .chapter .gallery{
	display:flex;
	display: -webkit-flex;
	-webkit-justify-content: space-between;
	justify-content: space-between;
	-webkit-flex-wrap:wrap;
	flex-wrap:wrap;
	gap: 3px;
}
main .features .chapter .gallery li:first-of-type{
	width: 100%;
}
main .features .chapter .gallery li:not(:first-of-type){
	width: calc((100% - 3px) / 2);
}
main .features .chapter h3,
main .features .chapter .copy,
main .features .chapter .note{
	padding: 0 8%;
}
main .features .chapter h3{
	margin-top: 50px;
	font-size: 24px;
}
main .features .chapter .copy{
	margin-top: 30px;
	font-size: 18px;
}
main .features .chapter .note{
	margin-top: 15px;
	line-height: 2;
}
main .features .chapter h3 + .note{
	margin-top: 25px;
}





/*================================
	Access
================================*/
main .access {
	background: var(--col-bg-base);
	padding-bottom: 80px;
}
main .access .map img{
	width: 100%;
}
main .access .add{
	margin-top: 30px;
	padding: 0 8%;
	line-height: 2.2;
	position: relative;
	z-index: 100;
}
main .access a{
	color: var(--col-main);
}
main .access a::before{
	display: inline-block;
	transform: translateY(3px);
	content: "\f3c5";
	font: var(--fa-font-solid);
	margin-right: 5px;
}
.access_map {
	height: 465px;
	overflow: hidden;
	mask-image: linear-gradient(to bottom, black 100%, transparent 100%);
}
.access_map_embed {
	overflow: hidden;
	height: 465px;
	padding: 1px 0 0;
}
.access_map_embed iframe {
	display: block;
	border: 0;
	width: 100%;
	margin-top: -170px;
	filter: grayscale(1);
	height: calc(100% + 340px);
}




/*================================
	Entry
================================*/
main #entry .info,
main #entry form{
	padding: 0 8%;
}
main #entry h3{
	width: 84%;
	margin: 0 auto;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--col-bd);
	font-size: 16px;
	color: var(--col-main);
}
main #entry h2 + h3{
	margin-top: 50px;
}
main #entry .info{
	margin-top: 20px;
	display:flex;
	display: -webkit-flex;
	-webkit-justify-content: space-between;
	justify-content: space-between;
	-webkit-align-items: flex-start;
	align-items:flex-start;
	-webkit-flex-wrap:wrap;
	flex-wrap:wrap;
	gap: 10px 0;
}
main #entry .info dt{
	width: 70px;
}
main #entry .info dd{
	width: calc(100% - 75px);
}
main #entry .info .numlist {
	counter-reset: number;
}
main #entry .info .numlist li{
	position: relative;
	padding-left: 25px;
}
main #entry .info .numlist li:not(:first-of-type){
	margin-top: 5px;
}
main #entry .info .numlist li::before{
	counter-increment: number;
	content: counter(number);
	position: absolute;
	left: 5px;top: 1px;
	font-size: 13px;
}
main #entry .info .numlist li:after{
	content: "";
	display: block;
	width: 15px;
	height: 15px;
	border: 1px solid  #999;
	border-radius: 50%;
	position: absolute;
	left: 0;top: 3px;
}
main #entry .info .limit{
	/* font-size: 16px; */
	line-height: 1;
	/* color: var(--col-main); */
}
main #entry .info + h3{
	margin-top: 65px;
}


/*------------------------
	Form
------------------------*/
input[type=text],
input[type=email]{
	vertical-align:middle;
}
input[type=submit],
button{
	outline:none;
	cursor:pointer;
}
input[type="submit"]::-moz-focus-inner{
	border :0px;
	outline:none;
}
main #entry form{
	margin-top: 30px;
}
main #entry form input[type="text"],
main #entry form input[type="email"],
main #entry form input[type="date"],
main #entry form input[type="tel"],
main #entry form textarea{
	width: 100%;
	border: 1px solid var(--col-bd);
	border-radius: 5px;
	padding: 5px;
}
main #entry .formlist dt{
	position: relative;
	padding-left: 45px;
	line-height: 1;
}
main #entry .formlist dt::before{
	position:absolute;
	left:0;top:50%;
	-webkit-transform:translateY(-50%);
	-moz-transform:translateY(-50%);
	transform:translateY(-50%);
	padding: 3px 5px;
	border-radius: 3px;
	font-size: 12px;
	line-height: 1;
}
main #entry .formlist dt.need::before{
			content:"必須";
			background: var(--col-main);
			color:#fff;
}
main #entry .formlist dt.will::before{
			content:"任意";
			background:#ccc;
			color:#fff;
}
main #entry .formlist dd{
	margin-top: 15px;
}
main #entry .formlist dt:not(:first-of-type){
	margin-top: 30px;
}
main #entry .formlist p.cap{
	margin-top: 10px;
	font-size: 11px;
	text-indent: -1.5em;
	padding-left: 1.5em;
}
main #entry .formlist p.cap::before{
	content: "※";
	margin-right: .5em;
}
main #entry .formlist .schedule input[type="text"],
main #entry .formlist .num input[type="text"]{
	width: 7em;
}
main #entry form input[type="date"]{
	width: 9em;
	margin-bottom: .5em;
}
main #entry form input[type="checkbox"]{
	vertical-align: -.1em;
}
main #entry .formlist .schedule span{
	display: inline-block;
}
main #entry .formlist .schedule span:not(:first-of-type){
	margin-left: 1em;
}
main #entry .send {
	margin-top: 30px;
	position: relative;
}
main #entry .send .next input[type="submit"]{
	width: 100%;
	background: var(--col-hlt);
	border-radius: 5px;
	text-align: center;
	line-height: 55px;
	color: #fff;
}
main #entry .send .wpcf7-spinner {
	display: block;
	margin: 0 auto;
	position: absolute;
	left: 0;
	right: 0;
	top: -34px;
}


/* COnfirm ------------------*/
body.confirm main #entry .formlist .cap {
	display: none;
}
body.confirm main #entry .send .back{
	margin-bottom: 10px;
}
body.confirm main #entry .send .back button{
	border: none;
	background: none;
	padding: 0;
	color: #666;
}
body.confirm main #entry .send .back::before{
	content: "\f304";
	font: var(--fa-font-solid);
	margin-right: 5px;
	color: #999;
}

/* Thanks ------------------*/
body.thanks main #entry .note {
	margin-top: 30px;
	padding: 0 8%;
	line-height: 2.2;
}
body.thanks main #entry .more a{
	width: 84%;
}





/*================================
	Footer
================================*/
#pagefooter {
	border-top: 1px solid var(--col-bd);
	padding: 30px 5%;
}
#pagefooter small{
	display: block;
	text-align: center;
	font-size: 10px;
}





/*================================
	Fixed Navi
================================*/
#fixednav {
	display: none;
	width: 100%;
	position: fixed;
	left: 0; bottom: 10px;
	z-index: 100;
}
#fixednav a{
	display: block;
	width: 95%;
	max-width: 480px;
	margin: 0 auto;
	padding: 10px 0;
	line-height:32px;
	background: var(--col-hlt);
	border-radius: 5px;
	text-align: center;
	font-size: 16px;
	color: #fff;
}
#fixednav a.line{
	margin-top:5px;
	padding: 10px 0;
	line-height:32px;
	text-indent: -10px;
	background: #06C755;
	text-align: center;
	color: #fff;
	vertical-align:top;
}
#fixednav a.line i{
	display:inline-block;
	width:32px;
	height:32px;
	margin-right: 10px;
	background: url(../img/line_icon.png) no-repeat;
	background-size:32px;
	vertical-align:top;
}





.contract__ttls {
	margin-top: 40px;
    margin-bottom: 30px;
    text-align: center;
    font-size: 22px;
    line-height: 1.8;
    color: var(--col-main);
}
.contract__lst{
	margin: 0 8%;
	padding: 20px 5%;
	border: 1px solid var(--col-bd);
    border-radius: 5px;
    overflow: hidden;
}
.contract__lst + .contract__lst{
	margin-top: 30px;
}
.contract__lst dt{
	margin-bottom:20px;
	text-align: left;
    font-size: 16px;
}
.contract__lst dd{
	text-align: left;
}
.contract__lst li{
	padding-bottom:10px;
	list-style-type: disc;
    margin-left: 1em;
}
.contract__lst dd:last-child{
	margin-top: 15px;
	padding-top: 15px;
	border-top: 1px solid var(--col-bd);
	text-align:center;
	font-size:20px;
}
.contract__lst dd:last-child em{
	font-size:24px;
	vertical-align: bottom;
	color: var(--col-hlt);
}
