@charset "utf-8";

/*------------------------------------------------------

	グローバル

------------------------------------------------------*/

body { min-width: 0px; font-size: 0.9em;}

.ta_right-s_center { text-align: center;}
.ta_left-s_center { text-align: center;}
.ta_center-s_left { text-align: left;}

.hidden_s { display: none !important;}

/* margin */
.mb40-20 { margin-bottom: 20px !important;}
.mb60-30 { margin-bottom: 30px !important;}
.mb80-40 { margin-bottom: 40px !important;}
.mb100-60 { margin-bottom: 60px !important;}

/* ------------------------
	ヘッダー
------------------------ */

body { padding-top: 50px;}

.header { display: block; height: 50px; position: fixed; top: 0px; width: 100%; background: #fff; left: 0px; z-index: 9999;}
.header h1 { width: auto; padding-top: 8px; margin-left: 8px;}
.header h1 img { width: auto; height: 34px;}

.sp_tel { position: fixed; width: 50px; top: 0px; right: 50px; z-index: 99999;}
.sp_line { position: fixed; width: 50px; top: 0px; right: 100px; z-index: 99999;}

/* ------------------------
	グローバルナビ
------------------------ */

/* ハンバーガーメニュー */
.humberger {
	background: #cd4d85;
	cursor: pointer;
	display: block;
	position: fixed;
	top: 0px;
	right: 0px;
	width: 50px;
	height: 50px;
	z-index: 10001;
}
.humberger span {
	background: #fff;
	border-radius: 15px;
	position: absolute;
	left: 10px;
	width: 30px;
	height: 3px;
	transition: 0.4s;
}
.humberger span:nth-of-type(1) { top: 9px;}
.humberger span:nth-of-type(2) { top: 17px;}
.humberger span:nth-of-type(3) { top: 25px;}
.humberger:after {
	color: #fff;
	content: 'MENU';
	display: block;
	font-size: 10px;
	text-decoration: none;
	text-align: center;
	transition: 0.4s;
	position: absolute;
	left: 0;
	bottom: 1px;
	width: 100%;
}
.is-open .humberger:after { content: 'CLOSE';}
.is-open .humberger span:nth-of-type(1) {
  -webkit-transform: translateY(6px) rotate(-45deg);
	  -ms-transform: translateY(6px) rotate(-45deg);
		  transform: translateY(6px) rotate(-45deg);
}
.is-open .humberger span:nth-of-type(2) { opacity: 0;}
.is-open .humberger span:nth-of-type(3) {
  -webkit-transform: translateY(-10px) rotate(45deg);
	  -ms-transform: translateY(-10px) rotate(45deg);
		  transform: translateY(-10px) rotate(45deg);
}
/* ナビ本体 */
.sp-navi { -webkit-text-size-adjust: 100%;}
.sp-navi a { color: #333;}
.sp-navi.is-open .sp-navi-inner {
	opacity: 1;
	visibility: visible;
	z-index: 10000;
}
.sp-navi .sp-navi-inner {
	background: #fff;
	background-size: 20px auto;
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	position: fixed;
	top: 0;
	left: 0px;
	height: 100%;
	width: 100%;
	transition: .5s;
	padding-bottom: 30px;
}
.sp-navi .sp-navi-inner .navi-main > li {
	border-bottom: 1px solid #ddd;
	position: relative;
}
.sp-navi .sp-navi-inner .navi-main > li:before {
	background: #cd4d85;
	content: "";
	height: 4px;
	width: 16px;
	position: absolute;
	left: 15px;
	top: 50%;
	transform: translateY(-50%);
}
.sp-navi .sp-navi-inner .navi-main > li:first-child { border-top: 1px solid #ddd;}
.sp-navi .sp-navi-inner .navi-main > li > a, .sp-navi .sp-navi-inner .navi-main > li > span {
	display: block;
	padding: 0px 0px 0px 60px;
	overflow: hidden;
	line-height: 46px;
	text-decoration: none;
	cursor: pointer;
	font-weight: normal;
}
.sp-navi .open_btn { position: absolute; top: 0px; left: 0px; height: 46px; background: url("../images/common/ico_plus.png") no-repeat center center #f6a4ab; background-size: 16px auto; width: 46px; cursor: pointer;}
.sp-navi .sp-navi-inner .navi-main > li ul { display: none;}
.sp-navi .sp-navi-inner .navi-main > li ul li { width: 100%; position: relative; background-color: #515151;}
.sp-navi .sp-navi-inner .navi-main > li ul li:not(:first-child) { border-top: 1px dashed#fff;}
.sp-navi .sp-navi-inner .navi-main > li ul li a {
	display: block;
	font-size: 0.93em;
	line-height: 40px;
	padding: 0px 0px 0px 40px;
	position: relative;
	text-decoration: none;
	color: #fff;
}
.sp-navi .sp-navi-inner .navi-main > li ul li a:before { content: ""; position: absolute; background: url("../images/common/nav_arrow01.png") no-repeat center center; width: 8px; height: 6px; left: 15px; top: 50%; transform: translateY(-50%);}

.sp-navi .logo { padding: 8px 0px 8px 8px;}
.sp-navi .logo img { width: auto; height: 34px;}


/* ------------------------
	フッター
------------------------ */

.footer .bg01:before { height: 4px; top: -4px; background-size: auto 100%;}

.footer_nav { flex-wrap: wrap;}
.footer_nav > li { width: 33.3333%; font-size: 0.95em}

.footer .bg02 { padding: 30px 0px 20px;}
.footer .bg02 h2 { width: 250px;}
.footer .bg02 .list01 li { margin-left: 7px; width: 35px;}

.pagetop { width: 55px; padding-bottom: 65px;}

body { padding-bottom: 60px;}

.fixed_nav { position: fixed; width: 100%; left: 0px; bottom: 0px; z-index: 999; background-color: rgba(255,255,255,0.66); display: flex; justify-content: space-between; align-items: center; padding: 8px 4px;}
.fixed_nav li { margin: 0px 4px; width: calc(50% - 8px);}
.fixed_nav a { display: block; border-radius: 10px; background: #fca400; text-decoration: none; color: #fff; line-height: 44px; font-size: 1.2em;}
.fixed_nav li:last-child a { background: #66bab7;}

@media only screen and (max-width: 700px) {
	.footer .bg01 { padding-bottom: 15px;}
	.footer_nav > li { font-size: 0.8em; margin-bottom: 5px;}
	.footer_nav > li.odd { width: 57%;}
	.footer_nav > li.even { width: 40%;}
}

@media only screen and (max-width: 640px) {
	.footer .bg02 .list01 { text-align: right; width: 100%;}
}

@media only screen and (max-width: 480px) {
	.fixed_nav li span:last-child { font-size: 3vw;}

	.fixed_nav a { font-size: 3.7vw;}
}

/*------------------------------------------------------

	トップページ

------------------------------------------------------*/

.top_sec01 { margin: -10px 0px; padding: 10px 0px;}
.top_sec01 h2 { font-size: 1.6em;}
.top_sec01 hr { height: 27px;}
.top_sec01 .container:after { display: none;}

.top_sec02 { padding: 40px 0px 30px;}
.top_sec02 .fo125 { font-size: 1.15em !important;}

.top_sec03 { background-size: 27% auto, 27% auto, auto; background-position: left 20px, right 20px, 0px 0px; padding: 40px 0px 30px;}
.top_sec03 h2 { padding: 0px 13%;}
.top_sec03 ul { display: block;}
.top_sec03 li { width: auto; border-top-left-radius: 40px; border-top-right-radius: 40px; padding: 50px 20px 20px; margin-top: 60px;}
.top_sec03 li:nth-child(2) { padding-top: 30px;}
.top_sec03 li:nth-child(1):before { top: -60px; width: 70px; height: 100px;}
.top_sec03 li:nth-child(2):before { top: -30px; width: 120px; height: 50px;}
.top_sec03 li:nth-child(3):before { top: -50px; width: 70px; height: 95px;}

/* 2024/02/21 追加対応 STA */
.top_sec03 > div > h2:nth-of-type(2){font-size: 1.25em;align-items: center;display: flex;justify-content: center;}
.top_sec03 > div > h2:nth-of-type(2)::before,.top_sec03 > div > h2:nth-of-type(2)::after{background-color: black;border-radius: 10px;content: "";height: 2px;width: 25px;}
.top_sec03 > div > h2:nth-of-type(2)::before{margin-right: 10px;transform: rotate(60deg);}
.top_sec03 > div > h2:nth-of-type(2)::after{margin-left: 10px;transform: rotate(-60deg);}
.top_sec03 > div > div{display: block;justify-content: space-between;width: 100%;margin-left: auto;margin-right: auto;margin-bottom: 20px;}
.top_sec03 > div > div > div:nth-of-type(1){width: 264px;margin-left: auto;margin-right: auto;}
.top_sec03 > div > div > div:nth-of-type(2){width: 100%;max-width: 390px;margin-left: auto;margin-right: auto;text-align: center;}
.top_sec03 > div > div > div:nth-of-type(2) > h3{font-size: 1.5em;}
/* 2024/02/21 追加対応 END */

.top_sec04 { padding: 30px 0px;}
.top_sec04 h2 { padding: 0px 20%;}
.top_sec04 ul { margin: auto -7px;}
.top_sec04 li { width: calc(33.3333% - 7px); margin: 0px 7px; padding: 5px;}
.top_sec04 li:after { width: 30px; left: -5px; top: 10px;}

.top_sec05 { padding: 50px 0px 30px;}
.top_sec05 .back_white { padding: 0px 15px 15px;}
.top_sec05 .back_white:before, .top_sec05 .back_white:after { display: none;}
.top_sec05 h2 { padding: 0px 5%;}
.top_sec05 h2 img { margin-top: -25px; position: relative; z-index: 999;}
.top_sec05 .text01 { font-size: 2.8vw;}
.top_sec05 h3 { font-size: 1.11em; margin: auto -15px; padding: 4px 5px 6px;}
.top_sec05 .img01 { padding: 0px 28%;}
.top_sec05 .img_box { padding: 0px 4%;}
.top_sec05 .img_box li { width: 48.5%; margin-bottom: 15px;}

.top_bnr .list01 li { width: 49%;}
.top_bnr .list02 li { width: 32%;}

.top_sec06 .img01 { padding: 0px 25%;}
.top_sec06 .img01 img { margin-top: -15px;}
.top_sec06 h2 { font-size: 1.7em;}
.top_sec06 .tel a:before { width: 25px; height: 20px; margin: 0px 0.3em 1px 0px;}
.top_sec06 .text01 { letter-spacing: 0px;}

.top_sec07 { padding: 30px 0px;}
.top_sec07 h2 { padding: 0px 18%;}
.top_sec07 li a { padding: 10px; justify-content: space-between;}
.top_sec07 li figure { width: 30%; align-self: flex-start;}
.top_sec07 .box_inner { width: 67%; padding: 5px 5px 5px 0px;}
.top_sec07 .box_inner:after { display: none;}
.top_sec07 dl { margin-bottom: 10px;}
.top_sec07 dt { width: 4.5em; font-size: 0.85em;}
.top_sec07 dd { font-size: 1.1em;}

.top_sec08 { padding: 50px 0px;}
.top_sec08 .back_white { padding: 0px 15px 30px;}
.top_sec08 .back_white:before { width: 40px; height: 40px;}
.top_sec08 .text01 { padding: 0px 40%;}
.top_sec08 .text01 img { margin-top: -15px;}
.top_sec08 h2 { font-size: 1.8em;}
.top_sec08 h2:after { width: 23px; height: 30px; background-size: 100% auto; margin: -5px 0px 0px 15px;}
.top_sec08 th { font-size: 1em; width: 4.5em; padding-right: 1.2em;}
.top_sec08 td span.fo_shuei { font-size: 1.3em;}
.top_sec08 tr:nth-child(1) a, .top_sec08 tr:nth-child(2) a, .top_sec08 tr:nth-child(3) a { padding-left: 33px;}
.top_sec08 tr:nth-child(1) a:before { width: 22px; height: 18px;}
.top_sec08 tr:nth-child(2) a:before { width: 22px; height: 25px;}
.top_sec08 tr:nth-child(3) a:before { width: 22px; height: 25px;}
.top_sec08 tr:nth-child(4) img, .top_sec08 tr:nth-child(6) img { width: auto; height: 30px;}

.top_sec08 .list01 li { margin-right: 10px; width: 30px;}

.top_sec08 h3 { font-size: 1.8em;}
.top_sec08 .list02 li { margin: 0px 5px;}
.top_sec08 .list02 li img {  width: auto; height: 45px;}


@media only screen and (max-width: 640px) {
	.top_sec02 .fo125 { font-size: 3vw !important;}
	
	.top_sec03 h3 .hidden_s { display: inline !important ;}

	.top_sec05 .img_box { display: block; padding: 0px 15%;}
	.top_sec05 .img_box li { width: auto;}

	.top_sec08 .text02 { text-align: left;}
}

@media only screen and (max-width: 480px) {
	.top_sec01 .show_sp { display: inline;}
	
	.top_bnr .list01 { display: block; padding: 0px 10%;}
	.top_bnr .list01 li { width: auto; margin-bottom: 15px;}
	.top_bnr .list02 { flex-wrap: wrap; justify-content: center;}
	.top_bnr .list02 li { width: 48%; margin: 0px 1% 15px;}
}


/* ------------------------
	コンテンツ
------------------------ */

.more_btn a { font-size: 1rem; border-radius: 80px; padding: 10px 50px;}
.more_btn a:after { width: 28px; height: 15px; right: 15px;}

.pagettl { padding: 20px 0px; font-size: 1.5em;}
.pagettl hr { width: calc(100% - 40px); max-width: 390px; height: 4px; margin: 13px auto;}
.pagettl hr:before, .pagettl hr:after { width: 20px; height: 20px;}
.pagettl hr:before { left: -15px;}
.pagettl hr:after { right: -15px;}

.heading_middle { font-size: 1.35em;}

.heading_back span { font-size: 1.35em;}

/* ------------------------
	price
------------------------ */

.pagettl.price { padding: 40px 0px 50px;}
.pagettl.price h2 { font-size: 1em;}
.pagettl.price .container:after { width: 50px; height: 80px; right: 8px; bottom: -50px;}

.price_wrap { padding: 30px 0px 10px; margin-top: -10px;}
.price_wrap section { padding: 25px 15px;}
.price_wrap section:before { width: 30px; height: 30px;}

.price_sec01 h2 { padding: 0px 25%;}
.price_sec01 .text01 img { width: auto; height: 55px;}
.price_sec01 .text02 img { width: auto; height: 30px;}
.price_sec01 .list02 li { width: calc(33.3333% - 14px);}

.price_sec02 .text03 { font-size: 2em;}
.price_sec02 .text04 { font-size: 1.2em;}

@media only screen and (max-width: 480px) {
	.price_sec01 .list02 li { width: calc(50% - 14px); height: 50px;}
}


/* ------------------------
	suggest
------------------------ */

.sug_sec01 .box { padding: 20px 15px 25px 25%;}
.sug_sec01 .box:before { width: 30px; height: 30px;}
.sug_sec01 .box:after { width: 60px; height: 75px; right: -10px; bottom: -15px;}
.sug_sec01 .box .pos_ab { width: 20%; left: 5px; max-width: 140px;}

.sug_sec02 { padding: 30px 0px;}
.sug_sec02 h4 img { width: auto; height: 35px;}
.sug_sec02 .box { padding: 20px 15px;}
.sug_sec02 section:not(:last-child) { margin-bottom: 20px; position: relative; padding-bottom: 36px;}
.sug_sec02 section:not(:last-child):after { content: ""; position: absolute; background: url("../images/suggest/sug_sec02_arrow.png") no-repeat center center; background-size: 20px auto; width: 100%; height: 16px; left: 0px; bottom: 0px;}
.sug_sec02 section figure { width: 25%;}
.sug_sec02 .box_inner { width: 70%;}
.sug_sec02 h5 { font-size: 1.2em;}
.sug_sec02 .arrow img { width: 20px; height: auto; vertical-align: bottom;}

.sug_sec03 { padding: 30px 0px 50px;}
.sug_sec03 figure { width: 17%;}
.sug_sec03 .text01 { font-size: 1.1em; margin-left: 10px;}

@media only screen and (max-width: 480px) {
	.sug_sec01 .show_sp { display: inline;}
	.sug_sec01 .box { padding: 20px 15px 25px;}
	.sug_sec01 .box02.mb25 { position: relative; display: flex; justify-content: center; align-items: flex-end; margin-bottom: 15px !important;}
	.sug_sec01 .box02 div { padding-bottom: 15px;}
	.sug_sec01 .box .pos_ab { position: static; margin-right: 15px; width: 23%;}
	
	.sug_sec02 section { display: block;}
	.sug_sec02 section figure, .sug_sec02 .box_inner { width: auto;}
	.sug_sec02 section figure { padding: 0px 23% 20px;}

	.sug_sec03 .box { display: block;}
	.sug_sec03 figure { width: auto; padding: 0px 33% 15px;}
	.sug_sec03 .text01 .hide_sp { display: none;}
}


/* ------------------------
	info
------------------------ */

.info_sec01 .box { display: block;}
.info_sec01 .map { width: auto;}
.info_sec01 .map iframe { height: 200px;}
.info_sec01 h3 { font-size: 1.35em;}
.info_sec01 .text01 { padding: 8px 15px;}
.info_sec01 .text01:before { width: 10px; left: -10px;}
.info_sec01 .text01:after{ width: 10px; right: -10px;}

.info_sec02 { padding: 35px 0px;}
.info_sec02 th { width: 6em;}

.info_sec03 { padding: 35px 0px 20px;}
.info_sec03 figure { width: 35%;}
.info_sec03 .box_inner { width: 62%;}
.info_sec03 .name { font-size: 1.5em; line-height: 1.2;}


@media only screen and (max-width: 480px) {
	.info_sec03 .box { display: block;}
	.info_sec03 figure, .info_sec03 .box_inner { width: auto;}
	.info_sec03 figure { padding: 0px 25% 20px;}
}


/* ------------------------
	faq
------------------------ */

.faq_sec01 { padding: 30px 0px; margin-top: -10px;}

.faq_sec01 section:before { width: 30px; height: 30px; left: -15px; top: -15px;}


.faq_sec01 section { padding: 0px 15px 1px;}
.faq_sec01 dt { padding: 15px 23px 15px 50px;}
.faq_sec01 dt:before { width: 30px; height: 30px; left: 10px;}
.faq_sec01 dt:after { width: 17px; height: 17px;}
.faq_sec01 dd { margin-bottom: 14px;}

@media only screen and (max-width: 640px) {
	.faq_sec01 .box { display: block;}
	.faq_sec01 section { width: auto; margin-bottom: 20px;}
}


/* ------------------------
	join
------------------------ */

.pagettl.join.price .container:after { width: 80px; height: 80px;}

.join_sec01 { margin-top: -10px;}
.join_sec01 .more_btn { margin-left: -50px;}
.join_sec01 .more_btn a { font-size: 1.1em;}
.join_sec01 .more_btn a:after { width: 30px; right: 15px;}

.join_sec02 { padding: 30px 0px;}

.list_check li { background-size: 20px auto; background-position: left 0.35em; padding-left: 30px; font-size: 1.1em; margin-bottom: 7px;}

.join_sec03 .list_check li { background-image: url("../images/ico_check02.png");}


/* ------------------------
	online
------------------------ */

.pagettl.price.online .container:after { width: 100px; height: 100px;}

.online_sec01 .box01 figure { width: 30%;}
.online_sec01 .box01 .box_inner { width: 67%;}

.online_sec01 h4 span { background-size: 100% 2px; width: auto; font-size: 1.25em; padding: 10px;}
.online_sec01 h4 span:before { width: 40px; height: 50px; left: -45px;}

.online_sec02 { padding: 30px 0px;}

.flow_box { padding: 20px 15px; min-height: 0px;}
.flow_box:before { width: 30px; height: 30px;}
.flow_box > figure { width: 50px; align-self: flex-start; padding-top: 15px;}
.flow_box > figure img { width: 30px; height: auto;}
.flow_box .box_inner { width: calc(100% - 50px);}
.flow_box h4 { font-size: 1.3em;}
.flow_arrow img { width: 17px; height: auto; margin-top: 5px;}

@media only screen and (max-width: 640px) {
	.online_sec01 .box01 { display: block;}
	.online_sec01 .box01 figure, .online_sec01 .box01 .box_inner { width: auto;}
	.online_sec01 .box01 figure { padding: 0px 15%;}
}


/* ------------------------
	contact
------------------------ */

.pagettl.contact .container:after { width: 57px; height: 100px;}

.contact_sec02 { padding: 30px 0px 40px;}
.contact_sec02 h3 { font-size: 1.3em;}
.contact_sec02 h3:before { width: 60px; height: 30px; margin-right: 0.7em;}

.contact_sec dl { margin-bottom: 20px;}
.contact_sec dt { width: 13em; padding: 10px 1.5em 0px 0px;}

.contact_sec .btn_area input { max-width: 400px; width: 90%; font-size: 1.25em; background-size: 25px auto;}

#privacy .box { padding: 20px 15px; height: 150px;}

.contact_common { padding: 30px 0px;}
.contact_common .back_white { padding: 30px 10px 20px 40px; max-width: 500px}
.contact_common .back_white:before { width: 30px; height: 30px;}
.contact_common h3:before { width: 50px; height: 33px; margin-right: 0.7em;}
.contact_common p:nth-child(1) a { padding-left: 45px;}
.contact_common p:nth-child(1) a:before { width: 30px; height: 28px;}
.contact_common p:nth-child(2) a { font-size: 1.3em; padding-left: 45px; letter-spacing: 0.01em;}
.contact_common p:nth-child(2) a:before { width: 28px; height: 25px; margin-left: 2px;}
.contact_common p:nth-child(3) img { margin-bottom: 5px;}
.contact_common p:not(:last-child) { margin-bottom: 25px;}
.contact_common .fo11 { font-size: 1em !important;}

.contact_sec02.thanks { margin-top: -10px;}


@media only screen and (max-width: 640px) {
	.contact_sec01 .show_sp { display: inline;}

	.contact_sec dl, .contact_sec dl > * { display: block; width: auto !important; padding: 0px !important;}
	.contact_sec dt { margin-bottom: 8px;}
	.contact_sec dt .hide_sp { display: none;}
	.contact_sec dt .hissu, .contact_sec dt .ninni { position: static; margin-left: 1em;}
}

@media only screen and (max-width: 480px) {
	.contact_common .show_sp { display: inline;}
	
	.contact_sec02 h3 .show_sp { display: inline;}
	.contact_sec02 h3:before { margin: -0.3em 0.7em 0.2em 0px;}
}


/* ------------------------
	reserve
------------------------ */

.contact_sec02.reserve h3:before { width: 50px; height: 32px; margin-right: 0.5em; display: inline-block !important;}


/* ------------------------
	marriage
------------------------ */

.pagettl.marriage .container:after { background-size: auto 100%; width: 100px; height: 75px;}


.mar_wrap { padding: 30px 0px; margin-top: -10px;}
.mar_list { column-gap: 15px;}
.mar_list li { margin-bottom: 15px;}
.mar_list li:after { width: 30px; left: -5px; top: 10px;}

.pagination span.current, .pagination a { min-width: 35px; height: 35px; margin: 0px 3px 5px; line-height: 34px; font-size: 1.3em;}

@media only screen and (max-width: 640px) {
	.mar_list { column-count: 2;}
}

@media only screen and (max-width: 480px) {
	.mar_list { column-count: 1;}
	.mar_list li { max-width: 400px; margin: 0px auto 15px;}
}

/* ------------------------
	party
------------------------ */

.pagettl.party .container:after { width: 120px;}

.party_wrap { padding: 30px 0px; margin-top: -10px;}

.party_list li { width: calc(50% - 20px);}

.party_single h1 { font-size: 1.55em; padding-bottom: 8px;}

.single_desc { display: block;}
.single_desc li { width: auto;}
.single_desc dd { font-size: 1.1em;}

.blog_content h2 { font-size: 1.35em;}
.blog_content h3 { padding-left: 20px;}
.blog_content h3:before { width: 17px; height: 17px; top: 0.25em;}

.contact_sec02.single h3.mb30 { margin-bottom: 20px !important;}
.contact_sec02.single h3:before { width: 25px; height: 40px;  margin-right: 15px;}

.pager { font-size: 0.85em;}
.pager .return a { width: 120px; padding: 6px; margin: 0px 1.5em;}
.pager .previous a { padding-left: 20px;}
.pager .next a { padding-right: 20px;}
.pager .previous a:before, .pager .next a:after { width: 10px;}


@media only screen and (max-width: 480px) {
	.party_list li { width: calc(100% - 20px);}
}


