@charset "UTF-8";

/*----------------------------------------
	- base
-----------------------------------------*/
/* 見出し-画像箇所 */
.title_box {
	display: flex;
	gap: 0 8.5%;
}
.w1036 {
	width: 90%;
	max-width: 1036px;
	margin: 0 auto;
	padding-left: 36px;
}

.title_box h3 {
	height: fit-content;
	writing-mode: vertical-rl;
	font-size: 39px;
	font-weight: 400;
	padding-left: 14px;
	position: relative;
}
.title_box h3::before {
	content: '';
	position: absolute;
	top: -50px; left: 0;
	width: 1px; height: calc(100% + 85px);
	background-color: #707070;
}
.title_box h3 span {
	font-size: 24px;
	letter-spacing: 0.2em;
}
.title_box h3 span.for_sp {
	display: none;
}
.title_box .main_img_box {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px 0;
	margin-right: -34px;
}
.title_box .main_img_box p {
	font-size: 18px;
	font-weight: 300;
	line-height: 2.111;
	text-align: center;
}
@media screen and (max-width: 1160px) {
	.title_box h3 {
		font-size: calc((39 / 1160) * 100vw);
	}
	.title_box h3 span {
		font-size: calc((24 / 1160) * 100vw);
	}
	.title_box .main_img_box {
		margin-right: 0;
	}
	.title_box .main_img_box p {
		font-size: calc((18 / 1160) * 100vw);
	}
}
@media screen and (max-width: 768px) {
	.w1036 {
		padding-left: 0;
	}
	.title_box {
		gap: 0 30px;
	}
	.title_box h3 {
		font-size: 30px;
		height: auto;
		line-height: 1.2;
		padding: 25px 0 0 12px;
	}
	.title_box h3 span {
		font-size: 18px;
		letter-spacing: 0.5em;
	}
	.title_box h3::before {
		top: 0;
		height: 100%;
	}
	.title_box h3 span.for_sp {
		display: inline-block;
	}
	.title_box .main_img_box {
		padding-top: 70px;
		gap: 12px 0;
	}
	.title_box .main_img_box p {
		font-size: 16px;
		line-height: 1.875;
		text-align: left;
	}

}

/* 電話連絡先ボックス */
.tel_set {
	max-width: 800px;
	width: 100%;
	padding: 28px 0;
	border: 1px solid #B99C5C;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	margin: auto;
}
.tel_set .num {
	font-size: 40px;
}
@media screen and (max-width: 768px) {
	.tel_set {
		padding: 20px 0;
	}
	.tel_set dd {
		font-size: 16px;
	}
	.tel_set .num {
		font-size: 29px;
	}
}


/*=======================================
	mv_wrap
=======================================*/
#mv_wrap .mv_bg {
	margin: 80px 0 130px;
	width: 100%;
	background: url(../../image/introduction/main.jpg) no-repeat center;
	background-size: cover;
	height: 520px;
}
#mv_wrap .mv_bg .contents {
	display: flex;
	align-items: center;
	writing-mode: vertical-rl;
	height: 100%;
	padding-top: 85px;
}
#mv_wrap .mv_bg .contents .title {
	font-size: 30px;
	letter-spacing: 0.4em;
	color: #fff;
	font-weight: 600;
	padding-left: 8px;
}
@media screen and (max-width: 768px) {
	#mv_wrap .mv_bg {
		margin: 50px 0 65px;
		width: 100%;
		background: url(../../image/introduction/main_sp.jpg) no-repeat center;
		background-size: cover;
		height: 520px;
	}
	#mv_wrap .mv_bg .contents {
		padding-top: 77px;
	}
	#mv_wrap .mv_bg .contents .title {
		font-size: 30px;
		padding-left: 0px;
		letter-spacing: 0.28em;
	}
}

/*=======================================
	intro_wrap
=======================================*/
#intro_wrap .contents {
	margin-bottom: 120px;
	display: flex;
	align-items: center;
	gap: 0 3.35%;
}
#intro_wrap .contents .left {
	width: 42%;
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
}
#intro_wrap .contents .left h2 {
	font-size: 30px;
	letter-spacing: 0.2em;
	font-weight: 600;
	writing-mode: vertical-rl;
	text-orientation: upright;
	line-height: 1.5;
}
#intro_wrap .contents .left p {
	writing-mode: vertical-rl;
	text-orientation: upright;
	padding: 25px 0 0 15px;
	line-height: 2;
	font-size: 18px;
	font-weight: 300;
	letter-spacing: 0.2em;
}
#intro_wrap .contents .right {
	width: calc(100% - 42% - 3.35%);
}

@media screen and (max-width: 1160px) {
	#intro_wrap .contents {
		margin-bottom: 10vw;
	}
	#intro_wrap .contents .left h2 {
		font-size: calc((30 / 1160) * 100vw);
	}
	#intro_wrap .contents .left p {
		font-size: calc((18 / 1160) * 100vw);
		padding: 2.15vw 0 0 1.3vw;
	}
}
@media screen and (max-width: 768px) {
	#intro_wrap .contents {
		margin-bottom: 65px;
		flex-direction: column;
		gap: 20px 0;
		flex-direction: column-reverse;
	}
	#intro_wrap .contents .left {
		width: 100%;
		justify-content: space-around;
		gap: 0 10px;
	}
	#intro_wrap .contents .left h2 {
		font-size: 26px;
		letter-spacing: 0.1em;
	}
	#intro_wrap .contents .left p {
		padding-top: 30px;
		font-size: 16px;
		line-height: 1.85;
	}
	#intro_wrap .contents .right {
		width: 100%;
	}
}
/*=======================================
	info_wrap
=======================================*/
.info_wrap ul.page_jump {
	display: flex;
	gap: 0 70px;
	justify-content: center;
}
.info_wrap ul.page_jump li:first-child {
	padding-left: 15px;
}
.info_wrap ul.page_jump li a {
	font-size: 20px;
	font-weight: 500;
	position: relative;
}
.info_wrap ul.page_jump li a::after {
	content: "";
	width: 100%;
	height: 0.5px;
	display: inline-block;
	position: absolute;
	background: #707070;
	bottom: -8px;
	left: 0;
	transform: scale(0, 1);
	transform-origin: left top;
	transition: transform .3s;
}
@media (hover: hover) {
	.info_wrap ul.page_jump li a:hover::after {
		transform: scale(1, 1);
	}
}
@media screen and (max-width: 768px) {
	.info_wrap ul.page_jump {
		flex-direction: column;
		gap: 23px 0;
		align-items: center;
	}
	.info_wrap ul.page_jump li:first-child {
		padding-left: 0;
	}
	.info_wrap ul.page_jump li a {
		font-size: 16px;
		padding-right: 20px;
		position: relative;
	}
	.info_wrap ul.page_jump li a::after {
		content: '';
		position: absolute;
		inset: 0.5em 0 auto auto;
		width: 8px;
		height: 8px;
		border-top: 1px solid #000;
		border-right: 1px solid #000;
		background: none;
		top: calc(50% - 4px); right: 0;
		-webkit-transform: rotate(135deg) translateY(-50%);
		transform: rotate(135deg) translateY(-50%);
	}

}

/*=======================================
	head_office_sec
=======================================*/
#head_office_sec #jump_link01 {
	padding-top: 120px;
	margin-top: -120px;
}
#head_office_sec {
	padding-top: 325px;
	position: relative;
}
#head_office_sec .line01 {
	content: '';
	position: absolute;
	top: 80px; right: 0;
	width: 1152px;
}

/* title_box */
#head_office_sec .title_box_group {
	position: relative;
	margin-bottom: 68px;
}
#head_office_sec .title_box_group .line02 {
	content: '';
	position: absolute;
	bottom: 145px; left: 0;
	width: 22.5vw;
}


/* swiper_container */
#head_office_sec .swiper_container {
	margin-bottom: 62px;
	position: relative;
}
.swiper-button-prev::after,
.swiper-button-next::after {
  bottom: 0;
  content: "";
  height: 0;
  margin: auto;
  position: absolute;
  top: 50%; transform: translateY(-50%);
  width: 0;
}
/* 前への矢印カスタマイズ */
.swiper-button-prev::after {
	left: 26px;
	width: 34px;
	height: 34px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	-webkit-transform: rotate(-135deg);
	transform: rotate(-135deg);
}
/* 次への矢印カスタマイズ */
.swiper-button-next::after {
	right: 26px;
	width: 34px;
	height: 34px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}
/* 画像サイズ調整 */
.swiper-slide img {
  height: auto;
  width: 100%;
}
@media screen and (max-width: 1160px) {
	.swiper-button-prev::after,
	.swiper-button-next::after {
		width: 3vw; height: 3vw;
	}
}
@media screen and (max-width: 768px) {
	.swiper-button-prev::after {
		left: 8px;
		width: 30px; height: 30px;
	}
	.swiper-button-next::after {
		right: 8px;
		width: 30px; height: 30px;
	}
}



/* tel_area */
#head_office_sec .tel_area {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 45px 0;
}
#head_office_sec .tel_area p {
	line-height: 2;
}
#head_office_sec .tel_area dl dt {
	font-size: 18px;
	margin-bottom: 16px;
}

@media screen and (max-width: 1160px) {
	#head_office_sec {
		padding-top: 28vw;
	}
	#head_office_sec .line01 {
		width: 80vw;
	}
	#head_office_sec .line02 {
		display: none;
	}
}
@media screen and (max-width: 768px) {
	#head_office_sec #jump_link01 {
		padding-top: 70px;
		margin-top: -70px;
	}
	#head_office_sec {
		padding-top: 160px;
	}
	#head_office_sec .line01 {
		width: 360px;
		top: 22px;
	}
	#head_office_sec .title_box_group {
		margin-bottom: 40px;
	}
	#head_office_sec .swiper_container {
		margin-bottom: 30px;
	}
	#head_office_sec .tel_area {
		gap: 25px 0;
	}
	#head_office_sec .tel_area dl dt {
		font-size: 16px;
		margin-bottom: 12px;
	}

}
@media screen and (max-width: 500px) {
	#head_office_sec .line01 {
		width: 96vw;
	}
}



/*=======================================
	head_office_sec
=======================================*/
#trip_office_sec #jump_link02 {
	padding-top: 120px;
	margin-top: -120px;
}
#trip_office_sec {
	padding-top: 355px;
	position: relative;
}
#trip_office_sec .line01 {
	content: '';
	position: absolute;
	top: 150px; left: 0;
	width: 1293px;
}
#trip_office_sec .img_box {
	position: relative;
}
#trip_office_sec .img_box .line02 {
	content: '';
	position: absolute;
	top: 48px; left: 0;
	width: 24.79vw;
}

/* title_box */
#trip_office_sec .title_box {
	margin-bottom: 50px;
}
#trip_office_sec .title_box h3::before {
	height: calc(100% + 10px);
	top: -20px;
}

/* img_box */
#trip_office_sec .img_box {
	margin-bottom: 46px;
}
#trip_office_sec .img_box .img {
	width: 497px;
	margin: 0 auto;
}
#trip_office_sec .title_box .main_img_box {
	padding-top: 30px;
}

/* tel_box02 */
#trip_office_sec .tel_box02 {
	margin-bottom: 105px;
}
#trip_office_sec .tel_box02 dl dt {
	font-size: 18px;
	margin-bottom: 18px;
}
#trip_office_sec .tel_box02 dl dd {
	display: flex;
	gap: 0 18px;
	align-items: end;
}
#trip_office_sec .tel_box02 dl dd span {
	display: block;
	padding-bottom: 12px;
	font-size: 18px;
}

@media screen and (max-width: 1350px) {
	#trip_office_sec .line01 {
		width: 89.79vw;
	}
}

@media screen and (max-width: 1160px) {
	#trip_office_sec {
		padding-top: 30vw;
	}
	#trip_office_sec .line01 {
		top: 12.9vw;
	}
	#trip_office_sec .img_box .line02 {
		display: none;
	}
}

@media screen and (max-width: 768px) {
	#trip_office_sec #jump_link02 {
		padding-top: 70px;
		margin-top: -70px;
	}
	#trip_office_sec .title_box {
		margin-bottom: 35px;
	}
	#trip_office_sec .title_box h3 {
		padding: 0 0 0 12px;
	}
	#trip_office_sec .title_box h3::before {
		height: calc(100% + 15px);
		top: -15px;
	}
	#trip_office_sec .title_box .main_img_box {
		padding-top: 40px;
	}
	#trip_office_sec {
		padding-top: 200px;
	}
	#trip_office_sec .line01 {
		width: 327px;
	}
	#trip_office_sec .tel_box02 {
		margin-bottom: 180px;
	}
	#trip_office_sec .tel_box02 dl dd {
		gap: 0 10px;
	}
	#trip_office_sec .tel_box02 dl dd span {
		font-size: 15px;
		padding-bottom: 8px;
	}
}

@media screen and (max-width: 500px) {
	#trip_office_sec .line01 {
		width: 87.2vw;
		top: 107px;
	}
}