@charset "utf-8";

/* ===================================================
	Onsen CSS
====================================================== */

/* ---------------------------------------------------
#sec01
------------------------------------------------------ */
#sec01 {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 680px;
	background: url(../../onsen/img/sec01_bg.webp) no-repeat center center;
	background-size: cover;
}
#sec01 .txt {
	writing-mode: vertical-rl;
}
#sec01 .txt .upright {
	text-combine-upright: all;
	letter-spacing: 0;
}
#sec01 .txt .cmn_tit01 {
	flex-direction: column;
	margin: 0 0 0 45px;
}
#sec01 .txt .cmn_tit01 .sub {
	margin: 0 0 0 20px;
}
#sec01 .txt .cmn_tit01 .main {
	font-size: 50px;
	color: #fff;
}
#sec01 .txt .cmn_tit01 .main span {
	font-size: 30px;
}
#sec01 .txt p:not(.link) {
	line-height: 2.2;
	color: #fff;
}
#sec01 .txt .link {
	margin: 0 30px 0 0;
	font-size: 14px;
}
#sec01 .txt .link a {
	position: relative;
	z-index: 0;
	display: inline-flex;
	gap: 0 10px;
	align-items: center;
	color: #fff;
}
#sec01 .txt .link a::after {
	box-sizing: border-box;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	content: "";
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
}
#sec01 .txt .link a::before {
	position: absolute;
	bottom: calc(16px / 2);
	left: 50%;
	box-sizing: border-box;
	width: 6px;
	height: 6px;
	content: "";
	border-right: 1px solid #fff;
	border-bottom: 1px solid #fff;
	transform: translate(-50%, 20%) rotate(45deg);
}

@media screen and (max-width: 600px) {
	#sec01 {
		display: block;
		min-height: 0;
	}
	#sec01 .txt {
		padding: 60px 7%;
		writing-mode: horizontal-tb;
	}
	#sec01 .txt .upright {
		letter-spacing: 0.1em;
	}
	#sec01 .txt .cmn_tit01 {
		margin: 0 0 20px;
	}
	#sec01 .txt .cmn_tit01 .sub {
		margin: 0 0 10px 0.9em;
	}
	#sec01 .txt .cmn_tit01 .main {
		font-size: 30px;
	}
	#sec01 .txt .cmn_tit01 .main span {
		font-size: 20px;
	}
	#sec01 .txt p:not(.link) {
		line-height: 1.8;
	}
	#sec01 .txt .link {
		margin: 20px 0 0;
		text-align: center;
	}
	#sec01 .txt .link a::before {
		inset: 50% calc(16px / 2) auto auto;
		transform: translate(30%, -60%) rotate(45deg);
	}
}

/* ---------------------------------------------------
#sec02, #sec03共通
------------------------------------------------------ */
.cmn_sec_lg .tit_col {
	margin: 0 0 60px;
	text-align: center;
}
.cmn_sec_lg .sec_tit {
	margin-bottom: 15px;
}
.cmn_sec_lg .sec_tit .main {
	display: flex;
	gap: 0 15px;
	align-items: center;
}
.cmn_sec_lg .sec_tit .main span {
	font-size: 20px;
}
.cmn_sec_lg .sec_tit + .note {
	display: inline-block;
	padding: 10px 15px;
	line-height: 1;
}
.cmn_sec_lg .txt .attention {
	font-size: 14px;
}

@media screen and (max-width: 600px) {
	.cmn_sec_lg .tit_col {
		margin-bottom: 30px;
	}
	.cmn_sec_lg .sec_tit .main {
		flex-direction: column;
	}
	.cmn_sec_lg .sec_tit + .note {
		padding: 5px 15px;
		font-size: 14px;
	}
}

/* ---------------------------------------------------
#sec02
------------------------------------------------------ */
#sec02 .sec_tit + .note {
	background: rgba(255, 255, 255, 0.1);
}

/* ---------------------------------------------------
#sec03
------------------------------------------------------ */
#sec03 {
	background: var(--bg01);
}
#sec03 .sec_tit + .note {
	border: 1px solid rgba(255, 255, 255, 0.2);
}

/* ---------------------------------------------------
#sec04
------------------------------------------------------ */
#sec04 {
	padding: 150px 0 175px;
}
#sec04 .items {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 60px 40px;
	margin: 150px 0 0;
}
#sec04 .items img {
	width: 100%;
}
#sec04 .items p {
	margin: 15px 0 0;
	font-size: 18px;
}

@media screen and (max-width: 600px) {
	#sec04 {
		padding: 60px 0;
	}
	#sec04 .items {
		gap: 20px 15px;
		margin-top: 60px;
	}
	#sec04 .items img {
		width: 100%;
	}
	#sec04 .items p {
		margin-top: 10px;
		font-size: 14px;
	}
}

/* ---------------------------------------------------
#sec05
------------------------------------------------------ */
#sec05 {
	background: var(--bg02);
}
#sec05 .cmn_tit01 .main {
	display: flex;
	gap: 0 25px;
	align-items: center;
}
#sec05 .cmn_tit01 .main span {
	font-family: "Yu Gothic Medium", YuGothic, "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	font-size: 16px;
}
#sec05 .cmn_info_tit {
	margin-top: 45px;
}

@media screen and (max-width: 600px) {
	#sec05 .cmn_tit01 .main {
		flex-direction: column;
		gap: 5px 0;
	}
	#sec05 .cmn_info_tit {
		margin-top: 30px;
	}
}
