@charset "utf-8";

#loading {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 99999999999999;
}

.circle-line {
  width: min(30vw, 160px);
  aspect-ratio: 1;
  border-radius: 50%;
  border: 2px solid var(--main-color);
  border-top-color: var(--main-color);
  animation: spin 1s linear;
}
.circle-line.animated {
  animation: spin 1s linear;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

/* -----------------
main-visual
-----------------------*/
#main-visual {
    overflow: hidden;
    margin: 50px 0;
}
.main-visual-in {
	display: flex;
	max-width: 1340px;
	padding:0 20px;
}
.main-visual-in .-catch {
	width: 35%;
    position: relative;
    z-index: 1;
	visibility: hidden;
    opacity: 0;
    transform: translateX(50px);
    -webkit-transition: all 0.5s ease-in-out;
    transition: all 0.5s ease-in-out;
}
.main-visual-in .-image {
	width: 65%;
}
.main-visual-in .-image img {
    width: 140%;
    max-width: none;
    margin-left: -5%;
	visibility: hidden;
    opacity: 0;
    transform: translateX(50px);
    -webkit-transition: all 0.5s ease-in-out;
    transition: all 0.5s ease-in-out;
}
#main-visual.on .-catch,
#main-visual.on .-image img {
    opacity: 1;
	visibility: visible;
    transform: translateX(0);
}

@media (max-width: 815px) {

#main-visual {
    margin: 20px 0 30px;
}

}



/* ----------------
point
--------------------------*/
.point-in:after {
    content: '';
    width: 60%;
    height: 0;
    padding-top: 60%;
    border: solid 10px var(--main-color);
    border-radius: 10000px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.point__list {
    display: flex;
    flex-wrap: wrap;
}
.point__list >li {
    width: 46%;
    margin: 2% 2%;
    text-align: center;
	position: relative;
	z-index:1;
}


@media (max-width: 815px) {



}


/* ----------------
message
--------------------------*/
.message-in {
    display: flex;
    justify-content: space-between;
	flex-direction: row-reverse;
}
.message-in .-img {
    width: 50%;
    max-width: 410px;
    text-align: center;
    margin-top: -50px;
}
.message-in .-img p {
    font-size: 18px;
	margin-top: 10px;
}
.message-in .-text {
    width: 50%;
}
.message-in .-text .cmn-desc {
	margin-top: 30px;
}


@media (max-width: 815px) {

	.message-in {
		display: block;
	}
	.message-in .-img {
		width: 100%;
		margin: 0 auto 30px;
	}
	.message-in .-text {
		width: 100%;
	}

}

/* ----------------
scene
--------------------------*/
.scene-in {
    padding: 30px 50px 50px;
    border-radius: 20px;
    background: var(--bg-gry);
	position: relative;
}
.scene__list {
    display: flex;
    justify-content: space-between;
}
.scene__list >li {
    width: 24%;
    padding: 15px;
    background: #fff;
    border-radius: 10px;
}
.scene__list >li h3 {
	color: #fff;
    text-align: center;
	font-size: 32px;
	border-radius: 1000px;
	padding: 10px;
	margin-bottom: 20px;
	background:var(--main-color);
}
.scene__list >li.scene01 h3 {
	background: #5cccd0;
}
.scene__list >li.scene02 h3 {
	background: #acd460;
}
.scene__list >li.scene03 h3 {
	background: #df8282;
}
.scene__list >li.scene04 h3 {
	background: #d7cf4c;
}
.scene__list ul >li {
	font-size: 23px;
	margin-bottom: 5px;
}
.scene__list >li p {
	font-size: 23px;
	margin-top: 10px;
	text-align: right;
}


.scene-in .fig {
    position: absolute;
    top: -50px;
}
.scene-in .fig.fig01 {
	max-width: 19%;
	left: 50px;
}
.scene-in .fig.fig02 {
	max-width: 20%;
	right: 50px;
}

@media (max-width: 815px) {

	.scene-in {
		padding: 30px 20px;
	}
	.scene-in .fig {
		top: -25px;
	}
	.scene-in .fig.fig01 {
		max-width: 23%;
		left: 20px;
	}
	.scene-in .fig.fig02 {
		max-width: 23%;
		right: 20px;
	}
	.scene__list {
		display: flex;
		justify-content: normal;
		flex-wrap: wrap;
	}
	.scene__list >li {
		width: 48%;
		padding: 15px;
		margin: 0 0 20px 4%;
	}
	.scene__list >li:nth-child(2n+1) {
		margin-left: 0;
	}
	.scene__list >li h3 {
		font-size: 18px;
	    padding: 5px;
		margin-bottom: 10px;
	}
	.scene__list ul >li {
		font-size: 12px;
	}
	.scene__list >li p {
		font-size: 12px;
	}

}



/* ----------------
use-info
--------------------------*/
.use-info-wrap {
    display: flex;
    justify-content: space-between;
}
.use-info-box {
    width: 48%;
    padding: 50px;
    border: solid 2px var(--bg-gry);
    border-radius: 20px;
}
.use-info__list >li {
	margin-bottom: 30px;
}
.use-info__list >li h3 {
    font-size: 22px;
    font-weight: 500;
    max-width: 210px;
    color: #fff;
    background: var(--main-color);
    line-height: 1;
    padding: 5px 10px;
	margin-bottom: 10px;
    border-radius: 1000px;
}
.use-info__list >li h3 span {
    background: #fff;
    display: inline-block;
    width: 24px;
    height: 24px;
    line-height: 24px;
    color: var(--main-color);
    border-radius: 100px;
    text-align: center;
    margin-right: 10px;
}
.price-text {
	display: flex;
	align-items: end;
	position: relative;
}
.price-text:after {
    content: '';
    width: 100%;
    height: 1px;
    border-bottom: dotted 3px;
    position: absolute;
    left: 0;
    bottom: 17px;
}
.price-text span {
	background: #fff;
	position: relative;
	z-index: 1;
}
.price-text .-text {
	font-size: 20px;
	padding-right: 10px;
}
.price-text .-price {
	font-size: 26px;
	font-weight: 600;
	margin-left: auto;
	padding-left: 10px;
}


@media (max-width: 815px) {

	.use-info-wrap {
		display: block;
	}
	.use-info-box {
		width: 100%;
		padding: 20px;
		margin-bottom: 20px;
	}
	.use-info__list >li h3 {
		font-size: 16px;
		max-width: 180px;
	}
	.price-text .-text {
		font-size: 14px;
		padding-right: 5px;
	}
	.price-text .-price {
		font-size: 18px;
		padding-left: 5px;
	}
	.price-text:after {
		border-bottom: dotted 2px;
		bottom: 10px;
	}

}


/* ----------------
car
--------------------------*/
.car-in {
    display: flex;
    justify-content: space-between;
}
.car-in .-img {
	width: 49%;
}
.car-in .-img .swiper-container {
	padding-bottom: 40px;
}
.car-in .-img .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    background: #ccc;
    opacity: 1;
}
.car-in .-img .swiper-pagination-bullet-active {
    background: var(--main-color);
}

.car-in .-info {
	width: 48%;
}
.car-in .-info table {
	font-size: 20px;
	width: 100%;
	border-collapse: collapse;
}
.car-in .-info table th {
	color: #fff;
	font-weight: normal;
	padding: 10px;
	border-bottom: solid 1px #fff;
	vertical-align: top;
	text-align: left;
	background: var(--main-color);
}
.car-in .-info table td {
	padding: 10px;
	border-bottom: solid 1px #fff;
	background: var(--bg-grn);
}




@media (max-width: 815px) {

	.car-in {
		display: block;
	}
	.car-in .-img {
		width: 100%;
		text-align: center;
		margin-bottom: 20px;
	}
	.car-in .-info {
		width: 100%;
	}
	.car-in .-info table {
		font-size: 14px;
	}
}


/* ----------------
column
--------------------------*/
.column__list {
    display: flex;
    flex-wrap: wrap;
}
.column__list >li {
    width: 32%;
    margin: 0 0 0 2%;
}
.column__list >li:nth-child(3n+1) {
    margin-left: 0;
}
.column__list a {
	color: var(--base-color);
	display:block;
	padding: 10px 10px 20px;
	height: 100%;
	border: solid 1px var(--bg-gry);
	border-radius: 10px;
}
.column-thumb img {
	margin-bottom: 10px;
}
.column-info-date {
    font-size: 14px;
    font-family: var(--font-en);
    color: #666;
}
.column-info-title {
	font-size: 20px;
	font-weight: 500;
}
.column-info-cat {
    margin-top: 10px;
}
.column-info-cat span {
	display: inline-block;
	font-size: 13px;
	line-height:1;
	padding: 2px 10px;
	background: var(--bg-gry);
}


@media (max-width: 815px) {

	.column__list {
		display: block;
		width: calc(100% + 20px);
		white-space: nowrap;
		overflow-x: scroll;
	}
	.column__list >li {
		display: inline-block;
		width: 250px;
		vertical-align: top;
		white-space: normal;
	}

}



/* ----------------
news
--------------------------*/
.news-in {
	display: flex;
	justify-content: space-between;
	align-items: center;
    padding: 30px 50px 50px;
    border-radius: 20px;
    background: var(--bg-gry);
}
.news-in .-info {
	width:440px;
}
.news-in .-list {
	width: calc(100% - 440px);
}

.news__list >li {
	font-size: 18px;
	padding-bottom: 10px;
	margin-bottom: 10px;
	border-bottom: solid 1px #ccc;
}
.news__list >li a {
	display: flex;
	flex-wrap: wrap;
	color: var(--base-color);
}
.post-date {
    width: 110px;
}
.post-category {
    width: 110px;
    color: #fff;
    background: var(--main-color);
    border-radius: 1000px;
    line-height: 1;
    padding: 5px 10px;
	margin-right: 15px;
    text-align: center;
}
.post-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: calc(100% - 250px);
}




@media (max-width: 815px) {


	.news-in {
		display: block;
		padding: 30px 20px;
	}
	.news-in .-info {
		width: 100%;
	}
	.news-in .-list {
		width: 100%;
	}

	.news__list >li {
		font-size: 14px;
	}
	.news__list >li a {
		display: block;
	}
	.post-date {
		width: auto;
		margin-right: 10px;
	}
	.post-category {
		width: auto;
		margin-right: 0;
	}
	.post-title {
		white-space: normal;
		width: auto;
		display: block;
		margin-top: 5px;
	}

}




















