/*
index.css
*/

/* font import
--------------------------------*/
/* NotoSans */
@import url(//fonts.googleapis.com/earlyaccess/notosansjapanese.css);

/* Hiragino */
@font-face {
	font-family: "Hiragino KakuGo";
	font-style: normal;
	font-weight: 500;
	src: url("../font/HiraginoKakuGoPro_W3.woff") format(woff);
}

/* font
--------------------------------*/
.font_NotoSans {
	font-family: 'Noto Sans Japanese', sans-serif;
}
.font_Hiragino {
	font-family: "Hiragino KakuGo", sans-serif;
}


/* reset
--------------------------------*/
h1, h2, h3, h4, h5, h6, p{
	font-weight: normal;
	margin: 0;
}

h1, h2, h3, h4, h5, h6 {
	line-height: 1;
}

ul, ol, dl, li, dt, dd{
	list-style: none;
	margin: 0;
	padding: 0;
}
a {
	text-decoration: none;
}

img {
	vertical-align: top; /* 画像下の余白削除 */
}

*, *::before, *::after {
	box-sizing: border-box;
}


/* common
--------------------------------*/
html {
	width: 100%;
	font-family: Meiryo, "Hiragino KakuGo", Arial, sans-serif;
	overflow-y: scroll !important;
}

body {
	width: 100%;
	min-width: 1000px;
	overflow: hidden;
}

header,
main,
section,
footer {
	width: 100%;
	margin: auto;
}

.inner {
	width: 100%;
	max-width: 1000px;
	margin: auto;
	text-align: center;
}

.middle_heading {
	font-family: "Hiragino KakuGo", sans-serif;
	margin-bottom: 1.5625rem;
	font-size: 2rem;
	color: #072d8e;
	font-weight: bold;
}
.subTtl {
	margin-bottom: 40px;
	font-size: 1rem;
	color: #1b3c7c;
	font-weight: bold;
}
.cntTxt {
	font-size: 1rem;
	color: #000;
	line-height: 2.1;
}

.btn {
	display: block;
	margin: auto;
	text-align: center;
	background: #002669;
}
.btn:hover {
	opacity: .5;
}

/* module
--------------------------------*/
/* flex */
.flex_container {
	display: flex;
	display: -webkit-box;
	display: -moz-box;
	display: -ms-flexbox;
	display: -webkit-flex;
}

.align_items_center {
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

.align_items_fe {
	-webkit-box-align: end;
	-ms-flex-align: end;
	align-items: flex-end;
}

.columnwise_flex {
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
}

.justify_center {
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
}

.justify_sa {
	-ms-flex-pack: distribute;
	justify-content: space-around;
}

.justify_sb {
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.rowwise_flex {
	-webkit-box-orient: horizontal;
	-webkit-box-direction: normal;
	-ms-flex-direction: row;
	flex-direction: row;
}

.wrapped_flex {
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.clearfix::after {
	content: "";
	display: block;
	clear: both;
}

.display_block {
	display: block;
}

.sp_only {
	display: none;
}

.hidden {
	display: none;
}

img {
	/*display: block;
	height: auto;*/
	max-width: 100%;
	height: auto;
	-webkit-backface-visibility: hidden;
}

.capsule {
	border-radius: 10000px;
}
.circle_corner {
	border-radius: 10px;
}

.indent {
	padding-left: 1em;
	text-indent: -1em;
}
.bold {
	font-weight: bold;
}
.text_align_right {
	text-align: right;
}
.text_align_left {
	text-align: left;
}
.text_align_justify {
	text-align: justify;
	line-break: strict; /* 禁則処理 */
}

.txt_main_color {
	color: #0c3270;
}

a {
	-moz-transition: all .5s ease 0s;
	-webkit-transition: all .5s ease 0s;
	-o-transition: all .5s ease 0s;
	-ms-transition: all .5s ease 0s;
	transition: all .5s ease 0s;
	color: #fff;
}

.visibility_hidden {
	visibility: hidden; /* 一時的に要素のスペースを保ったまま要素を隠す際に使用 */
}


/* loading fade [JS]
--------------------------------*/
#loading{
	width: 32px;
	height: 32px;
	display: none;
	position: fixed;
	top: 50%;
	left: 50%;
	margin-top: -16px;
	margin-left: -16px;
	z-index: 99999;
}

#fade {
	width: 100%;
	height: 100vh;
	display: none;
	background-color: #FFFFFF;
	position: fixed;
	top: 0px;
	left: 0px;
	z-index: 99998;
}

header.hidden,
main.hidden,
footer.hidden {
	display: none;
}


/* header
--------------------------------*/
header {
	position: fixed;
	height: 90px;
	background: #fff;
	z-index: 999;
}
#header_logo {
	display: block;
	padding-top: 17px;
	padding-bottom: 17px;
	width: 230px;
	height: auto;
}
#header_logo img {
	-webkit-backface-visibility: hidden; /*Chromeで画像がぼやける対策*/
}
.logoWrap {
	padding-top: 13px;
	padding-bottom: 13px;
	text-align: left;
}
header .buy_btn {
	width: 280px;
	padding: 20px 0 18px;
	font-size: 1.125rem;
	margin: inherit;
}
header .buy_btn:hover {
	opacity: .5;
}

/* main
--------------------------------*/
/* kv */
#kv {
	height: 333px;
	margin-top: 90px;
	background: url(../img/kv_bg.png) no-repeat center center;
	background-size: cover;
}
#kv h1{
	padding-top: 98px;
}
#kv .copy {
	margin-top: 20px;
	margin-bottom: 30px;
	font-size: 1.75rem;
	line-height: 1.32;
	color: #222b34;
	text-align: left;
}
#kv .campaign_message {
	display: block;
	width: 325px;
	padding: 20px 0;
	background-color: #4f7ce3;
	color: #ffffff;
	font-size: 1.125rem;
	font-weight: bold;
}
#kv .campaign_message:hover {
	opacity: .5;
}

/* nav */
#nav {
	color: #fff;
	background-color: #072d8e;
}
#nav .menu {
margin-left:105px;
	justify-content: space-evenly;
}
#nav li {
	
}

#nav li a {
	display: block;
	padding: 40px 0;
	width: 100%;
	font-size: 1rem;
}
#nav li a:hover {
	opacity: 0.5;
}


/* about */
#about {
	background: #fff;
	background-size: auto 100%;
}
#about .about_img_wrapper {
	min-width: 1000px;
	max-width: 1600px;
	margin: 0 auto 28px;
}
#about .inner {
	padding: 90px 0 95px;
}
#about .cntTxt {
	width: 770px;
	margin: auto;
	line-height: 2;
}
#about .btn {
	width: 64.9%;
	padding: 24px;
	font-size: 1rem;
	margin-top: 25px;
	line-height: 1;
}


/* features */
#features {
	background-color: #d8e4fe;
}
#features .inner {
	padding: 95px 0;
}
#content01 {
	justify-content: space-between;
}
#content01 li {
	width: 33.3%;
}
#content01 li:nth-of-type(1),
#content01 li:nth-of-type(2) {
	margin-right: 3%;
}
#content01 li:nth-of-type(1) {
	background: url(../img/newfeatures_icon01.png) no-repeat center 56px / 180px auto;
}
#content01 li:nth-of-type(2) {
	background: url(../img/newfeatures_icon02.png) no-repeat center top / 255px auto;
}
#content01 li:nth-of-type(3) {
	background: url(../img/newfeatures_icon03.png) no-repeat center 35px / 138px auto;
}
#content01 h3 {
	padding: 32px 0;
	margin-top: 185px;
	font-size: 1.125rem;
	color: #1f191a;
	line-height: 1.5;
	font-weight: bold;
}

#content01 .ls {
	letter-spacing: -0.3px;
}

#features p.cntTxt {
	padding: 0 20px 40px;
	font-size: 0.875rem;
	line-height: 1.9;
}


/* contents */
#contents {
	background-color: #c1cfef;
	text-align: center;
}
#contents .inner {
	padding: 95px 25px;
}
#contents .subTtl {
	margin-bottom: 50px;
}
#contents .contents_img_wrapper {
	min-width: 1000px;
	max-width: 1600px;
	padding: 20px 0;
	margin: auto;
	background: url(../img/pc_contents_bg_allitems.png) no-repeat center center;
	background-size: cover;
}

#contents .contents_box_wrap:not(:last-child) {
	margin-bottom: 1rem;
}
#contents .contents_box {
	width: 32.6%;
	padding: 40px;
	background-color: #ffffff;
	color: #072d8e;
	text-align: left;
}
#contents .contents_box dt {
	font-weight: bold;
	font-size: 1.125rem;
	line-height: 1.5;
	margin-bottom: 20px;
}
#contents .contents_box dd {
	font-size: 1rem;
	line-height: 1.75;
}

#contents .faq {
	border-top: solid 1px #9ca1ae;
}
#contents .faq:last-of-type {
	border-bottom: solid 1px #9ca1ae;
}
#contents dt,
#contents dd {
	padding: 3.15% 6.3%;
	text-align: left;
}
#contents dd {
	border-top: solid 1px #9ca1ae;
	line-height: 1.75;
	font-size: 1rem;
}
#contents dt.question {
	position: relative;
	margin-bottom: 0;
	font-size: 1.25rem;
	line-height: 1;
	text-decoration: none;
	color: #272c49;
	background-repeat: no-repeat;
	background-position: 27px center;
	cursor: pointer;
	z-index: 0;
}
#contents dt.question span.arrow {
	position: absolute;
	top: 0;
	right: 0;
	display: block;
	width: 100%;
	height: 100%;
	background: url(../img/arrow01.png) no-repeat 1.89% 50% / 2.3% auto ;
	z-index: 1;
}
#contents dd.answer {
	background-color: #efefef;
}

/* open クラス付与時のスタイル */
#contents dt.question.open {
	background-color: #efefef;
}
#contents dt.question.open span.arrow {
	background-image: url(../img/arrow02.png);
}

/* onMouse クラス付与時のスタイル */
#contents dt.question.onMouse {
	background-color: #efefef;
}

/* open & onMouse クラス両方付与時のスタイル */
#contents dt.question.open.onMouse span.arrow {
	background-image: url(../img/arrow02.png);
}


/* campaign */
#campaign {
	background-color: #d1d8eb;
}
#campaign .inner {
	padding: 95px 25px;
}

#campaign .campaign_catch_box {
	background: url(../img/campaign_bg.png) no-repeat top center / 100% auto;
	margin-bottom: 75px;
	padding: 60px;
	color: #072d8e;
}
#campaign .campaign_catch_box h4 {
	font-size: 2.25rem;
	font-weight: bold;
	padding: 20px 0;
}
#campaign .campaign_catch_box p {
	font-size: 1.125rem;
}
#campaign .campaign_catch_box .text01 {
	color: #1b3c7c;
	line-height: 40px;
	background: url(../img/campaign_hukidasi.png) no-repeat center center / 32.2% auto;
}
#campaign .campaign_catch_box .text02 {
	line-height: 2;
	color: #000;
}
#campaign .campaign_box {
	width: 47.89%;
}
#campaign .campaign_box.type_a {
	background: #ffffff url(../img/campaign_hukidasi01.png) no-repeat top center / 100% auto;
}
#campaign .campaign_box.type_b {
	background: #ffffff url(../img/campaign_hukidasi02.png) no-repeat top center / 100% auto;
}
#campaign .campaign_box.left {
	margin-right: 30px;
}
#campaign .campaign_box dt {
	padding: 31px 0;
	margin-bottom: 1rem;
	font-size: 1.375rem;
	color: #ffffff;
	font-weight: bold;
}
#campaign .campaign_box dt span {
	display: inline-block;
	border-bottom: solid 1px;
}
#campaign .campaign_box dd {
	padding: 30px;
	font-size: 0.937rem;
	color: #0c3270;
	line-height: 1.8;
	text-align: justify;
	line-break: strict;
}
#campaign .campaign_box .title {
	font-size: 1.875rem;
	text-align: center;
	line-height: 1.33;
	margin-bottom: 20px;
}
#campaign .campaign_box .title span {
	display: block;
	color: #0862d0;
}
#campaign .campaign_box .text {
	font-size: 1rem;
	line-height: 1.5;
	margin-bottom: 15px;
}
#campaign .campaign_box .ex {
	display: table;
	font-size: .875rem;
}
#campaign .campaign_box .ex span {
	display: table-cell;
}
#campaign .campaign_box .ex span.mark {
	padding-right: .5rem;
}


/* price */
#price {
	background: #fff;
}
#price .inner {
	padding: 90px 25px 100px;
}

#price .price_box {
	width: 47.89%;
	padding: 50px 30px;
	background-color: #d1d8eb;
}
#price .price_box.left {
	margin-right: 30px;
}
#price .price_box div {
	margin-top: 48px;
}
#price .price_box dt {
	margin-bottom: 48px;
	font-size: 1.437rem;
	font-weight: bold;
}
#price .price_box dt span {
	text-decoration: underline;
}
#price .price_box dd {
	font-size: 0.937rem;
	color: #0c3270;
	line-height: 1.8;
	text-align: justify;
	line-break: strict;
}
#price .price_box p {
	text-align: center;
}
#price .price_box .text {
	font-size: 1rem;
	font-weight: bold;
}
#price .price_box .price {
	font-size: 2.062rem;
}
#price .price_box .price span {
	font-size: 1.5rem;
	color: #777f8d;
	text-decoration: line-through;
	padding-left: 1rem;
}
#price .price_box .price_img {
	display: block;
	margin: auto;
}

#price .btn {
	width: 100%;
	padding: 14px;
	font-size: 1.25rem;
	line-height: 1;
}


#acp_member {
	padding-top: 95px; /* ページ内リンク位置調整用マージン */
	margin-bottom: 20px;
	color: #000;
}
#acp_member h4 {
	font-size: 1.5rem;
	margin-bottom: 20px;
}
#acp_member p {
	font-size: 1.062rem;
	margin-bottom: 30px;
}

#acp_member .btn {
	width: 52.6%;
	padding: 20px;
	font-size: 1.125rem;
}


/* footer
--------------------------------*/
footer {
	width: 100%;
	height: auto;
	padding-bottom: 50px;
	font-size: 16px;
	color: #032844;
	background-color: #f3f3f3;
	box-sizing: border-box;
}

footer .inner {
	padding-top: 70px;
}

footer .logo_link {
	display: block;
	width: 100px;
	margin: 0 auto 45px;
}
footer br {
	display: none;
}
footer small {
	display: block;
	margin-top: 40px;
	font-size: 10px;
}

footer .page_top a{
	display: block;
	width: 100%;
	height: 40px;
	background: #dcdcdc url(../img/btn_top.png) no-repeat center center;
}
footer .page_top a:hover{
	opacity: 0.7;
}


/*** 調整用メディアクエリ ***/
@media screen and (min-width:641px) and (max-width:1000px){

}


/****** responcive:smartphone ******/
@media screen and (max-width: 640px) {

/* common:sp
--------------------------------*/
	html {
		font-size: 24px;
		font-size: calc(0% + 2.5vw);
	}

	body {
		min-width: auto;
	}

	header,
	main,
	section,
	footer {
		max-width: none;
	}

	.inner {
		padding: 0 3%;
		min-width: auto;
		max-width: none;
	}

	.cntWrapper {
		padding: 0 3%;
	}

	.flex_container {
		display: block;
	}

	.pc_only {
		display: none;
	}
	.sp_only {
		display: block;
	}

	.middle_heading {
		font-size: 3.125rem;
		font-weight: bold;
		margin-bottom: 1.25rem;
	}

	.subTtl {
		margin-bottom: 10%;
		font-size: 1.875rem;
	}

	.cntTxt {
		font-size: 1.75rem;
	}

/* header:sp
--------------------------------*/
	header {
		height: auto;
		min-width: auto;
	}
	header .logoWrap {
		padding: 0;
	}
	#header_logo {
		width: 52.3%;
		height: auto;
		padding: 3.125% 0;
	}


/* main:sp
--------------------------------*/
/* kv */
	#kv {
		margin-top: 12.5%;
		height: auto;
		background: url(../img/sp_kv_bg.png) no-repeat center top;
		background-size: 100% auto;
	}
	#kv h1 {
		padding: 77.5% 2.5% 0;
		margin-bottom: 5.8%;
	}
	#kv h1 img {
		width: 100%;
	}
	#kv .copy {
		margin-top: 5%;
		margin-bottom: 7.5%;
		font-size: 2rem;
		line-height: 1.73;
		text-align: center;
	}
	#kv p {
		width: 68%;
		margin: auto;
	}


/* nav */
	#nav {
		background: #fff;
	}
	#nav li {
		width: 100%;
		padding: 0 2.5%;
		box-sizing: border-box;
	}
	#nav li a {
		padding: 8.3% 0;
		font-size: 2.5rem;
		background: #113677;
}
	#nav li a.arrow {
		padding-top: 0;
		margin-top: 3.5rem;
		color: #222b34;
		font-size: 2.125rem;
		line-height: 1;
		background: url(../img/nav_arrow_bk_sp.gif) no-repeat center 80%;
		background-size: 11px auto;
	}

/* about */
	#about {
		height: auto;
		background:#fff url(../img/about_bg_sp.jpg) no-repeat center bottom;
		background-size: 100% auto;
	}
	#about .about_img_wrapper {
		min-width: auto;
		max-width: none;
		margin: 0 auto 10%;
	}
	#about .inner {
		padding: 8.3% 0 15%;
	}
	#about .cntTxt {
		width: 100%;
		line-height: 1.93;
		color: #113872;
		text-align: justify;
	}
	#about .btn {
		width: 100%;
		font-size: 1.875rem;
		line-height: 1.53;
		padding: 4.16% 0;
	}

/* features */
	#features .inner {
		padding: 15.6% 0 14.8%;
	}
	#features p.cntTxt {
		padding: 0 7.5% 0;
		font-size: 1.75rem;
		line-height: 1.64;
	}

	#content01 h3 {
		min-height: auto;
		padding-bottom: 0;
		margin-top: 0;
		margin-bottom: 1rem;
		font-size: 2.5rem;
	}
	#content01 li {
		width: 100%;
		margin-bottom: 10.83%;
		max-width: none;
	}
	#content01 li:nth-of-type(1),
	#content01 li:nth-of-type(2) {
		padding-right: 0;
	}
	#content01 li:nth-of-type(1) {
		background: url(../img/newfeatures_icon01.png) no-repeat center top / 44.16% auto;
	}
	#content01 li:nth-of-type(2) {
		background: url(../img/newfeatures_icon02.png) no-repeat center top / 60% auto;
	}
	#content01 li:nth-of-type(3) {
		background: url(../img/newfeatures_icon03.png) no-repeat center top / 31.66% auto;
		margin-bottom: 0;
	}
	#content01 li:nth-of-type(1),
	#content01 li:nth-of-type(2) {
		margin-right: 0;
	}
	#content01 li:nth-of-type(1) h3 {
		padding-top: 31%;
	}
	#content01 li:nth-of-type(2) h3 {
		padding-top: 48.3%;
	}
	#content01 li:nth-of-type(3) h3 {
		padding-top: 33.3%;
	}


/* contents */
	#contents .inner {
		padding: 15.6% 0 14.8%;
	}
	#contents .middle_heading {
		line-height: 1.2;
	}

	#contents dt,
	#contents dd {
		padding: 6.66% 14.1%;
	}

	a#btn01 {
		width: 88%;
		height: 35px;
		margin-top: 35px;
		line-height: 35px;
		font-size: 1.25rem;
	}

	#contents .subTtl {
		margin-bottom: 10%;
	}
	#contents .contents_img_wrapper {
		min-width: auto;
		max-width: none;
		background: none;
		padding: 0;
	}
	#contents dt.question {
		padding: 6.66% 14.1%;
		font-size: 2.25rem;
		line-height: 1.33;
		font-weight: bold;
	}
	#contents dt.question span.arrow {
		background: url(../img/arrow01.png) no-repeat 4.16% 50% / 5.8% auto;
	}

	#contents dt.question.open {
		background: #efefef url(../img/arrow02.png) no-repeat 4.16% 50% / 5.8% auto;
	}

	#contents dd.answer {
		font-size: 1.75rem;
		line-height: 1.9;
		text-align: justify;
	}



/* campaign */
	#campaign .inner {
		padding: 15.6% 0 14.8%;
	}
	#campaign .campaign_box {
		width: 100%;
	}

	#campaign .campaign_catch_box {
		background: url(../img/sp_campaign_bg.png) no-repeat top center / 100% auto;
		margin-bottom: 12.5%;
		padding: 10.16% 0;
	}
	#campaign .inner {
		padding: 15.6% 0 14.8%;
	}
	#campaign .subTtl {
		margin-bottom: 11.6%;
	}
	#campaign .campaign_catch_box p {
		font-size: 1.75rem;
	}
	#campaign .campaign_catch_box .text01 {
		background: url(../img/sp_campaign_hukidasi.png) no-repeat center center / 66.6% auto;
	}
	#campaign .campaign_catch_box h4 {
		font-size: 2.75rem;
		padding: 3.2% 0;
	}

	#campaign .campaign_box dt {
		padding: 5.9% 0;
		font-size: 2.25rem;
	}
	#campaign .campaign_box.left {
		margin-right: 0;
		margin-bottom: 10.9%;
	}

	#campaign .campaign_box .title {
		font-size: 2.5rem;
		line-height: 1.25;
		margin-bottom: 3.88%;
	}
	#campaign .campaign_box .text {
		font-size: 1.75rem;
		line-height: 1.9;
		margin-bottom: .6rem;
	}
	#campaign .campaign_box .ex {
		font-size: 1.5rem;
		line-height: 1.5;
	}

/* price */
	#price .inner {
		padding: 15.6% 0 32%;
	}
	#price .innerWrap {
		background: #f3f3f3;
	}

	#price .price_box {
		width: 100%;
		padding: 10.83% 0;
	}
	#price .price_box dt {
		font-size: 2.5rem;
		margin-bottom: 5%;
	}
	#price .price_box .text {
		font-size: 1.75rem;
	}
	#price .price_box .price {
		font-size: 2.75rem;
	}
	#price .price_box .price span {
		font-size: 2.125rem;
		padding-left: 2rem;
	}
	#price .btn {
		width: 80%;
		font-size: 2.5rem;
		padding: 6.4% 0;
	}
	#price .price_box.left {
		margin-right: 0;
		margin-bottom: 10%;
	}

	#acp_member {
		padding-top: 10.8%;
		margin-bottom: 0;
	}
	#acp_member h4 {
		font-size: 2.5rem;
		margin-bottom: 5.83%;
	}
	#acp_member p {
		font-size: 1.75rem;
		line-height: 2.07;
		margin-bottom: 5%;
	}
	#acp_member .btn {
		width: 100%;
		font-size: 1.875rem;
		line-height: 1.53;
		padding: 4% 0;
	}


/* footer:sp
--------------------------------*/
	footer {
		min-width: auto;
		margin-top: 0;
		font-size: .75rem;
		line-height: 24px;
	}
	footer .inner {
		padding-top: 16.4%;
	}
	footer .logo_link {
		width: 33.3%;
		margin: 0 auto 7.5%;
	}
	footer img {
		width: 100%;
	}
	footer .page_top a {
		min-width: auto;
		background: #dcdcdc url(../img/btn_top_sp.png) no-repeat center center;
		background-size: 5.15% auto;
	}
	footer br {
		display: block;
	}
	footer .address {
		font-size: 1.5rem;
	}
	footer small {
		margin-top: 10%;
	}

}
