@charset "utf-8";
/*------------------------------------------------------------
	汎用スタイル
------------------------------------------------------------*/
/* 81-lyx */
/* clearfix */
.clearfix:after {content: "";display: block;clear: both;}
/* flex */
.flex,.flexA,.flexB,.flexC {display: flex;flex-wrap: wrap;}
.flexA {justify-content: space-around;}
.flexB {justify-content: space-between;}
.flexC {justify-content: center;}
.hiragino {
	font-family:"hiragino-kaku-gothic-pron",sans-serif;
}
/*------------------------------------------------------------
	content
------------------------------------------------------------*/
.content {
	padding: 0 2.1rem;
	margin: 0 auto;
	max-width: 117.7rem;
}
@media all and (max-width: 896px) {
}
/*------------------------------------------------------------
	fixedBox
------------------------------------------------------------*/
/*------------------------------------------------------------
	fixedBox
------------------------------------------------------------*/
.fixedBox {
	position: fixed;
	z-index: 10;
	right: 2rem;
	bottom: 0;
}

.fixedBox ul {
	justify-content: right;
	flex-wrap: nowrap;
	gap: 1.2rem;
}

.fixedBox li {
	width: auto;
}

.fixedBox li:not(:first-child) {
	margin-left: 0;
}

/* 共通（PC/SP） */
.fixedBox a {
	min-height: 8.4rem;
	min-width: 26rem; /* 260px */
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	border-radius: 1.6rem 1.6rem 0 0;
	overflow: visible; /* 黒円がはみ出すのでvisible */
	border: 0.2rem solid #fff;
	border-bottom: 0;
	translate: 0 .4rem;
	position: relative;
	padding: 0 2.2rem;
	white-space: nowrap;

	--badge-shift-x: 1.3rem; /* 黒円＋アイコンをまとめて左右 */
	--badge-shift-y: 0.2rem; /* 黒円＋アイコンをまとめて上下 */
}
/* 左：電話 */
.fixedBox a.fixedTel{
	--icon-shift-x: 0rem;
	--icon-shift-y: 0rem;
}
/* 右：資料請求 */
.fixedBox a.fixedReq{
	--icon-shift-x: 0.15rem;
	--icon-shift-y: 0rem;
}

.fixedBox a:hover { opacity: 0.7; }

/* 黒円：左上角(0,0)を基準に固定 */
.fixedBox a::before {
	width: 4.6rem;
	height: 4.6rem;
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	background: #333;
	border-radius: 50%;
	border: 0.2rem solid #fff;
	box-sizing: border-box;

	/* 円の中心を角に固定（角にピタッと合わせる） */
	transform: translate(-50%, -50%)
		translate(var(--badge-shift-x), var(--badge-shift-y));
}

/* アイコン：黒円と同じ基準に追従 + 個別微調整 */
.fixedBox a::after {
	width: 2.4rem;
	height: 2.4rem;
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;

	/* 円と一緒に動く + アイコンだけ微調整 */
	transform: translate(-50%, -50%)
		translate(var(--badge-shift-x), var(--badge-shift-y))
		translate(var(--icon-shift-x), var(--icon-shift-y));
}

/* ※旧：右だけleft調整は不要になるので削除 */
/* .fixedBox .req a::after { left: 2.95rem; } */


/* 左：電話 */
.fixedBox a.fixedTel {
	background-color: #abfb4f;
	color: #333;
	font-weight: 600;
}

.fixedBox a.fixedTel .txt {
	font-size: 2.6rem;
	letter-spacing: 0.05rem;
}

.fixedBox a.fixedTel::after {
	background-image: url(../img/common/icon_phone.png);
}


/* 右：資料請求・お問い合わせ */
.fixedBox a.fixedReq {
	background-color: #3E55FF;
	color: #fff;
	font-weight: 500;

	/* （任意）右の黒円＋アイコンを“まとめて”少し動かすならここ */
	/* 例：少し右へ → 0.2rem、少し下へ → 0.2rem */
	/* --badge-shift-x: 0.0rem; */
	/* --badge-shift-y: 0.0rem; */

	/* （任意）アイコンだけ微調整するならここ */
	/* --icon-shift-x: 0.0rem; */
	/* --icon-shift-y: 0.0rem; */
}

.fixedBox a.fixedReq .txt {
	font-size: 1.9rem;
	letter-spacing: 0;
}

.fixedBox a.fixedReq::after {
	background-image: url(../img/common/icon99.png);
}

.fixedBox.fade-in { transition: opacity 0.5s ease; opacity: 1; }
.fixedBox.fade-out { transition: opacity 0.5s ease; opacity: 0; }


@media all and (max-width: 896px) {
	.fixedBox {
		width: 100%;
		right: 0;
		bottom: 1.5rem;
	}

	.fixedBox ul {
		justify-content: center;
		gap: 0.7rem;

		/* ★SPで左右が切れないように：黒円のはみ出し分を確保 */
		padding: 0 1rem;
	}

	.fixedBox li {
		margin: 0 !important;
		flex: 1 1 0;
		width: auto;
	}

	.fixedBox a {
		min-height: 7.3rem;
		min-width: 0;
		width: 100%;
		border-radius: 1rem;
		border: 0.2rem solid #fff !important;
		box-shadow: 0.4rem 0.4rem 0.4rem 0 rgba(0, 0, 0, 0.25);
		translate: 0 0;
		padding-left: 1.5rem;
    	padding-right: 1.5rem;
	}

	/* SPサイズ（位置は角アンカーのまま） */
	.fixedBox a::before {
		width: 3.6rem;
		height: 3.6rem;
	}

	.fixedBox a::after {
		width: 2.0rem;
		height: 2.0rem;
	}

	.fixedBox a.fixedTel .txt { font-size: 2.0rem; }
	.fixedBox a.fixedReq .txt { font-size: 1.4rem; letter-spacing: 0; }
}

/*------------------------------------------------------------
	headLine01
------------------------------------------------------------*/
.headLine01 {
	margin-bottom: 3.1rem;
	padding-bottom: 4.6rem;
	position: relative;
	text-align: center;
	font-size: 3.2rem;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: 0.05rem;
}
.headLine01::after {
	width: 10rem;
	height: 1.6rem;
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	content: "";
	background: url(../img/index/line01.png) no-repeat center center / 100%;
}
.headLine01 .sml {
	margin-bottom: 0.5rem;
	display: block;
	font-size: 2rem;
	letter-spacing: 0.05em;
}
.headLine01 .tag {
	margin-right: 1rem;
	display: inline-block;
	padding: 0.5rem 1.3rem 0.2rem;
	text-align: center;
	color: #3E55FF;
	font-size: 1.6rem;
	letter-spacing: 0.064rem;
	border: 1px solid #3E55FF;
	vertical-align: 0.5rem;
}
@media all and (max-width: 896px) {
	.headLine01 {
		margin-bottom: 3.7rem;
		padding-bottom: 0;
		text-align: left;
		font-size: 2.2rem;
		line-height: 1.54;
		letter-spacing: 0;
	}
	.headLine01::after {
		display: none;
	}
	.headLine01 .sml {
		margin-bottom: 0;
		display: block;
		font-weight: 400;
		font-size: 1.5rem;
		letter-spacing: 0.06em;
	}
	.headLine01 .txt {
		display: inline-block;
		padding-left: 1.5rem;
		position: relative;
	}
	.headLine01 .txt::after {
		width: 0.6rem;
		height: 5.6rem;
		position: absolute;
		z-index: 1;
		top: 50%;
		transform: translateY(-50%);
		left: 0;
		content: "";
		background: url(../img/index/line01_sp.png) no-repeat left center / 100%;
	}
	.headLine01 .txt .en {
		font-family: "Inter", sans-serif;
	}
	.headLine01 .tag {
		margin-right: 0;
		display: block;
		padding: 0.4rem 0.5rem;
		width: 7.3rem;
		font-size: 1.4rem;
		letter-spacing: 0;
		vertical-align: 0;
	}
}
/*------------------------------------------------------------
	comFreeBox
------------------------------------------------------------*/
.comFreeBox {
	padding: 6.4rem 0;
	background-color: #333;
}
.comFreeBox .imgBox {
	margin: 0 0.7rem;
	align-items: center;
}
.comFreeBox .photoBox {
	width: 45.8%;
}
.comFreeBox .textBox {
	width: 48%;
}
.comFreeBox .text {
	margin-bottom: 3.2rem;
	color: #fff;
	font-size: 2.4rem;
	letter-spacing: 0.096rem;
}
.comFreeBox .btn {
	width: 39.8rem;
}
.comFreeBox .btn a {
	padding: 2rem 2rem 1.8rem;
	display: block;
	color: #fff;
	text-align: center;
	font-size: 2rem;
	font-weight: 600;
	background-color: #3E55FF;
	border-radius: 0.8rem;
	letter-spacing: 0.08rem;
}
.comFreeBox .btn a:hover {
	opacity: 0.7;
}
@media all and (max-width: 896px) {
	.comFreeBox {
		padding: 4rem 0 3.3rem;
	}
	.comFreeBox .imgBox {
		margin: 0 0.7rem;
		display: block;
	}
	.comFreeBox .photoBox {
		margin-bottom: 1.8rem;
		width: auto;
	}
	.comFreeBox .photoBox img {
		width: 100%;
	}
	.comFreeBox .textBox {
		width: auto;
	}
	.comFreeBox .text {
		margin: 0 auto 1.5rem;
		padding: 0 3.5rem;
		width: fit-content;
		text-align: center;
		font-size: 1.3rem;
		line-height: 1.9;
		letter-spacing: 0.06rem;
		background: url(../img/index/line03.png) no-repeat left center / 2.2rem,url(../img/index/line04.png) no-repeat right center / 2.2rem;
	}
	.comFreeBox .text > span {
		font-size: 1.5rem;
		font-family: "Inter", sans-serif;
	}
	.comFreeBox .text .big {
		font-size: 1.45rem;
		letter-spacing: 0;
	}
	.comFreeBox .btn {
		margin: 0 auto;
		width: 24.4rem;
	}
	.comFreeBox .btn a {
		padding: 1.4rem 2rem 1.4rem;
		font-size: 1.5rem;
		letter-spacing: 0;
		border: 0.2rem solid #FFF;
		box-shadow: 0.4rem 0.4rem 0.4rem 0 rgba(0, 0, 0, 0.25);
	}
}
