@charset "utf-8";

/*===========================================================
カバー
===========================================================*/

.cover {
	max-width: 1920px;
	width: 100%;
	margin: 0 auto;
	padding: 0 15px;
	position: relative;
}

.cover-area {
	max-width: 1680px;
	width: 100%;
	margin: 0 auto;
	position: relative;
	z-index: 2;
}

.cover-area::before {
	content: "";
	display: block;
	width: 50%;
	height: 100%;
	background: linear-gradient(to right, rgba(28, 28, 28, 100%), rgba(28, 28, 28, 0));
	position: absolute;
	top: 0;
	left: 0;
	margin: auto;
	z-index: 1;
}

.cover-title-box {
    position: absolute;
    bottom: 0;
    left: clamp(20px, 10.291px + 2.589vw, 60px);
    z-index: 2;
	-ms-writing-mode: tb-rl;      /* 古い IE 向け */
	-webkit-writing-mode: vertical-rl; /* 極端に古い Safari / iOS / Android 向け */
	writing-mode: vertical-rl;
}

.cover-title {
	margin: 0;
    font-size: clamp(20px, 13.204px + 1.812vw, 48px);
    font-weight: 600;
    font-family: var(--font-family01);
    letter-spacing: 0.4em;
    line-height: 1.3;
	color: var(--white);
}

.cover-title strong {
    font-size: clamp(40px, 26.408px + 3.625vw, 96px);
    font-weight: 600;
    font-family: var(--font-family01);
    letter-spacing: 0.15em;
}

.cover-title:first-child {
    margin: -20% 0 0;
}

.cover-illust-box01 {
	max-width: 1920px;
	width: 100%;
	margin: auto;
	position: absolute;
	bottom: 0;
	right: 0;
	left: 0;
	z-index: -1;
}

/*===========================================================
top01
===========================================================*/

.top01-container {
    display: flex;
	flex-direction: column-reverse;
    align-items: center;
	justify-content: center;
}

.top01-left {
	margin: 40px 0 0;
    max-width: 900px;
    width: 100%;
}

.top01-img-box01 {
    max-width: 790px;
    width: 100%;
}

.top01-text-container {
    max-width: 630px;
    width: 100%;
    margin: 40px 0 0 auto;
}

.top01-btn-area {
    margin: 30px 0 0;
}

.top01-right {
    max-width: 1067px;
    width: 100%;
    display: flex;
	flex-direction: column;
    align-items: flex-start;
}

.top01-block01 {
    max-width: 562px;
    width: 100%;
}

.top01-title-box {
    margin: 0 0 0 auto;
    max-width: 467px;
    width: 100%;
}

.top01-img-box02 {
    margin: 40px 0 0;
    max-width: 500px;
    width: 100%;
}

.top01-block02 {
    margin: -44% 0 0 auto;
    max-width: 635px;
    width: 80%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.top01-vertical-box {
	margin: 0 0 -45%;
}

/*===========================================================
top02
===========================================================*/

.top02-vertical-box {
	position: absolute;
	bottom: clamp(0px, -16.990px + 4.531vw, 70px);
	left: clamp(20px, 7.864px + 3.236vw, 70px);
	z-index: 2;
}

.top02-img-box01::before {
	content: "";
	display: block;
	width: 50%;
	height: 100%;
	background: linear-gradient(to right, rgba(28, 28, 28, 100%), rgba(28, 28, 28, 0));
	position: absolute;
	top: 0;
	left: 0;
	margin: auto;
	z-index: 1;
}

.top02-main-title-box {
    margin: -5px 0 0;
}

.top02-img-box02 {
	position: relative;
}

.top02-img-box02::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background: rgba(28, 28, 28, .15);
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
}

/*===========================================================
top04
===========================================================*/

.top04 {
	margin-top: clamp(-540px, -204.466px + -17.476vw, -270px);
}

.top04-container {
	gap: 20px;
}

.top04-block {
	gap: 20px;
}

.top04-banner01 .common-banner-img-box {
    padding-top: 56.34%;
}

.top04-banner02 .common-banner-img-box {
    padding-top: 115.49%;
}

.top04-banner02 .common-banner-title-box {
    margin: auto;
    flex-direction: row;
    align-items: center;
    gap: 10px;
}

.top04-banner01 .common-banner-title-box .title05 {
    line-height: 1;
	letter-spacing: 0.22em;
}

.top04-banner02 .common-banner-title-box .title05 {
	letter-spacing: 0.18em;
}

.top04-banner02 .common-banner-title-box .text03 {
    ms-writing-mode: initial;
    -webkit-writing-mode: initial;
    writing-mode: initial;
}

.top04-banner02 .common-banner-inner {
    display: flex;
    align-items: center;
}

/*===========================================================
top05
===========================================================*/

.top05 {
	clip-path: inset(0 0 0 0);
}

.top05::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100lvh;
    background-image: url(/system_panel/uploads/images/top10.jpg);
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    z-index: -1;
    transform: translateZ(0);
}

/*===========================================================
top07
===========================================================*/

.top07-reserve-area {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: clamp(20px, -6.667px + 3.472vw, 60px);
    row-gap: 20px;
    flex-wrap: wrap;
}

.swiper-pagination {
    right: 0 !important;
    bottom: 0 !important;
	text-align: right !important;
}

.swiper-pagination-bullet {
    width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 10px)) !important;
    height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 10px)) !important;
	background: none !important;
	border: 1px solid #2E2B27 !important;
}

.swiper-pagination-bullet-active {
	background: #2E2B27 !important;
}

/*===========================================================
お知らせ
===========================================================*/

img + .no-img {
    display: none;
}

.top-news-link {
	padding: 15px 30px 15px 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	border-bottom: 1px solid var(--border-primary);
	position: relative;
	transition: all .3s;
}

.top-news-item:first-child .top-news-link {
	padding: 0 30px 15px 0;
}

/* .top-news-link:hover {
	opacity: 0.7;
} */

.top-news-link::before {
	content: "";
	display: block;
    width: 23px;
    height: 29px;
    background: url(/system_panel/uploads/images/right-arrow-black.svg) center / contain no-repeat; 
	position: absolute;
	bottom: 41%;
	right: 0;
	margin: auto;
	transform: translateX(0);
    transform-origin: center center; 
	transition: all .3s;
}

.top-news-link:hover::before {
	transform: translateX(10px);
}

.top-news-cate-flex {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 22px;
}

.top-news-cate {
	flex: 1;
    padding: 3px 9px;
    display: block;
    width: 100%;
    max-width: max-content;
	min-width: 105px;
    font-size: clamp(13px, 12.515px + 0.129vw, 15px);
    font-weight: 500;
	letter-spacing: 0;
	line-height: 1.5;
    color: var(--base-font-color);
    text-align: center;
	background: var(--bg-secondary);
    word-break: keep-all;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.top-news-date {
	display: block;
	font-size: clamp(13px, 12.515px + 0.129vw, 15px);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.5;
	color: var(--base-font-color);
}

.top-news-title {
	margin: 16px 0 0;
	font-size: clamp(16px, 15.515px + 0.129vw, 18px);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.5;
	color: var(--base-font-color);
	flex: 1;
}

.top08-left {
	display: contents;
}

.top08-container .common-title-box01 {
	order: 1;
}

.top-news-area {
	order: 2;
}

.top08-btn-area {
	order: 3;
}

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
@media screen and (min-width:414px) {


/*===========================================================

===========================================================*/



} /* min-width: 414px ここまで */


/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
@media screen and (min-width:544px) {


/*===========================================================
top01
===========================================================*/

	.top01-block02 {
		margin: -24% 0 0 auto;
	}

} /* min-width: 544px ここまで */


/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
@media screen and (min-width: 768px) {


/*===========================================================
カバー
===========================================================*/

	.cover-title {
		font-size: clamp(24px, 8.000px + 2.083vw, 48px);
	}

	.cover-title strong {
		font-size: clamp(40px, 2.667px + 4.861vw, 96px);
		font-weight: 600;
		font-family: var(--font-family01);
		letter-spacing: 0.15em;
	}

/*===========================================================
top01
===========================================================*/

	.top01-text-container {
		margin: 60px 0 0 auto;
	}

	.top01-btn-area {
		margin: 40px 0 0;
	}

	.top01-right {
		flex-direction: row;
		align-items: flex-start;
	}

	.top01-block01 {
		width: 52.7%;
	}

	.top01-img-box02 {
		margin: 60px 0 0;
	}

	.top01-block02 {
		margin: 0 0 0 -12.2%;
		width: 59.6%;
	}

/*===========================================================
top02
===========================================================*/

	.top02-vertical-box {
		bottom: clamp(-20px, -80.000px + 7.813vw, 70px);
	}

/*===========================================================
お知らせ
===========================================================*/

	.top08-left {
		display: block;
	}

	.top08-container .common-title-box01 {
		order: unset;
	}

	.top-news-area {
		order: unset;
	}

	.top08-btn-area {
		order: unset;
	}

} /* min-width: 768px ここまで */


/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
@media screen and (min-width: 1024px) {


/*===========================================================

===========================================================*/

/*===========================================================
top01
===========================================================*/

	.top01-container {
		flex-direction: row;
		align-items: flex-start;
		justify-content: space-between;
	}

	.top01-left {
		margin: 0;
		width: 43.9%;
	}

	.top01-text-container {
		margin: 95px -20px 0 auto;
	}

	.top01-btn-area {
		margin: 55px 0 0;
	}

	/* .top01-right {
		margin: 0 0 0 -9.3%;
		width: 77.3%;
		display: flex;
		align-items: flex-start;
	} */

	.top01-right {
		margin: 0 0 0 -9.3%;
		width: 80.9%;
		display: flex;
		align-items: flex-start;
	}

	.top01-block01 {
		margin: 6.5% 0 0;
		max-width: 562px;
		width: 52.7%;
	}

	.top01-title-box {
		margin: 0 0 0 auto;
		max-width: 467px;
		width: 100%;
	}

	.top01-img-box02 {
		margin: 75px 0 0;
		max-width: 500px;
		width: 100%;
	}

	.top01-block02 {
		margin: -30px 0 0 -12.2%;
		max-width: 635px;
		width: 59.6%;
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.top01-vertical-box {
		margin: 0 0 -45%;
	}

/*===========================================================
top02
===========================================================*/

	.top02-vertical-box {
		bottom: clamp(20px, -37.143px + 5.58vw, 70px);
	}

/*===========================================================
お知らせ
===========================================================*/

	.top-news-link {
		padding: 24px 30px 24px 0;
	}

	.top-news-item:first-child .top-news-link {
		padding: 0 30px 24px 0;
	}

	.top-news-cate {
		padding: 3px 15px;
	}

} /* min-width: 1024px ここまで */


/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
@media screen and (min-width:1200px) {


/*===========================================================

===========================================================*/

.top02-text-box br {
	display: block;
}

} /* min-width: 1200px ここまで */


/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
@media screen and (min-width:1300px) {


/*===========================================================

===========================================================*/


} /* min-width: 1300px ここまで */


/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
@media screen and (min-width:1620px) {




} /* min-width: 1520px ここまで */

/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */
/* ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ */ 