@charset "UTF-8";

/* ------------------------------ */
/* .fv */
/* ------------------------------ */

.front-page .fv {
	position: relative;
	background-image: url("../img/top/bg_1.png");
	background-position: center top;
	background-repeat: no-repeat;
	padding: 220px 0 100px 0;
	z-index: 1;
}
.front-page .fv__main .btn_wrap {
	max-width: 730px;
	margin: 100px auto 30px auto;
}
.front-page .fv__main .btn_wrap ul {
	justify-content: space-between;
	margin: 0 -10px;
}
.front-page .fv__main .btn_wrap ul li {
	width: 50%;
	max-width: 375px;
	padding: 0 10px;
}
/* 1. アニメーションの動きを定義 */
@keyframes fadeUp {
	0% {
		opacity: 0;                  /* 最初は完全に透明 */
		transform: translateY(10px); /* 40px下からスタート（数値はお好みで調整） */
	}
	100% {
		opacity: 1;                  /* 完全に表示させる */
		transform: translateY(0);    /* 本来の位置に戻る */
	}
}

/* 2. 対象の要素にアニメーションを割り当て */
.front-page .fv {
	opacity: 0; /* 💡アニメーション開始前のチラつきを防ぐために透明にしておく */
	animation: fadeUp 1s ease-out forwards;
}
@media (min-width: 768px) {
	.front-page .fv__main .title {
		text-align: center;
		min-height: 480px;
	}
	.front-page .fv__main .btn_wrap img {
		filter: drop-shadow(0 0 20px rgba(0, 0, 0, 0.1));
	}
}
@media (max-width: 767px) {
	.front-page .fv {
		background-image: url("../img/top/bg_sp_1.png");
		padding: 100px 0 0 0;
	}
	.front-page .fv__main {
		
	}
	.front-page .fv__main .title {
		text-align: center;
	}
	.front-page .fv__main .btn_wrap {
		margin: 40px auto 20px auto;
	}
	.front-page .fv__main .btn_wrap ul {
		justify-content: center;
		margin: 0 -7px;
	}
	.front-page .fv__main .btn_wrap ul li {
		max-width: 145px;
		padding: 0 7px;
	}
}

/* ------------------------------ */
/* .section */
/* ------------------------------ */

.front-page .section {
	font-size: 16px;
	line-height: 1.6;
}
.front-page .section__title {
	text-align: center;
	margin-bottom: 40px;
}
.front-page .section__title .en {
	font-size: 14px;
	font-weight: 500;
}
.front-page .section__title .title {
	font-size: 30px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--basic);
	margin: 0;
}
@media (min-width: 768px) {
	
}
@media (max-width: 767px) {
	.front-page .section__title .title {
		font-size: 22px;
	}
}



/* ------------------------------ */
/* .thoughts_rule */
/* ------------------------------ */

.front-page .thoughts_rule {
	background-image: url("../img/top/bg_2.png");
	background-position: center top;
	background-repeat: no-repeat;
	padding: 160px 0 200px 0;
	margin: -160px 0 -100px 0;
}
@media (max-width: 767px) {
	.front-page .thoughts_rule {
		background-image: url("../img/top/bg_sp_2.png");
		padding: 130px 0 10ß0px 0;
		margin: -90px 0 0 0;
	}
}

/* ------------------------------ */
/* .thoughts */
/* ------------------------------ */

.front-page .thoughts {
	padding-top: 30px;
}
.front-page .thoughts p {
	font-size: 22px;
	font-weight: 700;
	line-height: 3;
	text-align: center;
}
@media (max-width: 767px) {
	.front-page .thoughts p {
		font-size: 16px;
		line-height: 2.7;
	}
}

/* ------------------------------ */
/* .rule */
/* ------------------------------ */

.front-page .rule {
	padding-top: 100px;
}
.front-page .rule .sectio__title .en {
	margin-top: 20px;
}
.front-page .rule .swiper-slide .en_g {
	font-size: 30px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	margin: 20px 0 10px 0;
}
.front-page .rule .swiper-slide .title {
	font-size: 18px;
	margin: 0;
}
.front-page .rule .swiper-slide p {
	margin: 10px 0 0 0;
}
@media (min-width: 768px) {
	.front-page .rule .swiper-wrapper {
		width: calc(100% + 40px);
		margin: 0 -20px;
	}
	.front-page .rule .swiper-slide {
		width: 33.33%;
		height: auto !important;
		border-right: 1px dashed var(--basic);
		padding: 0 20px;
	}
	.front-page .rule .swiper-slide:last-child {
		border: none;
	}
	.front-page .rule .swiper-slide dl {
		max-width: 270px;
		margin: 0 auto;
	}
}
@media (max-width: 767px) {
	.front-page .rule {
		padding-top: 80px;
	}
	.front-page .rule .swiper_container {
		max-width: 100%;
		padding: 0;
		margin-top: 80px;
	}
	.front-page .rule .swiper__sp {
		width: 90%;
		max-width: 280px;
	}
	.front-page .rule .swiper-slide {
		padding: 0 5px;
	}
}

/* ------------------------------ */
/* .service */
/* ------------------------------ */

.front-page .service {
	position: relative;
	background-image: url("../img/top/bg_3.png");
	background-position: center top;
	background-repeat: no-repeat;
	padding: 220px 0 400px 0;
}
.front-page .service > * {
	position: relative;
	z-index: 1;
}
.front-page .service::after {
	position: absolute;
	left: 50%;
	top: 80px;
	transform: translateX(-50%);
	content: "";
	width: 95%;
	max-width: 1600px;
	height: calc(100% - 380px);
	/* 背景を半透明にする（必須） */
	background: rgba(255, 255, 255, 0.5);
	/* ぼかしの強さを指定 */
	backdrop-filter: blur(10px);
	/* ブラウザの対応状況に応じたベンダープレフィックス（必要に応じて） */
	-webkit-backdrop-filter: blur(10px);
	border-radius: 40px;
	z-index: 0;
}
.front-page .service .row .title {
	border-bottom: 1px dashed var(--pink);
	padding-bottom: 10px;
	margin: 0 0 15px 0;
}
.front-page .service .row_2 .title {
	border-bottom: 1px dashed var(--green);
}
.front-page .service .img_wrap {
	position: relative;
}
.front-page .service .img_wrap > * {
	position: relative;
	z-index: 1;
}
.front-page .service .img_wrap .bg {
	position: absolute;
	z-index: 0;
}
.front-page .service .bg_btn {
	margin-top: 20px;
}
@media (min-width: 768px) {
	.front-page .service .col_order {
		order: 1;
	}
	.front-page .service .row {
		justify-content: space-between;
		margin: 100px -15px 0 -15px;
	}
	.front-page .service .row > * {
		padding: 0 15px;
	}
	.front-page .service .col_txt {
		max-width: 330px;
	}
	.front-page .service .col_img {
		flex: 1;
		max-width: 630px;
	}
	.front-page .service .row_1 .bg {
		left: -40px;
		top: -25px;
	}
	.front-page .service .row_2 .bg {
		right: -40px;
		top: -25px;
	}
}
@media (max-width: 991px) {
	.front-page .service .row_1 .bg {
		left: -25px;
		top: -25px;
		width: 130px;
	}
	.front-page .service .row_2 .bg {
		right: -25px;
		top: -55px;
	}
}
@media (max-width: 767px) {
	.front-page .service {
		background-image: url("../img/top/bg_sp_3.png");
		padding: 50px 0 110px 0;
	}
	.front-page .service::after {
		top: 0;
		width: calc(100% - 20px);
		height: 100%;
	}
	.front-page .service .row {
		margin-top: 80px;
		padding: 0 20px;
	}
	.front-page .service .row_2 {
		margin-top: 130px;
	}
	.front-page .service .col_img {
		margin-bottom: 30px;
	}
}

/* ------------------------------ */
/* .img__slider__wrap */
/* ------------------------------ */

.front-page .img__slider__wrap {
	padding: 80px 0 100px 0;
}
@media (max-width: 767px) {
	.front-page .img__slider__wrap {
		padding: 35px 0;
	}
}

/* ------------------------------ */
/* .banner */
/* ------------------------------ */

.front-page .banner {
	position: relative;
	z-index: 1;
	padding-top: 90px;
}
.front-page .banner a img {
	filter: drop-shadow(0 0 20px rgba(0, 0, 0, 0.1));
}
@media (min-width: 768px) {
	.front-page .banner .row {
		justify-content: space-between;
		margin: 0 -15px;
	}
	.front-page .banner .row > * {
		width: 50%;
		max-width: 491px;
		padding: 0 15px;
	}
	.front-page .banner .col_2 {
		transform: translateY(100px);
	}
}
@media (max-width: 767px) {
	.front-page .banner {
		padding-top: 0px;
	}
	.front-page .banner .row {
		padding: 0 15px;
	}
	.front-page .banner .row > * {
		width: 100%;
		text-align: center;
	}
	.front-page .banner .section__title {
		margin: 50px 0 30px 0;
	}
}

/* ------------------------------ */
/* .instagram */
/* ------------------------------ */

.front-page .instagram {
	position: relative;
	background-color: #efe4eb;
	padding: 200px 0 120px 0;
	margin-bottom: 60px;
}
.front-page .instagram > * {
	position: relative;
	z-index: 1;
}
.front-page .instagram::after {
	position: absolute;
	left: 0;
	top: 0;
	content: "";
	aspect-ratio: 1920 / 298;
	width: 100%;
	background-color: #ffffff;
	background-image: url("../img/top/bg_instagram.png");
	background-repeat: no-repeat;
	background-position: center top 1px;
	background-size: 100%;
	z-index: 0;
}
@media (min-width: 768px) {
	.front-page .instagram .row {
		justify-content: space-between;
		margin: 0 -15px;
	}
	.front-page .instagram .row > * {
		width: 45%;
		max-width: 423px;
		padding: 0 15px;
	}
	.front-page .instagram .col_txt {
		width: 10%;
		transform: translateY(20px);
	}
}
@media (max-width: 767px) {
	.front-page .instagram {
		padding: 200px 0 70px 0;
		margin: -150px 0 25px 0;
	}
	.front-page .instagram .col {
		width: 100%;
		text-align: center;
	}
	.front-page .instagram .col + .col {
		margin-top: 30px;
	}
	.front-page .instagram a img {
		max-width: 272px;
	}
}



/* ------------------------------ */
/* .company */
/* ------------------------------ */

.front-page .company {
	position: relative;
	background-color: #fef4d9;
	padding: 400px 0 140px 0;
	margin-top: -300px;
}
.front-page .company > * {
	position: relative;
	z-index: 1;
}
.front-page .company::before {
	position: absolute;
	left: 0;
	top: 0;
	content: "";
	aspect-ratio: 1920 / 298;
	width: 100%;
	background-color: #ffffff;
	background-image: url("../img/top/bg_news.png");
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 100%;
	z-index: 0;
}
.front-page .company::after {
	position: absolute;
	left: 0;
	bottom: 0;
	content: "";
	aspect-ratio: 1920 / 298;
	width: 100%;
	background-color: #ffffff;
	background-image: url("../img/top/bg_company.png");
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 100%;
	z-index: 0;
}
.front-page .company .section__title {
	margin-bottom: 30px;
}
.front-page .company .img_title {
	font-size: 22px;
	font-weight: 500;
	text-align: center;
	margin: 0 0 40px 0;
}
.front-page .company .img_title span {
	display: inline-block;
	background-image: url("../img/top/bg_title.png");
	background-repeat: no-repeat;
	background-position: center bottom;
	padding-bottom: 25px;
}
.front-page .company .message {
	position: relative;
	background-image: url("../img/top/company_bg_1.png");
	background-repeat: no-repeat;
	background-position: center center;
	padding: 30px;
	margin-bottom: 80px;
}
.front-page .company .message::before,
.front-page .company .message::after {
	position: absolute;
	content: "";
	width: 3px;
	height: 80px;
	background-color: var(--basic);
	rotate: 45deg;
	transform-origin: center;
}
.front-page .company .message::before {
	top: -20px;
	left: 20px;
}
.front-page .company .message::after {
	bottom: -20px;
	right: 20px;
}
.front-page .company .message .inner {
	position: relative;
	background-image: url("../img/top/company_bg_2.png");
	background-repeat: no-repeat;
	background-position: center center;
	max-width: 830px;
	margin: 0 auto;
	padding: 40px 20px 10px 20px;
}
.front-page .company .message .txt_wrap {
	max-width: 730px;
	margin: 0 auto;
}
.front-page .company .message .title {
	font-size: 22px;
	font-weight: 500;
	margin: 0 0 20px 0;
}
.front-page .company .message .name {
	text-align: right;
}
.front-page .company .message .logo {
	position: absolute;
	right: 40px;
	top: 40px;
}
.front-page .company .message .bg_logo {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
	opacity: 0.1;
}
.front-page .company .table {
	width: 100%;
	border-top: 1px solid #999999;
	margin: 0;
}
.front-page .company .table th,
.front-page .company .table td {
	background-color: #ffffff;
	border-bottom: 1px solid #999999;
	vertical-align: top;
	padding: 20px 20px;
}
.front-page .company .table th {
	background-image: url("../img/top/company_bg_3.png");
	font-weight: 500;
	text-align: center;
}
.front-page .company .table td {
	font-size: 14px;
	padding: 20px 80px;
}
@media (max-width: 767px) {
	.front-page .company {
		padding: 180px 0 100px 0;
		margin-top: -120px;
	}
	.front-page .company .img_title {
		font-size: 16px;
		margin: 0 0 30px 0;
	}
	.front-page .company .img_title span {
		background-size: 250px;
		padding-bottom: 20px;
	}
	.front-page .company .message {
		background-size: auto 100%;
		padding: 20px 15px;
		margin-bottom: 60px;
	}
	.front-page .company .message .inner {
		background-size: auto 100%;
		padding: 50px 10px 20px 10px;
	}
	.front-page .company .message .txt_wrap {
		font-size: 14px;
	}
	.front-page .company .message .title {
		font-size: 18px;
		padding-right: 60px;
	}
	.front-page .company .message .logo {
		right: 10px;
		top: 30px;
		width: 55px;
	}
	.front-page .company .message .bg_logo {
		width: 180px;
	}
	.front-page .company .message::before,
	.front-page .company .message::after {
		width: 2px;
		height: 30px;
	}
	.front-page .company .message::before {
		top: -5px;
		left: 5px;
	}
	.front-page .company .message::after {
		bottom: -5px;
		right: 5px;
	}
	.front-page .company .table th,
	.front-page .company .table td {
		padding: 15px 10px;
	}
	.front-page .company .table th {
		width: 100px;
	}
}

/* ------------------------------ */
/* .contact__wrap */
/* ------------------------------ */

.front-page .contact__wrap {
	position: relative;
	margin-top: -20px;
	z-index: 1;
}
@media (max-width: 767px) {
	.front-page .contact__wrap {
		margin: 0;
		padding: 30px 0 0 0;
	}
}



