@charset "utf-8";


/*=======================================
共通
=======================================*/


@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;500;600;700&family=IBM+Plex+Sans+JP:wght@300;400;500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New&display=swap');



html,body{
	font-size: 16px;
	font-family: -apple-system, 'Lato' , "IBM Plex Sans JP",メイリオ,Meiryo,sans-serif;
	font-weight: 400;
	font-style: normal;
	line-height: 1em;
	color: #222;
	margin: 0;
	padding: 0;
	scroll-behavior: smooth;
	}
@media screen and (max-width: 900px) {
html,body{
	font-size: 14px;
	}
	}

*{
	box-sizing: border-box;
	}

a{
	text-decoration: none;
	}

.pcOnly{
	display: block;
	}
@media screen and (max-width: 900px) {
.pcOnly{
	display: none;
	}
	}

.spOnly{
	display: none;
	}
@media screen and (max-width: 900px) {
.spOnly{
	display: block;
	}
	}

.pci{
	display: inline;
	}
@media screen and (max-width: 900px) {
.pci{
	display: none;
	}
	}

.spi{
	display: none;
	}
@media screen and (max-width: 900px) {
.spi{
	display: inline;
	}
	}

img{
	vertical-align: bottom;
	}

ul,li,p,h1,h2,h3,h4,h5,h6{
	margin: 0;
	padding: 0;
	}

p,h1,h2,h3,h4{
	font-weight: 400;
	font-style: normal;
	}

ul,li{
	list-style: none;
	margin: 0;
	padding: 0;
	}

a,a:hover,a:active{
	color:#000;
	}

/*
officialpartner(共通なのでここに記述)
*/

.officialpartner {
	position: relative;
	width: 130px;
	height: 78px;
	}

.officialpartner a {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	transition: opacity 1s ease-in-out;
	box-sizing: content-box;
	border: 1px solid #ccc;
	z-index:1;
	}

.officialpartner a.active {
	opacity: 1;
	z-index:5;
	}

.officialpartner img {
	display: block;
	width: 100%;
	height: 100%;
	}


.tuka {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 700 !important;
	}


/*
main
*/

main{
	margin-top: 120px;
	}
@media screen and (max-width: 900px) {
main{
	margin-top: 54px;
	}
	}

/*
foot_officialpartners
*/

.foot_officialpartners {
	display:none;
	}
@media screen and (max-width: 900px) {
.foot_officialpartners {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	row-gap: 20px;
	position: relative;
	width: 100%;
	padding: 60px 0 60px;
	background: #fff;
	border-top: 1px solid #ccc;
	}
	}

.foot_officialpartners p a{
	text-decoration: underline;
	}

/*
footer
*/

.jphs{
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	padding: 70px 0;
	border-top: 1px solid #ccc;
	}
@media screen and (max-width: 900px) {
.jphs{
	padding: 50px 0;
	border-bottom:1px solid #ccc;
	}
	}

.jphs img{
	display: block;
	width: 250px;
	}

.jphs p{
	display:inline-block;
	text-align: center;
	width:90%;
	margin: auto;
	margin-top: 20px;
	font-size: .8em;
	line-height: 1.6em;
	}

/*
footer
*/

footer{
	width: 100%;
	}

footer .snssp{
	display:none;
	}
@media screen and (max-width: 900px) {
footer .snssp{
	display:block;
	width: 100%;
	padding: 30px 0 30px;
	background-color: #ededed;
	}
	}

footer .snssp .buttons{
	height: 100%;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	}

footer .snssp .buttons .sns{
	display: flex;
	align-items: center;
	justify-content: center;
	column-gap: 5px;
	}

footer .snssp .buttons .lang{
	display: flex;
	align-items: center;
	justify-content: center;
	color: #aaa;
	margin-top:20px;
	}

footer .snssp .buttons .lang a{
	color: #aaa;
	}

footer .snssp .buttons .lang a:hover{
	color: #000;
	}

.langJP footer .snssp .buttons .lang a.jp{
	color: #000;
	font-weight: 700;
	}

.langEN footer .snssp .buttons .lang a.en{
	color: #000;
	font-weight: 700;
	}

footer .sitemap{
	width: 100%;
	padding: 50px 5%;
	background:#ededed;
	}
@media screen and (max-width: 900px) {
footer .sitemap{
	display: none;
	}
	}

footer .sitemap .col2{
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	/*margin-top: 50px;*/
	}

footer .sitemap .col2 > div{
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	flex-direction: row;
	border-bottom: 1px solid #ccc;
	padding: 20px 0;
	}

footer .sitemap .col2 > div:last-child{
	border-bottom: none;
	}


footer .sitemap .col2 > div > div:first-child{
	width: 160px;
	font-size: 12px;
	}

footer .sitemap .col2 > div > div:last-child{
	width: calc(100% - 160px);
	border-left: 1px solid #ccc;
	padding-left: 20px;
	}

footer .sitemap .col2 > div > div ul{
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	flex-direction: row;
	column-gap: 30px;
	row-gap: 20px;
	flex-wrap: wrap;
	}

footer .sitemap .col2 > div > div ul li{
	white-space: nowrap;
	word-wrap: break-word;
	font-size: 12px;
	}

footer .sitemap .col2 > div > div ul li a:hover{
	text-decoration: underline;
	}

footer .businesspartner{
	width: 100%;
	padding: 50px 10%;
	}

footer .businesspartner .col1{
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: nowrap;
	flex-direction: row;
	column-gap: 30px;
	}
@media screen and (max-width: 900px) {
footer .businesspartner .col1{
	flex-wrap: wrap;
	flex-direction: row;
	row-gap: 30px;
	column-gap: 30px;
	}
	}

footer .businesspartner .col1 img{
	height: 40px;
	}
@media screen and (max-width: 900px) {
footer .businesspartner .col1 img{
	height: 30px;
	}
	}

footer .businesspartner .col2{
	margin-top: 40px;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: nowrap;
	flex-direction: row;
	column-gap: 30px;
	}

footer .businesspartner .col2 img{
	height: 80px;
	}
@media screen and (max-width: 900px) {
footer .businesspartner .col2 img{
	height: 60px;
	}
	}

footer .fin{
	background: #000;
	width: 100%;
	padding: 20px 5%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: nowrap;
	flex-direction: row;
	color:#fff;
	font-size: .8em;
	line-height: 1.8em;
	}
@media screen and (max-width: 900px) {
footer .fin{
	width: 100%;
	padding: 30px 5%;
	flex-direction: column;
	}
	}

footer .fin div{
	width: 100%;
	}

footer .fin div:first-child{
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	}

footer .fin div:last-child{
	display: flex;
	align-items: flex-end;
	flex-direction: column;
	}
@media screen and (max-width: 900px) {
footer .fin div:last-child{
	padding-top: 20px;
	align-items: flex-start;
	}
	}

footer .fin a,
footer .fin a:hover{
	color:#fff;
	}



