@charset "UTF-8";
#reform {
	margin-bottom: 200px;
}
@media screen and (max-width: 640px) {
	#reform {
		margin-bottom: 100px;
	}
}


/*------------------------------------
オープニング
------------------------------------*/
#loading {
	display: flex;
	justify-content: center;
	align-items: center;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: #fff;
	z-index: 9999;
	animation: fadeOut 2s ease 3s forwards;
}
#loading .logo {
	opacity: 0;
	animation: fadeInLogo 2s ease 0s forwards, fadeOut 2s ease 3s forwards;
}
#loading .logo img {
	max-width: 160px;
}
@keyframes fadeOut {
	to {
		opacity: 0;
		visibility: hidden;
	}
}
@keyframes fadeInLogo {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}
@keyframes fadeInContent {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}
@media screen and (max-width: 640px) {}


/*------------------------------------
.mv
------------------------------------*/
.mv .container {
	max-width: 640px;
	width: calc(100% - 20vw);
	margin: 0 auto;
	padding-top: 120px;
}
.mv h2 {
	font-size: 40px;
	margin-bottom: 40px;
}
.mv p {
	font-size: 20px;
}
@media screen and (max-width: 640px) {
	.mv .container {
		padding-top: 64px;
	}
	.mv h2 {
		font-size: 20px;
		margin-bottom: 24px;
	}
	.mv p {
		font-size: 14px;
	}
}


/*------------------------------------
#hojokin
------------------------------------*/
#hojokin {
	padding-top: 160px;
}
#hojokin .container {
	width: calc(100% - 10vw);
	margin: 0 auto;
}
#hojokin h2 {
	display: flex;
	flex-direction: column;
	justify-content: center;
	position: relative;
	background-color: #fff4cd;
	border-radius: 80px;
	max-width: 800px;
	height: 160px;
	text-align: center;
	margin: 0 auto 80px;
}
#hojokin h2:before {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%) rotate(180deg);
	height: 0;
	width: 0;
	clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
	background-color: #fff4cd;
	width: 32px; /* Triangle base width */
	height: 32px; /* Triangle height */
}
#hojokin h2 span,
#hojokin h2 strong {
	font-size: 40px;
	font-weight: 700;
	line-height: 1.2;
}
#hojokin h2 strong {
	font-weight: bold;
	color: #ea5514;
}
#hojokin .banner-list {
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	margin: 0;
}
#hojokin .banner-list li {
	width: calc((100% - 32px)/2);
}
#hojokin img {
	width: 100%;
}
@media screen and (max-width: 640px) {
	#hojokin {
		padding-top: 80px;
	}
	#hojokin h2 {
		height: 80px;
		margin-bottom: 40px;
	}
	#hojokin h2 span,
	#hojokin h2 strong {
		font-size: 20px;
	}
	#hojokin h2:before {
		width: 16px; /* Triangle base width */
		height: 16px; /* Triangle height */
	}
	#hojokin .banner-list {
		gap: 16px;
	}
	#hojokin .banner-list li {
		width: calc((100% - 16px)/2);
	}
}


/*------------------------------------
#recommend
------------------------------------*/
#recommend {
	padding-top: 160px;
}
#recommend .container {
	max-width: 800px;
	width: calc(100% - 20vw);
	margin: 0 auto;
}
#recommend h2 {
	font-size: 40px;
	font-weight: 700;
	text-align: center;
	margin-bottom: 40px;
}
#recommend h2 span {
	display: block;
	background: linear-gradient(transparent 50%, #f39800 50%);
	width: fit-content;
	font-size: 40px;
	font-weight: 700;
	line-height: 1.2;
	margin: 0 auto;
}
#recommend img {
	width: 100%;
}
@media screen and (max-width: 640px) {
	#recommend {
		padding-top: 80px;
	}
	#recommend h2 {
		font-size: 20px;
		margin-bottom: 24px;
	}
	#recommend h2 span {
		font-size: 20px;
	}
}


/*------------------------------------
#features
------------------------------------*/
#features {
	padding: 200px 0;
}
#features h2 {
	font-size: 40px;
	text-align: center;
	margin-bottom: 40px;
}
#features h2 span {
	display: block;
	font-size: 56px;
	line-height: 1.2;
}
#features .main-img {
	max-width: 1200px;
	margin: 0 auto 80px;
}
#features .container {
	max-width: 640px;
	width: calc(100% - 20vw);
	margin: 0 auto;
}
#features dl {
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
}
#features dl:not(:last-child) {
	margin-bottom: 24px;
}
#features dl:before {
	content: "";
	background-color: #f39800;
	width: 8px;
	height: auto;
}
#features dl dt,
#features dl dd {
	font-size: 40px;
	margin: 0;
}
#features dl dd p {
	width: 100%;
	font-size: 16px;
	margin: 0;
}
#features .link {
	margin-top: 80px;
}
@media screen and (max-width: 640px) {
	#features {
		padding: 100px 0;
	}
	#features h2 {
		font-size: 20px;
		margin-bottom: 24px;
	}
	#features h2 span {
		font-size: 28px;
	}
	#features .main-img {
		margin-bottom: 40px;
	}
	#features dl {
		gap: 16px;
	}
	#features dl dt,
	#features dl dd {
		font-size: 20px;
	}
	#features .link {
		margin-top: 40px;
	}
}


/*------------------------------------
#reserve
------------------------------------*/
#reserve {
	background-color: #fff4cd;
	width: calc(100% - 10vw);
	margin: 0 auto;
	padding: 64px 0;
}
#reserve .container {
	display: flex;
	justify-content: center;
	gap: 40px;
	max-width: 800px;
	width: calc(100% - 20vw);
	margin: 0 auto;
}
#reserve a {
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
}
#reserve a:hover {
	color: #fff !important;
}
#reserve a.form {
	background-color: #f39800;
	border-radius: 40px;
	height: 80px;
	font-size: 24px;
	font-weight: 700;
	line-height: 1;
	color: #fff;
	padding: 0 32px;
}
#reserve a.tel {
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	line-height: 1;
	color: #1a1a1a;
}
#reserve a[href^="tel:"] {
    pointer-events: none;
}
#reserve a.tel .desc {
	margin: 0;
}
#reserve a.tel span {
	font-size: 36px;
	font-weight: bold;
	letter-spacing: .08em;
}
@media screen and (max-width: 1260px) {
	#reserve {
		width: 100%;
		padding: 32px 0;
	}
	#reserve .container {
		flex-direction: column;
		gap: 15px;
	}
	#reserve a {
		width: 100%;
	}
	#reserve a.form,
	#reserve a.tel {
		border-radius: 38px;
		height: 76px;
		padding: 0;
	}
	#reserve a.form {
		font-size: 20px;
	}
	#reserve a.tel {
		gap: 5px;
		background-color: #777;
		color: #fff;
	}
	#reserve a.tel .desc {
		font-size: 14px;
	}
	#reserve a.tel span {
		font-size: 28px;
	}
}


/*------------------------------------
#cases
------------------------------------*/
#cases {
	padding-top: 200px;
}
#cases .container {
	max-width: 1080px;
	width: calc(100% - 20vw);
	margin: 0 auto;
}
#cases p {
	font-size: 20px;
	text-align: center;
	margin-bottom: 40px;
}
#cases .cases-slider {
	margin: 0;
}
#cases .slick-slide {
	margin: 0 16px;
}
#cases .slick-slide img {
	width: 100%;
}
#cases .slick-prev,
#cases .slick-next {
	background-color: transparent;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	width: 80px;
	height: 80px;
}
#cases .slick-prev {
	left: 16%;
	background-image: url("../images/slide-prev.svg");
	z-index: 1;
}
#cases .slick-next {
	right: 16%;
	background-image: url("../images/slide-next.svg");
}
#cases .slick-prev:before,
#cases .slick-next:before {
	font-size: 0;
}
#cases .link {
	margin-top: 80px;
}
@media screen and (max-width: 640px) {
	#cases {
		padding-top: 100px;
	}
	#cases p {
		font-size: 14px;
		margin-bottom: 24px;
	}
	#cases .slick-slide {
		margin: 0;
	}
	#cases .link {
		margin-top: 40px;
	}
}


/*------------------------------------
#voice
------------------------------------*/
#voice {
	padding-top: 200px;
}
#voice .container {
	max-width: 1080px;
	width: calc(100% - 20vw);
	margin: 0 auto;
}
#voice p {
	font-size: 20px;
	text-align: center;
	margin-bottom: 40px;
}
#voice .main-img {
	max-width: 1080px;
	margin: 0 auto;
}
#voice .link {
	margin-top: 80px;
}
@media screen and (max-width: 640px) {
	#voice {
		padding-top: 100px;
	}
	#voice p {
		font-size: 14px;
		margin-bottom: 24px;
	}
	#voice .link {
		margin-top: 40px;
	}
}


/*------------------------------------
#schedule
------------------------------------*/
#schedule {
	padding: 200px 0;
}
#schedule .container {
	max-width: 1080px;
	width: calc(100% - 20vw);
	margin: 0 auto;
}
#schedule p {
	font-size: 20px;
	text-align: center;
	margin-bottom: 40px;
}
#schedule .link {
	margin-top: 80px;
}
@media screen and (max-width: 640px) {
	#schedule {
		padding: 100px 0;
	}
	#schedule p {
		font-size: 14px;
		margin-bottom: 24px;
	}
	#schedule .link {
		margin-top: 40px;
	}
}

/*.custom-dots*/
#schedule .custom-dots .slick-dots {
	position: static;
	margin-bottom: 40px;
}
#schedule .slick-dots li {
	width: auto;
	height: auto;
	margin: 0 8px;
}
#schedule .slick-dots li button {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	background-color: #fff;
	border: 2px solid #1a1a1a;
	border-radius: 50%;
	width: 64px;
	height: 64px;
	font-size: 24px;
	line-height: 1;
	color: #1a1a1a;
	padding: 0;
}
#schedule .slick-dots li.slick-active button {
	background-color: #1a1a1a;
	color: #fff;
	box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.3);
}
#schedule .slick-dots li button:before {
	content: "STEP";
	position: static;
	width: auto;
	height: auto;
	font-size: 12px;
	color: #1a1a1a;
	opacity: 1;
}
#schedule .slick-dots li.slick-active button:before {
	color: #fff;
}
@media screen and (max-width: 640px) {}

/*.schedule-slider*/
#schedule .schedule-slider {
	margin: 0;
}
#schedule .schedule-slider li > div {
	transform: scale(.8);
	transition: opacity .5s, transform .5s;
}
#schedule .schedule-slider li.slick-center > div {
	transform: scale(1);
}
#schedule .schedule-slider li .txt {
	position: absolute;
	bottom: 0;
	background-color: #fff;
	font-size: 24px;
	line-height: 1;
	padding: 24px;
	z-index: 1;
}
#schedule .schedule-slider li .txt span {
	margin-left: 8px;
}
#schedule .slick-prev,
#schedule .slick-next {
	background-color: transparent;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	width: 80px;
	height: 80px;
}
#schedule .slick-prev {
	left: 16%;
	background-image: url("../images/slide-prev.svg");
	z-index: 1;
}
#schedule .slick-next {
	right: 16%;
	background-image: url("../images/slide-next.svg");
}
#schedule .slick-prev:before,
#schedule .slick-next:before {
	font-size: 0;
}
@media screen and (max-width: 640px) {
	#schedule .schedule-slider li > div {
		transform: scale(.9);
	}
	#schedule .schedule-slider li .txt {
		font-size: 17px;
		padding: 8px 16px;
	}
	#schedule .schedule-slider li .txt span {
		display: block;
		font-size: 12px;
		margin-left: 0;
	}
	#schedule .slick-prev,
	#schedule .slick-next {
		width: 40px;
		height: 40px;
	}
	#schedule .slick-prev {
		left: 4%;
	}
	#schedule .slick-next {
		right: 4%;
	}
}
