@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Outfit:wght@100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

@import url("reset.css");

/* 共通定義
=========================================================================*/
* {
	margin: 0;
	padding: 0;
}

body {
	position: relative;
	overflow-x: hidden;
	margin: 0 !important;
	padding: 0 !important;
	font-family: "Roboto", "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Noto Sans JP", YuGothic, "Yu Gothic Medium", "Yu Gothic", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	font-weight: 400;
	font-size: 16px;
	line-height: 2em;
	color: #302D2C;
	text-align: left;
	background-color: #FFF;
}


/* 画像サイズ
-----------------------------------------------------------*/
img {
	overflow: hidden;
	width: 100%;
	height: auto;
}
picture {
	display: block;
}

/* デスクトップ・スマホ分岐
-----------------------------------------------------------*/
.pc {
	display: block;
}

.sp {
	display: none;
}

/* ヘッダー
-----------------------------------------------------------*/
header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 90px;
	background-color: #FFF;
	z-index: 10;
	transition: 0.3s;
}

/* ----- ロゴ ----- */
header a.logo {
	overflow: hidden;
	display: block;
	position: absolute;
	top: 13px;
	left: 30px;
	width: 133px;
	height: 63px;
	transition: 0.3s;
}

@media(hover: hover) {
	header a.logo:hover {
		opacity: .7;
	}
}

/* ----- グローバルメニュー ----- */
header nav {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0 60px;
	height: 100%;
}

header nav ul {
	display: flex;
	justify-content: space-between;
	gap: 0 50px;
	width: fit-content;
}

header nav ul li a {
	position: relative;
	display: block;
	font-weight: 500;
	font-size: 16px;
}

header nav ul li a::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: -5px;
	width: 100%;
	height: 2px;
	background-color: #A1AEBA;
	transform: scale(0, 1);
	transform-origin: left;
	transition: 0.6s;
}

@media(hover: hover) {
	header nav ul li a:hover::before {
		transform: scale(1, 1);
	}
}

/* ----- お問い合わせ ----- */
header a.button_inquiry {
	overflow: hidden;
	position: relative;
	display: block;
	width: 200px;
	height: 90px;
	font-weight: 500;
	font-size: 16px;
	letter-spacing: .1em;
	line-height: 90px;
	color: #FFF;
	text-align: center;
	background-color: #54A487;
	z-index: 2;
	transition: 0.3s;
}

header a.button_inquiry span::after {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: #148571;
	transform: scale(0, 1);
	transform-origin: left;
	z-index: -1;
	transition: 0.6s;
}

@media(hover: hover) {
	header a.button_inquiry:hover span::after {
		transform: scale(1, 1);
	}
}

/* ----- Hamburger Menu ----- */
header .icon_animation {
	display: none;
}


header .icon_close {
	display: none;
}

/* 複数ページ共通
-----------------------------------------------------------*/
main {
	overflow: hidden;
	position: relative;
}

article {
	overflow: hidden;
	position: relative;
}

/* ----- クリップパスアニメーション ----- */
.clip {
	overflow: hidden;
	clip-path: inset(0 100% -20% 0);
	transition: clip-path 1s cubic-bezier(0.19, 1, 0.22, 1);
	transition-delay: 0s;
}

.clip.active {
	overflow: visible !important;
	clip-path: inset(0 0 -20% 0);
}

/* フッター
-----------------------------------------------------------*/
footer {
	position: relative;
	padding: 80px 0 40px;
	color: #FFF;
	background-image: linear-gradient(-45deg, #138473, #44AD31);
}

footer .button_pagetop {
	position: absolute;
	top: 15px;
	right: 15px;
	width: 50px;
	height: 50px;
	background-color: #FFF;
	border-radius: 25px;
	box-shadow: 0 3px 6px rgba(0, 0, 0, .16);
	cursor: pointer;
	transition: 0.6s;
}

@media(hover: hover) {

	footer .button_pagetop:hover {
		transform: scale(1.25, 1.25);
	}
}

footer .button_pagetop .arrow {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	display: inline-block;
	width: 16px;
	height: 9.3px;
}

footer .button_pagetop .arrow::before,
footer .button_pagetop .arrow::after {
	content: "";
	position: absolute;
	top: 0;
	left: calc(50% - 1px);
	width: 2px;
	height: 12.1px;
	border-radius: 9999px;
	background-color: #148572;
	transform-origin: 50% 1px;
}

footer .button_pagetop .arrow::before {
	transform: rotate(43.8deg);
}

footer .button_pagetop .arrow::after {
	transform: rotate(-43.8deg);
}

footer .inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin: 0 auto;
	max-width: 1100px;
}

@media screen and (max-width:1140px) {
	footer .inner {
		padding: 0 20px;
	}
}

/* フッター：会社情報
-----------------------------------------------------------*/
footer .footer_info {
	width: fit-content;
}

footer .footer_info h2 {
	margin-bottom: 10px;
	font-weight: 600;
	font-size: 30px;
}

footer .footer_info .address {
	margin-bottom: 10px;
	font-size: 18px;
}

footer .footer_info .tel {
	position: relative;
	margin-bottom: 20px;
	padding: 5px 0 5px 46px;
	font-weight: 600;
	font-size: 40px;
}

footer .footer_info .tel::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 36px;
	height: 100%;
	background: url(../images/common/footer_icon_tel.svg) no-repeat;
	background-size: contain;
}

footer .footer_info .copyright {
	font-weight: 300;
	font-size: 14px;
}

/* フッター：お問い合わせ
-----------------------------------------------------------*/
footer .footer_inquiry {
	width: fit-content;
}

footer .footer_inquiry p {
	margin-bottom: 20px;
	font-weight: 600;
	font-size: 26px;
}

footer .footer_inquiry a.form {
	position: relative;
	display: block;
	margin-bottom: 40px;
	height: 70px;
	font-weight: 600;
	font-size: 20px;
	line-height: 70px;
	text-align: center;
	border: 1px solid #FFF;
	z-index: 2;
	transition: 0.3s;
}

@media(hover: hover) {
	footer .footer_inquiry a.form:hover {
		color: #148571;
	}
}

footer .footer_inquiry a.form::after {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: #FFF;
	transform: scale(0, 1);
	transform-origin: left;
	z-index: -1;
	transition: 0.6s;
}

@media(hover: hover) {

	footer .footer_inquiry a.form:hover::after {
		transform: scale(1, 1);
	}
}

footer .footer_inquiry a.form .arrow {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 20px;
	margin: auto 0;
	display: inline-block;
	width: 25px;
	height: 1px;
	border-radius: 9999px;
	background-color: #FFF;
	transition: 0.6s;
}

footer .footer_inquiry a.form .arrow::before {
	content: "";
	position: absolute;
	top: calc(50% - 0.5px);
	right: 0;
	width: 7px;
	height: 1px;
	border-radius: 9999px;
	background-color: #FFF;
	transform: rotate(45deg);
	transform-origin: calc(100% - 0.5px) 50%;
	transition: 0.6s;
}

@media(hover: hover) {

	footer .footer_inquiry a.form:hover .arrow {
		right: 10px;
		background-color: #148571;
	}

	footer .footer_inquiry a.form:hover .arrow::before {
		background-color: #148571;
	}
}

footer .footer_inquiry ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0 30px;
	margin-left: auto;
	width: fit-content;
}

footer .footer_inquiry ul li {
	width: 40px;
	height: 40px;
}

footer .footer_inquiry ul li a img {
	transition: 0.6s;
}

@media(hover: hover) {
	footer .footer_inquiry ul li a:hover img {
		transform: scale(1.05, 1.05);
	}
}


/*  1280px以下
=========================================================================
=========================================================================*/
@media screen and (max-width:1280px) {}

/*  1040px以下
=========================================================================
=========================================================================*/
@media screen and (max-width:1040px) {}

/*  950px以下
=========================================================================
=========================================================================*/
@media screen and (max-width:950px) {

/* ヘッダー
	-----------------------------------------------------------*/
	header {
		height: 70px;
	}

	body.fix::before {
		overflow-x: hidden;
		position: fixed;
		display: block;
		content: '';
		top: 0;
		left: 0;
		width: 100vw;
		height: 100vh;
		background-color: #000;
		opacity: .7;
		z-index: 3;
	}

	/* ----- ロゴ ----- */
	header a.logo {
		top: 12px;
		left: 15px;
		width: 98px;
		height: 46px;
	}

	/* ----- グローバルメニュー ----- */
	header nav {
		flex-wrap: wrap;
		gap: 0 50px;
		display: none;
		top: 70px;
		width: 100%;
		height: auto;
		background-color: #FFF;
		z-index: 10;
	}

	header nav ul {
		flex-wrap: wrap;
		gap: 0 0;
		width: 100%;
		text-align: center;
	}

	header nav ul li {
		width: 100%;
	}

	header nav ul li a {
		padding: 18px;
	}

	header nav ul li a::before {
		display: none;
	}

	/* ----- お問い合わせ ----- */
	header a.button_inquiry {
		padding: 18px;
		width: 100%;
		height: auto;
		line-height: 1em;
	}

	/* ----- Hamburger Menu ----- */
	header .icon_close {
		position: absolute;
		top: 0;
		right: 0;
		display: block;
		width: 70px;
		height: 70px;
		cursor: pointer;
	}

	header .icon_animation {
		position: absolute;
		top: 0;
		right: 0;
		display: block;
		width: 70px;
		height: 70px;
		cursor: pointer;
		background-color: #54A487;
		transition: 0.3s;
	}

	header .icon_animation .bar {
		position: absolute;
		left: 20px;
		display: block;
		width: 30px;
		height: 2px;
		background: #FFF;
		transition: all .3s;
		transform-origin: left top;
	}

	header .icon_animation .bar.top {
		top: 27px;
	}


	header .icon_animation .bar.bottom {
		top: 44px;
		transform-origin: left bottom;
	}

	@media(hover: hover) {
		header .icon_animation:hover .bar.top {
			top: 30px;
		}

		header .icon_animation:hover .bar.bottom {
			top: 41px;
		}
	}

	header .icon_animation.is_open .bar.top {
		top: 24px;
		left: 24px;
		transform: rotate(45deg);
	}

	header .icon_animation.is_open .bar.bottom {
		top: 45px;
		left: 24px;
		transform: rotate(-45deg);
	}

	/* フッター：会社情報
	-----------------------------------------------------------*/
	footer .footer_info h2 {
		font-size: calc(30 / 950 * 100vw);
	}

	footer .footer_info .address {
		font-size: calc(18 / 950 * 100vw);
	}

	footer .footer_info .tel {
		font-size: calc(40 / 950 * 100vw);
	}

	footer .footer_info .copyright {
		font-size: calc(14 / 950 * 100vw);
	}

	/* フッター：お問い合わせ
	-----------------------------------------------------------*/
	footer .inquiry p {
		font-size: calc(26 / 950 * 100vw);
	}

	footer .inquiry a.form {
		font-size: calc(20 / 950 * 100vw);
	}

}


/*  767px以下
=========================================================================
=========================================================================*/
@media screen and (max-width:767px) {

	body {
		font-size: 14px;
	}

	article {
		margin-top: 70px;
	}

	/* デスクトップ・スマホ分岐
	-----------------------------------------------------------*/
	.pc {
		display: none;
	}

	.sp {
		display: block;
	}


	/* フッター
	-----------------------------------------------------------*/
	footer {
		padding: 60px 0 80px;
	}

	footer .button_pagetop {
		top: 10px;
		right: 10px;
		width: 40px;
		height: 40px;
	}

	footer .inner {
		flex-direction: column-reverse;
		gap: 40px 0;
	}

	/* フッター：会社情報
	-----------------------------------------------------------*/
	footer .footer_info {
		margin: 0 auto;
	}

	footer .footer_info h2 {
		font-size: 26px;
	}

	footer .footer_info .address {
		font-size: 16px;
	}

	footer .footer_info .tel {
		font-size: 40px;
	}

	footer .footer_info .copyright {
		font-size: 12px;
	}

	/* フッター：お問い合わせ
	-----------------------------------------------------------*/
	footer .footer_inquiry {
		width: 100%;
		text-align: center;
	}

	footer .footer_inquiry p {
		font-size: 20px;
	}

	footer .footer_inquiry a.form {
		margin: 0 auto 30px;
		max-width: 350px;
		font-size: 20px;
	}

	footer .footer_inquiry ul {
		margin: 0 auto;
	}

	footer .footer_inquiry ul li {
		width: 30px;
		height: 30px;
	}
}

/*  480px以下
=========================================================================
=========================================================================*/
@media screen and (max-width:480px) {

	/* フッター：会社情報
	-----------------------------------------------------------*/
	footer .footer_info h2 {
		font-size: calc(26 / 390 * 100vw);
	}

	footer .footer_info .address {
		font-size: calc(16 / 390 * 100vw);
	}

	footer .footer_info .tel {
		font-size: calc(40 / 390 * 100vw);
	}

	/* フッター：お問い合わせ
	-----------------------------------------------------------*/
	footer .footer_inquiry p {
		font-size: calc(20 / 390 * 100vw);
	}

	footer .footer_inquiry a.form {
		font-size: calc(20 / 390 * 100vw);
	}

}

/*  375px以下
=========================================================================
=========================================================================*/
@media screen and (max-width:375px) {}
