@charset "UTF-8";
/*==============================================================================
1.共通事項
2.ファーストビュー
3.イントロ
4.説明
==============================================================================*/

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

	1.共通事項

==============================================================================================================================================================
============================================================================================================================================================*/
html {
    font-size: 10px;
}

body {
    font-size: var(--fontsize-base);
    font-family: var(--font-base);
    color: var(--color-font);
    letter-spacing: var(--letter-spacing);
    line-height: var(--lingh-height);
}

/*============ リンク ============*/
a {
    font-family: var(--font-base);
    color: var(--color-main);
    transition: 500ms;

    &:hover {
        opacity: 0.6;
        color: var(--color-main);
    }
}

/*============ フォント ============*/
[lang="en"] {
    font-family: var(--font-en);
}

/*============ selection ============*/
::selection {
    background: var(--color-sub);
    color: var(--color-font);
}

/*================================    表示・非表示   ================================*/
@media all and (min-width: 769px) {
    .only-sp {
        display: none !important;
    }
}

@media all and (max-width: 768px) {
    .only-pc {
        display: none !important;
    }
}

/*================================    inner   ================================*/
.inner {
    margin: 0 auto;
}
@media all and (min-width: 769px) {
    .inner {
        padding: 0 20px;
        max-width: calc(var(--min-width) + 40px);
    }
}
@media all and (max-width: 768px) {
    .inner {
        &.pdg-20_sp{
            padding: 0 20px;
        }
        &.pdg-40_sp{
            padding: 0 40px;
        }
    }
}

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

	2.ファーストビュー

==============================================================================================================================================================
============================================================================================================================================================*/
#fv{
	height: 530px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;

	& .logo{
		order: 2;
	}
	& .bg{
		order: 1;
		min-width: 100%;
		text-align: center;
	}
}
@media all and (min-width: 769px) {
	#fv{
		height: 780px;
		position: relative;

		& .logo{
			position: relative;
			z-index: 2;
			
			& img{
				width: 358px;
			}
		}
		& .bg{
			position: absolute;
			top: 50%;
			left: 50%;
			transform: translate(-50%,-50%);
			z-index: 1;

			& img{
				width: 1020px;
			}
		}
	}
}

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

	3.イントロ

==============================================================================================================================================================
============================================================================================================================================================*/
#intro{
	height: 110px;
	display: flex;
	align-items: center;
	background-color: var(--color-main);

	& .inner{
		color: #fff;
		text-align: center;
		font-weight: var(--weight-bold);
		letter-spacing: 0.2em;
	}
}
@media all and (min-width: 769px) {
	#intro{
		height: 310px;

		& .inner{
			font-size: 4rem;
		}
	}
}


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

	4.説明

==============================================================================================================================================================
============================================================================================================================================================*/
#desc{
	padding-top: 40px;
	padding-bottom: 40px;
	text-align: center;
	font-weight: var(--weight-bold);

	& h2{
		padding: 0 20px 20px;
		display: inline-block;
		position: relative;
		font-size: 1.9rem;

		&::after{
			content: "";
			width: 100%;
			height: 4px;
			display: block;
			bottom: 0;
			left: 0;
			position: absolute;
			z-index: 1;
			background: url("data:image/svg+xml;utf8,\<svg xmlns='http://www.w3.org/2000/svg' width='10' height='4'>\<circle cx='2' cy='2' r='2' fill='%237da0b2'/>\</svg>") repeat-x center;
		}
	}

	& p{
		margin-top: 20px;
		font-size: 1.2rem;
		line-height: 2.5;
	}

	& .inner{
		padding-top: 40px;
		padding-bottom: 40px;
		position: relative;

		& .deco{
			position: absolute;
			aspect-ratio: 1 / 1;
			border-radius: 100%;
			overflow: hidden;

			&.top.left.lsize{
				width: 40px;
				top: 0;
				left: 30px;
				background-color: #adc8d1;
			}
			&.top.left.ssize{
				width: 22px;
				top: 40px;
				left: 10px;
				background-color: #e0ebee;
			}
			&.top.right.ssize{
				width: 17px;
				top: 20px;
				right: 30px;
				background-color: #e0ebee;
			}
			&.btm.right.ssize{
				width: 27px;
				bottom: 35px;
				right: 12px;
				background-color: #adc8d1;
			}
			&.btm.right.lsize{
				width: 46px;
				bottom: 0px;
				right: 45px;
				background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='8'><circle cx='2' cy='2' r='1' fill='%23789baf'/><circle cx='7' cy='6' r='1' fill='%23789baf'/></svg>") repeat center;
				background-size: 10px 8px;
			}
		}
	}
}
@media all and (min-width: 769px) {
	#desc{
		padding-top: 50px;
		padding-bottom: 50px;

		& h2{
			padding: 0 20px 30px;
			display: block;
			font-size: 3rem;

			&::after{
				content: "";
				width: 100%;
				height: 4px;
				display: block;
				bottom: 0;
				left: 0;
				position: absolute;
				z-index: 1;
				background: url("data:image/svg+xml;utf8,\<svg xmlns='http://www.w3.org/2000/svg' width='10' height='4'>\<circle cx='2' cy='2' r='2' fill='%23789baf'/>\</svg>") repeat-x center;
			}
		}

		& p{
			margin-top: 40px;
			font-size: 1.8rem;
			line-height: 2.5;
		}

		& .inner{
			padding-top: 60px;
			padding-bottom: 75px;
			width: 600px;

			& .deco{

				&.top.left.lsize{
					width: 77px;
					left: -80px;
				}
				&.top.left.ssize{
					width: 48px;
					top: 90px;
					left: -130px;
				}
				&.top.right.ssize{
					width: 50px;
					top: 90px;
					right: -130px;
				}
				&.btm.right.ssize{
					width: 52px;
					bottom: 60px;
					right: -140px;
				}
				&.btm.right.lsize{
					width: 90px;
					bottom: 0px;
					right: -80px;
					background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='8'><circle cx='2' cy='2' r='1.5' fill='%23789baf'/><circle cx='7' cy='6' r='1.5' fill='%23789baf'/></svg>") repeat center;
					background-size: 10px 8px;
				}
			}
		}
	}
}



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

	5.フッター

==============================================================================================================================================================
============================================================================================================================================================*/
footer{
	padding-top: 50px;
	padding-bottom: 30px;
	position: relative;
	background-color: #c9d9de;

	&::before{
		content: "";
		width: 100%;
		height: 20px;
		position: absolute;
		top: -20px;
		left: 0;
		background: url(../img/wave_sp.svg) repeat-x center bottom / auto 20px;
	}

	& h2{
		text-align: center;

		& span{
			display: block;
			font-weight: var(--weight-bold);

			&[lang="ja"]{
				font-size: 2rem;
			}

			&[lang="en"]{
				font-family: var(--font-base);
				color: var(--color-sub);
			}
		}
	}

	& .address{
		margin-top: 25px;
		display: flex;
		flex-direction: column;

		& .detail{
			margin-top: 20px;
			order: 2;

			& h3{
				text-align: center;
				color: var(--color-sub);
				font-size: 1.7rem;
			}

			& address{
				margin-top: 10px;
				font-family: var(--font-sub);
				font-size: 1.3rem;
			}

			& p{
				margin-top: 10px;
				font-family: var(--font-sub);
				font-size: 1.4rem;
			}
		}
		& iframe{
			order: 1;
			width: 100%;
			height: auto;
			aspect-ratio: 2 / 1;
		}
	}

	& .copyright{
		margin-top: 60px;
		font-size: 1.2rem;
		text-align: center;
	}
}
@media all and (min-width: 769px) {
	footer{
		padding-top: 70px;
		padding-bottom: 30px;

		&::before{
			height: 50px;
			top: -50px;
			background: url(../img/wave_sp.svg) repeat-x center bottom / auto 50px;
		}

		& h2{
			& span{
				&[lang="ja"]{
					font-size: 3rem;
				}

				&[lang="en"]{
					font-size: 2.2rem;
				}
			}
		}

		& .address{
			margin-top: 60px;
			flex-direction: row;
			align-items: center;

			& .detail{
				margin-top: 0px;
				padding-left: 40px;
				width: 50%;

				& h3{
					text-align: left;
					font-size: 2.2rem;
				}

				& address{
					margin-top: 20px;
					font-size: 1.6rem;
				}

				& p{
					margin-top: 30px;
					font-size: 1.6rem;
				}
			}
			& iframe{
				width: 50%;
				aspect-ratio: 3 / 2;
			}
		}
	}
}