﻿@charset "utf-8";
@use "sass:color";
/*-------------------------------------------------------------------------------------------------------
*********************************************************************************************************
*********************************************************************************************************
******
****** PCスタイル
******
*********************************************************************************************************
*********************************************************************************************************
-------------------------------------------------------------------------------------------------------*/

// breakpointの設定
$inctw: 1408px;
$inct: 1294px;
$md: 980px;
/*$tab: 820px;*/

@mixin inctw {
	@media screen and (max-width: ($inctw)) {
		@content;
	}
}

@mixin inct {
	@media screen and (max-width: ($inct)) {
		@content;
	}
}

@mixin md {
	@media screen and (max-width: ($md)) {
		@content;
	}
}

/*@mixin tab {
	@media screen and (max-width: ($tab)) {
		@content;
	}
}*/

// pxvw
/*@function vw($size, $viewport:1920) {
  $rate: 100 / $viewport;
  @return $rate * $size * 1vw;
}*/
// pxrem
@function vw($size, $viewport: 1920) {
	@return $size * 0.1rem;
}

// 基本カラー、フォントの設定	
$mainColor: #002d4d;
$textColor: #222222;
$pointColor: #e07e00;
$en01: "Philosopher", sans-serif;
$min01: "Yu Mincho", "游明朝", YuMincho, "Hiragino Mincho ProN", "MS PMincho", serif;

html {
	scroll-behavior: smooth;
	margin: 0;
	padding: 0;
	list-style-type: none;
	font-size: 62.5%;
	color: $textColor;
	line-height: 1.6;

	@media screen and (max-width: ($inct)) {
		font-size: 56.25%;
		/* 90% */
		/*font-size: 53.125%;*/
		/* 85% */
	}
}

body,
input,
button,
textarea,
select {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 400;
	font-size: 1.6rem;
}

body.fixed {
	overflow: hidden;
}

img {
	max-width: 100%;
	height: auto;
}

.sp {
	display: none;
}

.pc {
	display: block;
}

.common_container {
	max-width: 1920px;
	margin-left: auto;
	margin-right: auto;
}

.common_pcnolink {
	pointer-events: none;
}

.common_w_inner {
	max-width: 1660px;
	width: 90.625%;
}

.common_inner {
	max-width: 1200px;
	width: 90.625%;
}

.common_s_inner {
	max-width: 850px;
	width: 90.625%;
}

.ank {
	padding-top: vw(100);
	margin-top: vw(-100);
}

.common_txt01 {
	line-height: 2.0;
	letter-spacing: 0.1em;
	font-weight: 500;
}

.common_tx_c {
	text-align: center;
}

.common_tx_l {
	text-align: left;
}

.common_tx_r {
	text-align: right;
}

.common_en01 {
	font-family: $en01;
}

.common_min01 {
	font-family: $min01;
}

.common_btn01 {
	width: 100%;
	max-width: vw(300);
	height: vw(70);

	&.wide_center {
		max-width: vw(360);
		margin-left: auto;
		margin-right: auto;
	}

	a {
		width: 100%;
		height: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
		position: relative;
		background-color: $mainColor;

		&::before {
			content: '';
			position: absolute;
			left: 0;
			bottom: 0;
			width: 100%;
			height: 2px;
			transform: scaleX(0);
			transform-origin: left;
			transition: transform 0.3s ease;
			background-color: $pointColor;
		}

		&:hover {
			&::before {
				transform: scaleX(1);
			}

			.btn_arrow {
				svg {
					opacity: 1;
				}

				&::before {
					width: 26px;
					height: 26px;
				}
			}
		}

		.btn_txt {
			color: #fff;
			font-weight: 500;
			letter-spacing: 0.1em;
		}

		.btn_arrow {
			position: absolute;
			right: 30px;
			top: 50%;
			transform: translateY(-50%);

			svg {
				fill: none;
				width: 1rem;
				height: 1rem;
				position: absolute;
				top: 50%;
				left: 50%;
				transform: translate(-50%, -50%) rotate(.00001deg);
				opacity: 0;
			}

			path {
				stroke: #fff;
			}

			&::before {
				background-color: $pointColor;
				border-radius: 50%;
				content: "";
				top: 50%;
				left: 50%;
				transform: translate(-50%, -50%) rotate(.00001deg);
				position: absolute;
				transition: all 0.3s ease-out;
				width: 6px;
				height: 6px;
			}
		}
	}
}

.common_link01 {
	position: relative;
	display: flex;
	align-items: center;
	flex-wrap: wrap;

	&:hover {
		.btn_arrow {
			svg {
				opacity: 1;
			}

			&::before {
				width: 26px;
				height: 26px;
			}
		}
	}

	.btn_arrow {
		position: absolute;
		right: 30px;
		top: 50%;
		transform: translateY(-50%);

		svg {
			fill: none;
			width: 1rem;
			height: 1rem;
			position: absolute;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%) rotate(.00001deg);
			opacity: 0;
		}

		path {
			stroke: #fff;
		}

		&::before {
			background-color: $pointColor;
			border-radius: 50%;
			content: "";
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%) rotate(.00001deg);
			position: absolute;
			transition: all 0.3s ease-out;
			width: 6px;
			height: 6px;
		}
	}
}

.common_cl_txt {
	color: $pointColor;
	font-weight: 500;
}

.common_top_h2_ttl {
	text-align: center;

	.common_en01 {
		font-size: 12.2rem;
		font-family: $en01;
		font-weight: 500;
		letter-spacing: 0.05em;
		color: #f5f6f9;
		display: block;
		line-height: 1.0;
	}

	.h2_ttl {
		margin-top: vw(20);
		display: inline-block;
		font-size: 2.6rem;
		letter-spacing: 0.1em;
		font-weight: 500;
	}
}

/* ========== header ========== */
header {
	display: flex;
	justify-content: center;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 1000;
}

header:has(.is-scrolled) {
	position: fixed;
	animation: header_fixed_fadein 0.3s ease forwards;
}

@keyframes header_fixed_fadein {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

.header {
	max-width: 1920px;
	width: 100%;
}

.header_inner {
	display: flex;
	justify-content: space-between;
	width: 100%;
	box-sizing: border-box;
	padding: vw(30) vw(30) 0 vw(30);
	gap: vw(20);
}

.header_logo {
	flex-shrink: 0;
	margin-right: auto;

	a {
		width: vw(120);
		height: vw(120);
		background-color: #fff;
		display: flex;
		justify-content: center;
		align-items: center;
		transition: width 0.3s ease;

		&:hover {
			opacity: 0.7;
		}

		img {
			width: vw(96);
			height: auto;
			transition: width 0.3s ease;
		}
	}
}

.header_nav {
	display: flex;
}

.header_nav_list {
	display: flex;
	align-items: center;
	gap: vw(28);
}

.header_nav_item {
	position: relative;
}

.header_nav_item--mega:hover .header_mega_menu {
	opacity: 1;
	pointer-events: auto;
	transform: translateX(-50%) translateY(0);
}

.header_nav_link {
	font-size: 1.4rem;
	font-weight: 500;
	color: #222222;
	letter-spacing: 0.05em;
	white-space: nowrap;
	transition: color 0.2s;

	&:hover {
		color: #002d4d;
	}
}

.header_mega_menu {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%) translateY(10px);
	background: #fff;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
	padding: vw(25) vw(30);
	min-width: vw(640);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s, transform 0.3s;
	z-index: 10;

	&::before {
		content: '';
		position: absolute;
		top: -8px;
		left: 50%;
		transform: translateX(-50%);
		border-left: 8px solid transparent;
		border-right: 8px solid transparent;
		border-bottom: 8px solid #fff;
	}
}

.header_mega_list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: vw(12) vw(16);
}

.header_mega_item a {
	display: block;
	font-size: 1.4rem;
	color: #222222;
	padding: vw(12) vw(14);
	border: 1px solid #e0e0e0;
	border-radius: 4px;
	letter-spacing: 0.05em;
	text-align: center;
	transition: background 0.2s, color 0.2s, border-color 0.2s;

	&:hover {
		background: #002d4d;
		color: #fff;
		border-color: #002d4d;
	}
}

.header_cta_sub {
	font-size: 1.1rem;
	color: #e07e00;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin-bottom: 3px;
	white-space: nowrap;
	width: vw(140);
	height: vw(22);
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	top: 11px;
	z-index: 1;
}

.header_cta_btn {
	display: flex;
	justify-content: center;
	align-items: center;
	width: vw(200);
	height: vw(46);
	transition: opacity 0.3s;
	padding: 5.5px 0 0 0;
	box-sizing: border-box;
	position: relative;
	padding-right: 10px;

	&::before {
		content: '';
		position: absolute;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 2px;
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.3s ease;
	}

	&:hover {
		&::before {
			transform: scaleX(1);
		}

		.btn_arrow {
			svg {
				opacity: 1;
			}

			&::before {
				width: 20px;
				height: 20px;
			}
		}
	}

	.btn_txt {
		font-size: 1.4rem;
		font-weight: 700;
		letter-spacing: 0.1em;
		white-space: nowrap;
		color: #fff;
		position: relative;
		padding-left: 17px;

		&::before {
			content: "";
			position: absolute;
			top: 50%;
			left: 0;
			transform: translate(-50%, -50%);
		}
	}

	.btn_arrow {
		position: absolute;
		right: 18px;
		top: 50%;
		transform: translateY(-50%);
		margin-top: 3px;

		svg {
			fill: none;
			width: 1rem;
			height: 1rem;
			position: absolute;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%) rotate(.00001deg);
			opacity: 0;
		}

		&::before {
			border-radius: 50%;
			content: "";
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%) rotate(.00001deg);
			position: absolute;
			transition: all 0.3s ease-out;
			width: 4px;
			height: 4px;
		}
	}
}

.header_drawer_cta_item--contact {
	.header_cta_sub {
		color: $pointColor;
		background-color: #fffdf3;
	}

	.header_cta_btn {
		background-color: $pointColor;

		.btn_txt {
			&::before {
				background: url(../images/common/common_mail_wht.svg) no-repeat left top;
				background-size: contain;
				width: 17px;
				height: 13px;
			}
		}

		&::before {
			background-color: $mainColor;
		}

		.btn_arrow {

			path {
				stroke: $pointColor;
			}

			&::before {
				background-color: #fff;
			}
		}
	}
}

.header_drawer_cta_item--mypage {
	.header_cta_sub {
		color: $mainColor;
		background-color: #eff4f5;
	}

	.header_cta_btn {
		background-color: $mainColor;

		.btn_txt {
			&::before {
				background: url(../images/common/common_mypage_wht.svg) no-repeat left top;
				width: 14px;
				height: 16px;
			}
		}

		&::before {
			background-color: $pointColor;
		}

		.btn_arrow {

			path {
				stroke: #fff;
			}

			&::before {
				background-color: $pointColor;
			}
		}
	}
}

.header_drawer,
.header_overlay {
	display: none;
}

/* ========== footer ========== */
footer {
	overflow: hidden;
}

.footer {
	position: relative;
	display: flex;
	justify-content: center;
	background: url(../images/common/footer_bk.png) no-repeat center 50px;
	background-size: cover;
	width: 100%;

	padding: vw(180) 0 vw(80) 0;
	margin-top: vw(100);

	.common_inner {
		position: relative;
	}
}

.ft_gray footer {
	background-color: #f5f6f9;
}

.footer_design01 {
	background: url(../images/common/footer_design01.svg) no-repeat left top;
	background-size: contain;
	content: "";
	position: absolute;
	top: calc(-16rem - 100px);
	left: -100px;
	width: vw(277);
	height: vw(213);
	z-index: 3;
	/*animation: floatUpDown 3s ease-in-out infinite;*/
}

.footer_design02 {
	background: url(../images/common/footer_design02.svg) no-repeat left top;
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(-175);
	left: vw(260);
	width: vw(263);
	height: vw(167);
	z-index: 3;
	animation: walkSwing 3s ease-in-out infinite;
	animation-delay: 1s;

	@include inct {
		left: vw(200);
	}

	@include md {
		display: none;
	}
}

.footer_design03 {
	background: url(../images/common/footer_design03.svg) no-repeat left top;
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(-200);
	right: vw(230);
	width: vw(296);
	height: vw(146);
	z-index: 3;
	animation: walkSwing 2.5s ease-in-out infinite;

	@include inct {
		right: vw(200);
	}
}

.footer_design04 {
	background: url(../images/common/footer_design04.svg) no-repeat left top;
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(-260);
	right: vw(-80);
	width: vw(250);
	height: vw(212);
	z-index: 3;
	/*animation: floatUpDown 3s ease-in-out infinite;*/
}

.footer_top {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
}

.footer_logo {
	a {
		width: vw(120);
		height: vw(120);
		background-color: #fff;
		display: flex;
		justify-content: center;
		align-items: center;
		transition: width 0.3s ease;

		&:hover {
			opacity: 0.7;
		}

		img {
			width: vw(96);
			height: auto;
		}
	}
}

.footer_cta {
	display: flex;
	align-items: center;
	gap: vw(20);
}

.footer_cta_item {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.footer_cta_sub {
	font-size: 1.1rem;
	color: #e07e00;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin-bottom: 3px;
	white-space: nowrap;
	width: vw(140);
	height: vw(22);
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: #fff;
	position: relative;
	top: 11px;
	z-index: 1;
}

.footer_cta_btn {
	display: flex;
	justify-content: center;
	align-items: center;
	width: vw(200);
	height: vw(46);
	transition: opacity 0.3s;
	padding: 5.5px 0 0 0;
	box-sizing: border-box;
	position: relative;
	padding-right: 10px;

	&::before {
		content: '';
		position: absolute;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 2px;
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.3s ease;
	}

	&:hover {
		&::before {
			transform: scaleX(1);
		}

		.btn_arrow {
			svg {
				opacity: 1;
			}

			&::before {
				width: 20px;
				height: 20px;
			}
		}
	}

	.btn_txt {
		font-size: 1.4rem;
		font-weight: 700;
		letter-spacing: 0.1em;
		white-space: nowrap;
		color: #fff;
		position: relative;
		padding-left: 17px;

		&::before {
			content: "";
			position: absolute;
			top: 50%;
			left: 0;
			transform: translate(-50%, -50%);
		}
	}

	.btn_arrow {
		position: absolute;
		right: 18px;
		top: 50%;
		transform: translateY(-50%);
		margin-top: 3px;

		svg {
			fill: none;
			width: 1rem;
			height: 1rem;
			position: absolute;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%) rotate(.00001deg);
			opacity: 0;
		}

		&::before {
			border-radius: 50%;
			content: "";
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%) rotate(.00001deg);
			position: absolute;
			transition: all 0.3s ease-out;
			width: 4px;
			height: 4px;
		}
	}
}

.footer_cta_item--contact {
	.footer_cta_sub {
		color: $pointColor;
	}

	.footer_cta_btn {
		background-color: $pointColor;

		.btn_txt {
			&::before {
				background: url(../images/common/common_mail_wht.svg) no-repeat left top;
				width: 17px;
				height: 13px;
			}
		}

		&::before {
			background-color: #fff;
		}

		.btn_arrow {

			path {
				stroke: $pointColor;
			}

			&::before {
				background-color: #fff;
			}
		}
	}
}

.footer_cta_item--mypage {
	.footer_cta_sub {
		color: #fff;
		background-color: $mainColor;
	}

	.footer_cta_btn {
		background-color: #fff;

		.btn_txt {
			color: $mainColor;

			&::before {
				background: url(../images/common/common_mypage.svg) no-repeat left top;
				width: 14px;
				height: 16px;
			}
		}

		&::before {
			background-color: $pointColor;
		}

		.btn_arrow {

			path {
				stroke: #fff;
			}

			&::before {
				background-color: $pointColor;
			}
		}
	}
}

.footer_nav {
	padding: vw(50) 0 0 0;

	.common_inner {
		margin: 0 auto;
	}
}

.footer_nav_list {
	display: flex;
	justify-content: space-around;

	@include md {
		gap: 30px;
		flex-wrap: wrap;
	}
}

.footer_nav_col {
	display: flex;
	flex-direction: column;
}

a.footer_nav_link {
	&:hover {
		opacity: 0.7;
	}
}

.footer_nav_link {
	color: #fff;
	transition: opacity 0.2s;

	&--parent {
		font-weight: 500;
		letter-spacing: 0.1em;
		padding-bottom: vw(10);
		display: block;

		&+.footer_nav_link--parent {
			padding-top: vw(10);
		}

		.btn_arrow {
			display: none;
		}
	}
}

.footer_nav_sub {
	display: flex;
	flex-direction: column;
	gap: vw(10);

	li {
		padding-left: 24px;
		position: relative;

		&::before {
			background-color: #85b5d7;
			content: "";
			position: absolute;
			top: calc(0.5em + 0.5rem);
			left: 0;
			width: 14px;
			height: 1px;
			margin-top: -0.5px;
		}
	}
}

.footer_nav_sub_link {
	color: #fff;
	font-size: 1.4rem;
	letter-spacing: 0.1em;
	line-height: 1.6;
	transition: color 0.2s;

	&:hover {
		opacity: 0.7;
	}
}

.footer_bottom {
	padding: vw(20) 0 vw(70) 0;
	display: flex;
	justify-content: center;
	background-color: #fff;

	.common_inner {
		display: flex;
		justify-content: space-between;
	}
}

.footer_copy {
	font-size: 1.4rem;
	letter-spacing: 0.05em;
}

.footer_link {
	li {
		a {
			font-size: 1.4rem;
			letter-spacing: 0.05em;

			&:hover {
				opacity: 0.7;
			}
		}
	}
}

/* ========== header: PC用ドロワー→インラインナビ変換 ========== */

/* SP の display:none を上書きしてインライン表示 */
.header_drawer {
	display: block;
	position: static;
	width: auto;
	height: auto;
	background: transparent;
	transform: none;
	overflow-y: visible;
	padding-top: 0;
	z-index: auto;
	transition: none;

	.header_logo {
		display: none;
	}
}

.header_drawer_close {
	display: none;
}

.header_drawer_inner {
	display: flex;
}

.header_drawer_list {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	flex-direction: row;
	align-items: center;
	border-top: none;
	/*gap: vw(5) vw(35);*/
	gap: vw(5) clamp(10px, -16.1px + 2.66vw, 35px);
	margin-top: 11px;
	order: 1;
}

.header_sp_nav {
	display: none;
}

.header_drawer_item {
	border-bottom: none;
	/*position: relative;*/
}

.header_drawer_cta {
	order: 2;
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: vw(20);
	margin-top: 0;
	width: auto;
	flex-shrink: 0;
	/*margin-left: vw(50);*/
	margin-left: clamp(20px, -11.3px + 3.19vw, 50px);
}

.header_drawer_item--mega.is-mega-open .header_drawer_accordion_body {
	display: flex;
	opacity: 1;
	pointer-events: auto;
	transform: translateX(-50%) translateY(0);
}

.header_drawer_accordion_body {
	display: none;
	opacity: 0;
	position: absolute;
	top: vw(120);
	left: 50%;
	transform: translate(-50%, 0);
	background: #fff;
	box-shadow: 0 10px 21px rgba(40, 45, 52, 0.1);
	padding: vw(70);
	max-width: vw(1500);
	display: flex;
	justify-content: center;
	width: calc(100% - 6rem);
	pointer-events: none;
	transition: opacity 0.3s, transform 0.3s;
	z-index: 100;

	.common_inner {
		width: 100%;
	}
}

.header_drawer_sub_list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: vw(20) vw(25);
	padding: 0;
}

.header_drawer_sub_ttl {
	position: relative;
	font-size: 2.6rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	padding-right: 3.3rem;
	margin-bottom: vw(20);
	display: inline-block;

	.btn_arrow {
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		right: 0;
		transition: transform .3s ease-out;

		svg {
			fill: none;
			width: 2.3rem;
			height: 2.3rem;
			position: absolute;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%) rotate(.00001deg);

			path {
				stroke: #e07e00;
			}
		}
	}
}

/* リンク先の無い見出しは矢印スペースを詰める */
.header_drawer_sub_ttl--nolink {
	padding-right: 0;
}

a.header_drawer_sub_ttl {
	transition: opacity .3s ease-out;

	&:hover {
		opacity: .6;

		.btn_arrow {
			transform: translateY(-50%) translateX(.5rem);
		}
	}
}

.header_drawer_sub_item {
	display: flex;
	flex-direction: column;
}

.header_drawer_sub_link {
	display: block;
	color: $mainColor;
	padding: vw(20) vw(26) vw(20) vw(5);
	letter-spacing: 0.05em;
	font-weight: 500;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
	flex-grow: 1;
	display: flex;
	align-items: center;
	position: relative;

	&::before {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 1px;
		background: $mainColor;
		transform: scaleX(1);
		transform-origin: left;
		transition: transform 0.3s ease;
	}

	&::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 1px;
		background: $pointColor;
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.3s ease;
	}

	&:hover {
		color: $pointColor;

		&::before {
			transform: scaleX(0);
		}

		&::after {
			transform: scaleX(1);
		}
	}

	.btn_arrow {
		right: 13px;
	}
}

.header_drawer_accordion_icon {
	display: none;
}

.header_drawer_link {
	display: block;
	font-weight: 500;
	color: #fff;
	letter-spacing: 0.1em;
	white-space: nowrap;
	padding: 0;
	transition: color 0.2s;
	position: relative;
	background: none;
	border: none;
	cursor: pointer;
	width: auto;
	justify-content: flex-start;
	box-sizing: border-box;

	&::after {
		content: '';
		position: absolute;
		left: 0;
		bottom: vw(-4);
		width: 100%;
		height: 1px;
		background: #fff;
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.3s ease;
	}

	&:hover {
		&::after {
			transform: scaleX(1);
		}
	}
}

.menu_black .header_drawer_link {
	color: $textColor;

	&::after {
		background: $textColor;
	}
}

.header_drawer_cta_item {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-top: -11px;
}

/* ========== header: SP要素を非表示 / スクロール別デザイン ========== */
.header_hamburger {
	display: none;
}

.header_sp_nav {
	display: none;
}

.header.is-scrolled {

	.header_inner {
		height: vw(100);
		transition: height 0.3s ease;
		background-color: #fff;
		box-shadow: 0 10px 21px rgba(40, 45, 52, 0.1);
		padding: vw(15) vw(30) 0 vw(30);
	}

	.header_drawer_link {
		color: $mainColor;

		&::after {
			background: $mainColor;
		}
	}

	/*.header_logo {
		a {
			width: vw(80);
			height: vw(80);
			transition: width 0.3s ease;

			img {
				width: vw(60);
				transition: width 0.3s ease;
			}
		}
	}*/
}

/* ========== header: mdでSPと同じヘッダーにする ========== */
@include md {
	.header_hamburger {
		display: flex;
	}

	.header_logo {
		position: absolute;
		left: 4%;
		top: 15px;
		z-index: 10000;
		flex-shrink: unset;
		margin-right: 0;

		a {
			width: 75px;
			height: 75px;

			img {
				width: 60px;
			}
		}
	}

	.header_inner {
		padding: 0;
	}

	.header_drawer {
		display: block;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		max-height: 100dvh;
		background: $mainColor;
		transform: translateY(-100%);
		transition: transform 0.35s ease;
		z-index: 1100;
		overflow-y: auto;
		padding-top: 110px;
		box-sizing: border-box;

		&.open {
			transform: translateY(0);
		}

		.header_logo {
			display: none;
		}
	}

	.header_overlay {
		display: block;
	}

	.header_drawer_close {
		display: flex;
	}

	.header_drawer_inner {
		display: flex;
		flex-direction: column;
		padding: 20px 4% 0 4%;
	}

	.header_drawer_cta {
		order: 0;
		flex-direction: row;
		gap: 12px;
		margin-bottom: 24px;
		margin-left: 0;
		margin-top: 0;
		width: 100%;
		flex-shrink: 1;
	}

	.header_drawer_cta_item {
		flex: 1;
		margin-top: -11px;
	}

	.header_drawer_list {
		display: none;
		flex-direction: column;
		flex-wrap: nowrap;
		gap: 0;
		margin-top: 0;
		order: 0;
	}

	.header_sp_nav {
		display: block;
		width: 100%;
	}

	.header.is-scrolled {
		.header_inner {
			height: auto;
			background-color: transparent;
			box-shadow: none;
			padding: 0;
		}

		.header_drawer_link {
			color: #fff;

			&::after {
				background: #fff;
			}
		}
	}

	.js-header.is-scrolled .header_hamburger {
		position: fixed;
		background-color: $mainColor;
		transition: background-color 0.3s ease;
	}

	.header_hamburger {
		width: 71px;
		height: 91px;
		background: none;
		border: none;
		padding: 0;
		cursor: pointer;
		flex-shrink: 0;
		position: absolute;
		top: 0;
		right: 0;
		z-index: 10000;
	}

	.header_hamburger_in {
		width: 100%;
		height: 100%;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 9px;
	}

	.js-header.is-scrolled .header_hamburger {
		position: fixed;
		background-color: $mainColor;
		transition: background-color 0.3s ease;
	}

	.header_hamburger_line {
		display: block;
		width: 35px;
		height: 2px;
		background: #fff;
		border-radius: 2px;
		transition: transform 0.3s, opacity 0.3s;
	}

	.menu_black .js-header:not(.is-scrolled) .header_hamburger_line:not(.open) {
		background: $textColor;
	}

	.js-btn span:nth-child(3) {
		width: 28px;
		margin-right: 7px;
	}

	.js-btn span:nth-child(4) {
		.ttl_menu {
			display: block;
		}

		.ttl_close {
			display: none;
		}
	}

	.js-btn span.open:nth-child(1) {
		transform: translateY(11px) rotate(45deg);
	}

	.js-btn span.open:nth-child(2) {
		opacity: 0;
	}

	.js-btn span.open:nth-child(3) {
		transform: translateY(-11px) rotate(-45deg);
		margin-right: 0;
		width: 35px;
	}

	.js-btn span.open:nth-child(4) {
		.ttl_menu {
			display: none;
		}

		.ttl_close {
			display: block;
			opacity: 1;
		}
	}

	.header_hamburger_ttl {
		span {
			color: #fff;
			font-family: $en01;
			font-weight: 700;
			letter-spacing: 0.1em;
			font-size: 1.2rem;
		}
	}

	.menu_black .js-header:not(.is-scrolled) .header_hamburger_ttl:not(.open) {
		span {
			color: $textColor;
		}
	}

	.footer_nav_col--has_sub {
		.footer_nav_link--parent {
			display: flex;
			align-items: center;
			justify-content: space-between;
			cursor: pointer;
			padding: 10px 2px 10px 10px;
		}

		.footer_nav_sub {
			display: none;
		}
	}

	.footer_nav_list {
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	.footer_nav_col {
		border-bottom: 1px solid rgba(255, 255, 255, 0.7);
	}

	.footer_nav_link--parent {
		font-size: 13px;
		font-weight: 500;
		letter-spacing: 0.1em;
		padding: 10px;
		display: block;
	}

	.footer_nav_link--parent .btn_arrow {
		display: block;
		right: 12px;
	}

	.footer_nav_link--parent+.footer_nav_link--parent {
		border-top: 1px solid rgba(255, 255, 255, 0.7);
	}

	.common_accordion_icon {
		display: block;
		width: 20px;
		height: 20px;
		flex-shrink: 0;
		position: relative;

		&::before,
		&::after {
			content: '';
			position: absolute;
			background: $pointColor;
			border-radius: 2px;
			transition: transform 0.3s ease;
		}

		&::before {
			width: 13px;
			height: 2px;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%);
		}

		&::after {
			width: 2px;
			height: 13px;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%);
		}
	}

	header .footer_link {
		padding: 20px 0 30px 0;

		li {
			a {
				color: #fff;
				text-align: center;
				font-size: 12px;
				letter-spacing: 0.1em;
				font-weight: 500;
				display: block;
				width: 100%;
			}
		}
	}

	.footer_nav_sub {
		display: flex;
		flex-direction: column;
		gap: 5px;
		background: #215d87;
		padding: 20px;
	}

	.header_drawer_cta_item--mypage {
		.header_cta_sub {
			color: #fff;
			background: $mainColor;
			border: 1px solid #fff;
		}
	}

	.header_cta_btn {
		width: 100%;
	}

	.header_cta_btn--mypage {
		background: #fff !important;

		.btn_txt {

			color: $mainColor;
			padding-left: 10px;

			&::before {
				background: url(../images/common/common_mypage.svg) !important;
				width: 14px;
				height: 16px;
			}
		}

		.btn_arrow {
			path {
				stroke: #fff;
			}

			&::before {
				background-color: $pointColor;
			}
		}
	}
}


/* ========== fix_btn ========== */
.fix_btn {
	position: fixed;
	top: vw(200);
	right: vw(30);
	z-index: 100;
	opacity: 0;
	transform: translateX(calc(100% + 10px));
	transition: opacity 0.3s ease, transform 0.75s ease;
	pointer-events: none;

	&.is-active {
		opacity: 1;
		transform: translateX(0);
		pointer-events: auto;
	}

	ul {
		display: flex;
		flex-direction: column;
		gap: vw(20);
		list-style: none;
		padding: 0;
		margin: 0;
	}

	li {
		a {
			display: block;
			background: #fff;
			border-radius: 50%;
			width: 110px;
			height: 110px;
			transition: opacity 0.2s;
			box-shadow: 0 10px 21px rgba(40, 45, 52, 0.1);
			position: relative;

			&:hover {
				background: $pointColor;

				.btn_txt {
					color: #fff;
				}
			}
		}

		&.fix_btn_mailmag {

			a {
				padding-top: 25px;

				.btn_txt {
					padding-top: 35px;

					&::before {
						background: url(../images/common/fix_mail.svg) no-repeat left top;
						background-size: contain;
						width: 39px;
						height: 27px;
						top: 25px
					}
				}

				&:hover {

					.btn_txt {
						&::before {
							background: url(../images/common/fix_mail_on.svg) no-repeat left top;
							background-size: contain;
						}
					}
				}
			}
		}

		&.fix_btn_regist {

			a {
				padding-top: 12px;

				.btn_txt {
					padding-top: 39px;

					&::before {
						background: url(../images/common/fix_regist.svg) no-repeat left top;
						background-size: contain;
						width: 41px;
						height: 39px;
						top: 10px;
					}
				}

				&:hover {

					.btn_txt {
						&::before {
							background: url(../images/common/fix_regist_on.svg) no-repeat left top;
							background-size: contain;
						}
					}
				}
			}
		}

		.btn_txt {
			color: $mainColor;
			font-weight: 700;
			font-size: 1.4rem;
			letter-spacing: 0.1em;
			line-height: 1.4;
			text-align: center;
			display: block;

			&::before {
				content: "";
				position: absolute;
				left: 50%;
				transform: translate(-50%, 0);
			}
		}

		.btn_arrow {
			position: absolute;
			bottom: 3px;
			left: 50%;
			transform: translate(-50%, 0);

			svg {
				fill: none;
				width: 1.2rem;
				height: 1.2rem;
				position: relative;
			}

			path {
				stroke: $mainColor;
			}

		}
	}
}

/* ========================================================= top ============================================================ */

/* ========== top_mv ========== */
.top_mv {
	position: relative;
	width: 100%;
	height: vw(930);
	background-image: url('../images/top/top_main.png');
	background-size: cover;
	background-position: center bottom;
	background-repeat: no-repeat;
	position: relative;
	z-index: 1;
	max-height: 100vh;
	min-height: 600px;
}

.top_mv_inner {
	position: relative;
	z-index: 1;
	max-width: 1660px;
	width: 90.625%;
	margin: 0 auto;
	height: 100%;
	display: flex;
	align-items: center;
}

.top_mv_design01 {
	background: url(../images/top/top_mv_design01.svg);
	background-size: contain;
	content: "";
	position: absolute;
	bottom: vw(-50);
	left: vw(75);
	width: vw(269);
	height: vw(188);
	animation: walkSwing 3s ease-in-out infinite;
}

.top_mv_design02 {
	background: url(../images/top/top_mv_design02.svg);
	background-size: contain;
	content: "";
	position: absolute;
	bottom: vw(-50);
	right: vw(75);
	width: vw(267);
	height: vw(207);
	z-index: 3;
	animation: walkSwing 2.5s ease-in-out infinite;
	transform-origin: center bottom;
}

.top_mv_box {
	/*width: 880px;*/
	width: clamp(780px, 675.6px + 10.65vw, 880px);
	background-color: rgba(255, 255, 255, 0.95);
	/*padding: vw(65) vw(125);*/
	padding: clamp(35px, 3.7px + 3.19vw, 65px) clamp(65px, 2.4px + 6.39vw, 125px);
	margin-left: auto;
	margin-right: auto;
	position: relative;
	box-sizing: border-box;
	text-align: center;

	&::before {
		background-color: $mainColor;
		content: "";
		position: absolute;
		top: 10px;
		left: 50%;
		transform: translate(-50%, 0);
		width: calc(100% - 4rem);
		height: 2px;
	}

	&::after {
		background-color: $mainColor;
		content: "";
		position: absolute;
		bottom: 10px;
		left: 50%;
		transform: translate(-50%, 0);
		width: calc(100% - 4rem);
		height: 2px;
	}

	@include inct {
		margin-top: vw(70);
	}
}

.top_mv_logo {
	font-family: $min01;
	/*font-size: 3.4rem;*/
	font-size: clamp(2.8rem, 2.17rem + 1.02vw, 3.4rem);
	font-weight: 500;
	letter-spacing: 0.18em;
	margin-bottom: vw(10);
	color: $mainColor;
}

.top_mv_catch {
	img {
		@include inct {
			max-width: 65%;
		}
	}
}

.top_mv_sub {
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 2.4;
	letter-spacing: 0.14em;
	/*margin: vw(30) 0 vw(40) 0;*/
	margin:
		clamp(15px, -0.7px + 1.6vw, 30px) 0 0 0;
}

.top_mv_btns {
	margin-top: clamp(20px, -0.9px + 2.13vw, 40px);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: vw(30);
}

.top_mv_btn--service {
	.btn_sub {
		background-color: #fffdf3;
		width: vw(220);
		height: vw(34);
		position: absolute;
		top: vw(-20);
		display: flex;
		justify-content: center;
		align-items: center;
		color: $pointColor;
		letter-spacing: 0.1em;
		font-weight: 500;
		z-index: 1;
		left: 50%;
		transform: translate(-50%, 0);
	}

	a {
		background: $pointColor;
		padding-top: 7px;

		&::before {
			background: $mainColor;
		}

		.btn_txt {
			position: relative;
			padding-left: 21px;

			&::before {
				content: "";
				position: absolute;
				top: 50%;
				left: 0;
				transform: translate(-50%, -50%);
				background: url(../images/common/common_mail_wht.svg) no-repeat left top;
				background-size: contain;
				width: 18px;
				height: 14px;
			}
		}

		.btn_arrow {

			margin-top: 3px;

			&::before {
				background-color: #fff;
			}

			path {
				stroke: $pointColor;
			}
		}
	}
}

/* ========== top_news ========== */
.top_news {
	display: flex;
	justify-content: center;
	padding: vw(50) 0;
}

.top_news_inner {
	display: flex;
	height: vw(80);
}

.top_news_head {
	flex-shrink: 0;
	width: vw(240);
	background-color: $pointColor;
	display: flex;
	align-items: center;
	justify-content: center;
}

.top_news_label {
	color: #fff;
	font-weight: 500;
	letter-spacing: 0.1em;
	white-space: nowrap;
	position: relative;
	padding-left: 34px;

	&::before {
		background: url(../images/common/common_icon_caution.svg) no-repeat left top;
		content: '';
		position: absolute;
		left: 0;
		top: 50%;
		transform: translateY(-50%);
		width: 24px;
		height: 24px;
	}
}

.top_news_list {
	width: calc(100% - 24rem);
	background-color: #fff;
	display: flex;
	align-items: center;
	padding: 0 vw(10) 0 vw(40);
}

.top_news_item {
	width: 100%;
}

.top_news_date {
	color: #a5a5a5;
	letter-spacing: 0.1em;
	flex-shrink: 0;
	font-family: $en01;
	margin-right: vw(30);
}

.top_news_link {
	letter-spacing: 0.1em;
	font-weight: 500;
	transition: color 0.2s;
	display: block;

	&:hover {
		color: $pointColor;
	}
}

/* ========== top_company ========== */
.top_company {
	padding: vw(80) 0;
	background: #fff;

	.common_inner {
		margin: 0 auto;
		position: relative;
	}
}

.top_company_ttl {
	margin-bottom: vw(56);

	.common_en01 {
		margin-bottom: vw(-18);
		color: #fff;
	}
}

.top_company_design01 {
	background: url(../images/top/top_company_design01.svg);
	background-size: contain;
	content: "";
	position: absolute;
	top: 0;
	left: vw(-95);
	width: vw(126);
	height: vw(101);
	animation: floatUpDown 3s ease-in-out infinite;

	@include inctw {
		left: 0;
	}
}

.top_company_design02 {
	background: url(../images/top/top_company_design02.svg);
	background-size: contain;
	content: "";
	position: absolute;
	bottom: vw(-210);
	right: vw(-55);
	width: vw(192);
	height: vw(209);
	z-index: 3;
	animation: walkSwing 2.5s ease-in-out infinite;
	transform-origin: center bottom;

	@include inctw {
		right: 0;
	}
}

.top_company_circles {
	display: flex;
	justify-content: center;
	margin-bottom: vw(56);
	background: url(../images/top/top_company_ct_bk.png) no-repeat center center;
	background-size: contain;
	height: 578px;
	position: relative;
}

.top_company_circle {
	width: 578px;
	height: 578px;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	text-align: center;
	padding: vw(30);
	box-sizing: border-box;

	&.leftbox {
		margin-right: vw(-30);
	}

	&.rightbox {
		margin-left: vw(-30);
	}
}

.top_company_circle_in {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.top_company_circle_en {
	font-family: $en01;
	font-size: 6.2rem;
	font-weight: 500;
	color: $mainColor;
	letter-spacing: 0.1em;
	margin-bottom: vw(5);
	line-height: 1;
}

.top_company_circle_ttl {
	font-family: $min01;
	font-weight: 700;
	color: $mainColor;
	letter-spacing: 0.1em;
	margin-bottom: vw(30);
}

.top_company_circle_txt {
	font-family: $min01;
	font-weight: 700;
	letter-spacing: 0.15em;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 3.2rem;
	line-height: 1.9375;
	min-height: vw(186);

	@include md {
		font-size: clamp(22px, 1.666vw, 32px);
		line-height: 1.9375;
		min-height: calc(1.9375em * 3);
	}
}

.top_company_list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: vw(25);

	li {
		display: flex;
	}

	a {
		font-weight: 500;
		color: $mainColor;
		letter-spacing: 0.1em;
		padding: vw(20) vw(40) vw(20) vw(10);
		position: relative;
		flex-grow: 1;

		&::before {
			content: '';
			position: absolute;
			left: 0;
			bottom: 0;
			width: 100%;
			height: 1px;
			background: $mainColor;
			transform: scaleX(1);
			transform-origin: left;
			transition: transform 0.3s ease;
		}

		&::after {
			content: '';
			position: absolute;
			left: 0;
			bottom: 0;
			width: 100%;
			height: 1px;
			background: $pointColor;
			transform: scaleX(0);
			transform-origin: left;
			transition: transform 0.3s ease;
		}

		&:hover {
			color: $pointColor;

			&::before {
				transform: scaleX(0);
			}

			&::after {
				transform: scaleX(1);
			}
		}
	}
}

/* ========== top_news_company_wrap ========== */
.top_news_company_wrap {
	position: relative;
	/*background: linear-gradient(135deg,
			#edf4f8 0%,
			#ffefdb 80.7%,
			#ffefdb 100%);
	overflow: hidden;*/
	background: url(../images/top/top_company_bk.png) no-repeat center top;
	background-size: cover;
	padding-top: vw(210);
	padding-bottom: vw(170);
	margin-top: vw(-150);
}

.top_news_company_wrap .top_news {
	background: transparent;
}

.top_news_company_wrap .top_company {
	background: transparent;
}


/* ========== top_reason ========== */
.top_reason {
	position: relative;
	height: 280vh;

	/*&::before {
		content: "";
		position: absolute;
		top: -136px;
		left: 0;
		width: 100%;
		height: 136px;
		background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 136' preserveAspectRatio='none'><path d='M0,0 H1920 V36 S1422.41,136 960,136 C463.617,136 0,36 0,36 V0 Z' fill='%23ffffff'/></svg>");
		background-size: 100% 100%;
		background-repeat: no-repeat;
		pointer-events: none;
		z-index: 2;
		transform: scaleY(-1);
	}*/
}

.top_reason_sticky {
	position: sticky;
	top: 0;
	height: 100vh;
	height: vw(800);
	display: flex;
	align-items: center;

	.common_inner {
		margin: 0 auto;
	}
}

.top_reason_inner {
	display: flex;
	align-items: center;
	gap: vw(40);
}

.top_reason_left {
	width: vw(400);
	flex-shrink: 0;
}

.top_reason_ttl {
	text-align: left;
	margin-bottom: vw(24);
	position: relative;

	.common_en01 {
		margin-bottom: vw(-15);
		margin-left: -0.08em;
		display: block;
		position: relative;
		z-index: 5;

		&.before {
			width: 45rem;
			overflow: hidden;
			z-index: 6;
		}

		&.after {
			position: absolute;
			top: 0;
			left: 0;
			color: #fff;
		}
	}
}

.top_reason_txt {
	line-height: 2.0;
	letter-spacing: 0.05em;
	font-weight: 500;
	color: $textColor;
	margin-bottom: vw(40);
}

.top_reason_nums {
	display: flex;
	gap: vw(25);
	margin-bottom: vw(60);
}

.top_reason_num {
	display: flex;
	justify-content: center;
	align-items: center;
	font-family: $en01;
	font-size: 2.0rem;
	color: #cfd6d6;
	letter-spacing: 0.1em;
	cursor: pointer;
	transition: background 0.3s, color 0.3s, border-color 0.3s;

	&.is-active {
		color: $pointColor;
		border-bottom: 1px solid $pointColor;
	}
}

.top_reason_btn a {
	background: $mainColor;
}

.top_reason_right {
	flex: 1;
}

.top_reason_cards {
	position: relative;
	height: vw(600);
}

.top_reason_card {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	background: #f7f6f3;
	overflow: hidden;
	opacity: 0;
	transform: translateY(600px) scale(0.97);
	transition: opacity 0.5s ease, transform 0.5s ease;
	pointer-events: none;
	padding: vw(70) vw(70) vw(60) vw(70);
	height: vw(600);
	/*box-shadow: 10px -10px #e5e4e0;*/

	&.is-active {
		opacity: 1;
		transform: translateY(0) scale(1);
		z-index: 3;
		pointer-events: auto;
	}

	&.is-prev {
		opacity: 1;
		transform: translateX(10px) translateY(-10px) scale(1);
		z-index: 2;
		background: #e5e4e0;
	}

	&.is-prev2 {
		opacity: 1;
		transform: translateX(20px) translateY(-20px) scale(1);
		z-index: 1;
		background: #d5d4d0;
	}
}

.top_reason_card_num {
	display: block;
	font-family: $en01;
	font-size: 2.8rem;
	font-weight: 500;
	color: $pointColor;
	letter-spacing: 0.1em;
	margin-right: vw(35);
}

.top_reason_card_ttl_block {
	display: flex;
	align-items: center;
	margin-bottom: vw(20);
}

.top_reason_card_ttl {
	font-size: 2.6rem;
	font-weight: 500;
	letter-spacing: 0.1em;
}

.top_reason_card_img {
	text-align: center;
	margin-bottom: vw(30);
}

.top_reason_card_desc {
	letter-spacing: 0.1em;
	font-weight: 500;
	line-height: 2;
}

/* ========== top_service ========== */
.top_service {
	padding: vw(260) 0 vw(80) 0;
	/*background: #f5f7fa;*/
	background: url(../images/top/top_service_bk.png) no-repeat center top;
	background-size: cover;
	display: flex;
	justify-content: center;

	position: relative;

	/*&::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 136px;
		background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 136' preserveAspectRatio='none'><path d='M0,0 H1920 V36 S1422.41,136 960,136 C463.617,136 0,36 0,36 V0 Z' fill='%23ffffff'/></svg>");
		background-size: 100% 100%;
		background-repeat: no-repeat;
		pointer-events: none;
		z-index: 2;
	}*/

	/*&::after {
		content: "";
		position: absolute;
		bottom: -136px;
		left: 0;
		width: 100%;
		height: 136px;
		background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 136' preserveAspectRatio='none'><path d='M0,0 H1920 V36 S1422.41,136 960,136 C463.617,136 0,36 0,36 V0 Z' fill='%23f5f7fa'/></svg>");
		background-size: 100% 100%;
		background-repeat: no-repeat;
		pointer-events: none;
		z-index: 2;
	}*/
}


.top_service_ttl {
	margin-bottom: vw(20);

	.common_en01 {
		color: #fff;
	}

	.h2_ttl {
		margin-top: 0;
	}
}

.top_service_desc {
	text-align: center;
	line-height: 2.0;
	font-weight: 500;
	letter-spacing: 0.1em;
	color: $textColor;
	margin-bottom: vw(65);
	margin-top: vw(40);
}

.top_service_list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	// タイトル行・画像行・テキスト行 × 2カード行、間にgap行
	grid-template-rows: auto auto auto vw(50) auto auto auto;
	column-gap: vw(20);
	row-gap: 0;
	margin-bottom: vw(75);
}

.top_service_list>li {
	display: contents;
}

.top_service_list>li:nth-child(n+5) .top_service_card {
	grid-row: 5 / span 3;
}

@media screen and (max-width: 1248px) {
	.top_service_list {
		grid-template-columns: repeat(3, 1fr);
		grid-template-rows: auto auto auto vw(50) auto auto auto vw(50) auto auto auto;
	}

	.top_service_list>li:nth-child(n+4) .top_service_card {
		grid-row: 5 / span 3;
	}

	.top_service_list>li:nth-child(n+7) .top_service_card {
		grid-row: 9 / span 3;
	}
}

.top_service_card {
	display: grid;
	grid-template-rows: subgrid;
	grid-row: span 3;
	background: #fff;
	border-top: 2px solid $mainColor;
	padding: vw(40) vw(35);
	position: relative;

	&::before {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 2px;
		transform: scaleX(1);
		transform-origin: left;
		transition: transform 0.3s ease;
		background-color: $mainColor;
	}

	&::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 2px;
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.3s ease;
		background-color: $pointColor;
	}

	&:hover {
		&::before {
			transform: scaleX(0);
		}

		&::after {
			transform: scaleX(1);
		}

		.btn_arrow {
			&::before {
				background-color: $pointColor;
			}
		}
	}

	.btn_arrow {
		position: absolute;
		bottom: 35px;
		right: 33px;

		svg {
			fill: none;
			width: 1rem;
			height: 1rem;
			position: absolute;
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%);
		}

		path {
			stroke: #fff;
		}

		&::before {
			background-color: $mainColor;
			border-radius: 50%;
			content: "";
			top: 50%;
			left: 50%;
			transform: translate(-50%, -50%);
			position: absolute;
			transition: all 0.3s ease-out;
			width: 26px;
			height: 26px;
		}
	}
}

.top_service_card_ttl {
	font-size: 2.6rem;
	font-weight: 500;
	color: $mainColor;
	text-align: center;
	line-height: 1.8;
	align-self: center;

	@include inct {
		font-size: 1.9rem;
	}

	@include md {
		font-size: 1.8rem;
	}
}

.top_service_card_img {
	width: 100%;
	text-align: center;
	margin: vw(25) 0 vw(30) 0;
}

.top_service_card_desc {
	line-height: 2.25;
	letter-spacing: 0.05em;
	font-weight: 500;
	text-align: justify;
}

.top_service_btn_wrap {
	display: flex;
	justify-content: center;
}

.top_service_btn {
	max-width: vw(360);
}

/* ========== top_library ========== */
.top_library {
	background: url(../images/top/top_library_bk.png) no-repeat center top;
	background-size: cover;
	padding: vw(220) 0 vw(140) 0;
	overflow: hidden;

	.common_inner {
		margin: 0 auto;
	}
}

.top_library_ttl {
	margin-bottom: vw(20);

	.h2_ttl {
		margin-top: 0;
	}
}

.top_library_catch {
	display: table;
	font-family: $min01;
	font-size: 3.2rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-align: center;
	margin-bottom: vw(70);
	border-bottom: 1px solid #282828;
	margin-bottom: vw(30);
	margin-left: auto;
	margin-right: auto;
}

.top_library_txt {
	line-height: 2.0;
	letter-spacing: 0.1em;
	font-weight: 500;
	text-align: center;
	margin-bottom: vw(30);
}

/*.top_library_slider {
	margin-top: vw(70);
	margin-bottom: vw(70);

	img {
		width: 100%;
		height: auto;
		display: block;
		aspect-ratio: 335 / 177;
	}
}*/

.top_library_list {
	max-width: 1070px;
	margin: vw(70) auto vw(60) auto;

	ul {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: vw(30);
	}
}

.top_library_btn_wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0 auto;
}

.top_library_btn_sub {
	letter-spacing: 0.1em;
	font-weight: 500;
	display: flex;
	align-items: center;
	justify-content: center;
	width: vw(220);
	height: vw(34);
	background-color: #eff4f5;
	position: relative;
	top: vw(17);
	z-index: 1;
}

.top_library_btn {
	max-width: vw(360);

	a {
		padding: 10px 0 0 0;
		background: $mainColor;

		.btn_arrow {
			margin-top: 5px;
		}
	}
}

/* ========== top_content ========== */
.top_content {
	padding: vw(160) 0 vw(100) 0;
	/*background: #f5f6f9;*/
	background: url(../images/top/top_content_bk.png) no-repeat center top;
	background-size: cover;
	display: flex;
	justify-content: center;
	position: relative;

	/*&::after {
		content: "";
		position: absolute;
		top: -136px;
		left: 0;
		width: 100%;
		height: 136px;
		background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 136' preserveAspectRatio='none'><path d='M0,0 H1920 V36 S1422.41,136 960,136 C463.617,136 0,36 0,36 V0 Z' fill='%23f5f7fa'/></svg>");
		background-size: 100% 100%;
		background-repeat: no-repeat;
		pointer-events: none;
		z-index: 2;
		transform: scaleY(-1);
	}*/

	.common_w_inner {
		margin: 0 auto;
		position: relative;
	}
}

.top_content_design01 {
	background: url(../images/top/top_content_design01.svg);
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(-236);
	left: vw(50);
	width: vw(170);
	height: vw(230);
	z-index: 3;
	animation: floatUpDown 3s ease-in-out infinite;
}

.top_content_design02 {
	background: url(../images/top/top_content_design02.svg);
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(-156);
	right: vw(90);
	width: vw(124);
	height: vw(99);
	z-index: 3;
	animation: walkSwing 2s ease-in-out infinite;
}

.top_content_ttl {
	margin-bottom: vw(20);

	.common_en01 {
		color: #fff;
	}

	.h2_ttl {
		margin-top: 0;
	}
}

.top_content_lead {
	text-align: center;
	font-weight: 500;
	letter-spacing: 0.1em;
	margin-bottom: vw(70);
	margin-top: vw(40);
}

.top_content_list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: vw(24);
}

.top_content_item {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.top_content_img {
	width: 100%;
	aspect-ratio: 390 / 280;
	overflow: hidden;
	margin-bottom: vw(25);

	img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
}

.top_content_item_ttl {
	font-size: 2.2rem;
	font-weight: 500;
	color: $mainColor;
	letter-spacing: 0.1em;
	text-align: center;
	margin-bottom: vw(25);
	flex: 1;
}

.top_content_btn {
	a {
		padding: 0 4rem 0 2rem;

		.btn_txt {
			letter-spacing: 0;
		}

		.btn_arrow {
			@include md {
				right: 20px;
			}
		}
	}
}


/* ========== top_column ========== */
.top_column {
	background: url(../images/top/top_column_bk.png) no-repeat center top;
	background-size: cover;
	width: 100%;
	position: relative;
	z-index: 1;
	min-height: vw(1180);

	padding: vw(180) 0 vw(180) 0;
	margin-top: vw(-100);

	.common_inner {
		margin: 0 auto;
	}
}

.top_column_ttl {
	.h2_ttl {
		color: #fff;
		margin-top: 0;
	}

	.common_en01 {
		color: #0d436a;
	}
}

.top_column_catch {
	color: #fff;
	text-align: center;
	letter-spacing: 0.1em;
	font-weight: 500;
	margin-top: vw(45);
	font-size: 2rem;
}

.top_column_lead {
	color: #fff;
	text-align: center;
	letter-spacing: 0.1em;
	font-weight: 500;
	margin-top: vw(20);
	margin-bottom: vw(70);
}

.top_column_slider_wrap {
	overflow: hidden;
	margin-bottom: vw(60);
}

.top_column_slider {
	.splide__arrow {
		background: transparent;
		border: none;
		box-shadow: none;
		opacity: 1;
		width: vw(76);
		height: vw(76);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: center;
		top: min(calc(10.34vw - 6.84px), 130px);

		svg {
			display: none;
		}

		&:hover {
			opacity: 0.7;
		}

		&--prev {
			background-image: url('../images/top/top_column_prev.png');
		}

		&--next {
			background-image: url('../images/top/top_column_next.png');
		}
	}

	.splide__arrow--prev {
		left: calc(50% - 3.8rem - 685px);

		@include inctw {
			left: 20px;
		}
	}

	.splide__arrow--next {
		left: calc(50% - 3.8rem + 685px);

		@include inctw {
			left: inherit;
			right: 20px;
		}
	}

	.splide__slide {
		opacity: 0.3;
		transition: opacity 0.4s ease;

		&.is-visible {
			opacity: 1;
		}
	}
}

.top_column_card {
	display: block;

	&:hover {
		opacity: 0.7;

		.top_column_card_img img {
			transform: scale(1.04);
		}
	}
}

.top_column_card_img {
	width: 100%;
	aspect-ratio: 380 / 260;
	overflow: hidden;
	margin-bottom: vw(25);
	backface-visibility: hidden;

	img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
		will-change: transform;
		backface-visibility: hidden;
	}
}

.top_column_card_date {
	color: #82a1b8;
	letter-spacing: 0.1em;
	font-family: $en01;
	margin-bottom: vw(10);
}

.top_column_card_ttl {
	font-size: 2.0rem;
	font-weight: 500;
	color: #fff;
	letter-spacing: 0.1em;
	line-height: 1.4;
}

.top_column_btn_wrap {
	display: flex;
	justify-content: center;
	margin: 0 auto;
}

.top_column_btn {
	max-width: vw(360);

	a {
		background: #fff;

		.btn_txt {
			color: $mainColor;
			font-weight: 700;
		}
	}
}


/* ========== top_news_block ========== */
.top_news_block {
	padding: vw(150) 0 vw(100) 0;
	display: flex;
	justify-content: center;
	position: relative;
}

.top_news_block_inner {
	display: flex;
	gap: vw(60);
	align-items: flex-start;
	position: relative;
}

.top_news_block_design01 {
	background: url(../images/top/top_news_design01.svg);
	background-size: contain;
	content: "";
	position: absolute;
	top: calc(-15rem - 100px);
	right: vw(-30);
	width: vw(180);
	height: vw(236);
	z-index: 3;
	animation: floatUpDown 3s ease-in-out infinite;

	@include inctw {
		right: 0;
	}
}

.top_news_block_left {
	width: vw(360);
	flex-shrink: 0;
}

.top_news_block_ttl {
	text-align: left;
	margin-bottom: vw(20);

	.h2_ttl {
		margin-top: 0;
	}
}

.top_news_block_lead {
	line-height: 2.0;
	letter-spacing: 0.1em;
	color: $textColor;
	margin-top: vw(40);
	margin-bottom: vw(50);
	font-weight: 500;
}

.top_news_block_btn {
	a {
		background: $mainColor;
	}
}

.top_news_block_right {
	flex: 1;
}

.top_news_block_list {
	display: flex;
	flex-direction: column;
}

.top_news_block_item {
	border-bottom: 1px solid #e4e6ea;

	a {
		padding: vw(30) vw(60) vw(30) vw(20);

		&:hover {
			.top_news_block_link {
				color: $pointColor;
			}
		}
	}
}

.top_news_block_meta {
	display: flex;
	align-items: center;
	gap: vw(20);
	margin-bottom: vw(15);
}

.top_news_block_date {
	font-family: $en01;
	color: #a5a5a5;
	letter-spacing: 0.1em;
}

.top_news_block_cat {
	font-size: 1.4rem;
	color: $mainColor;
	background: #eff4f5;
	padding: 2px 15px;
	letter-spacing: 0.1em;
	min-width: vw(120);
	height: vw(30);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 500;
}

.top_news_block_link {
	color: $textColor;
	letter-spacing: 0.1em;
	transition: color 0.2s;
	font-weight: 500;
	width: 100%;
}

/* ========== top_recruit ========== */
.top_recruit {
	padding: vw(100) 0 vw(80) 0;
	background: #fff;

	.common_w_inner {
		margin-left: auto;
		margin-right: auto;
	}

	@include md {

		.common_btn01.sp {
			display: block;
			margin-top: vw(50);
			margin-left: auto;
			margin-right: auto;
		}
	}
}

.top_recruit_inner {
	display: flex;
	align-items: center;

	@include md {
		flex-wrap: wrap;
	}
}

.top_recruit_img {
	/*width: 50%;*/
	width: clamp(45%, 38.3% + 0.6vw, 50%);
	height: vw(560);
	flex-shrink: 0;
	background: url(../images/top/top_recruit_img01.jpg) no-repeat left bottom;
	background-size: cover;
	position: relative;

	.common_en01 {
		position: absolute;
		content: "";
		left: vw(30);
		bottom: vw(30);
		color: #d5e0f1;
		/*font-size: 4.6rem;*/
		font-size: clamp(28px, 9.2px + 1.92vw, 46px);
		line-height: 1.1;
	}

	@include md {
		width: 100%;
		order: 1;
	}
}

.top_recruit_design01 {
	animation: rotateCircle 20s linear infinite;
	transform-origin: center center;
	position: absolute;
	content: "";
	background: url(../images/top/top_recruit_design.png) no-repeat left top;
	right: -50px;
	top: -50px;
	width: 180px;
	height: 183px;

	@include md {
		right: 4.6875%
	}
}

.top_recruit_body {
	flex: 1;
	/*padding-left: vw(120);*/
	padding-left: clamp(50px, -23.1px + 7.45vw, 120px);

	@include md {
		width: 100%;
		order: 0;

		.common_btn01.pc {
			display: none;
		}
	}
}

.top_recruit_ttl {
	text-align: left;

	.common_en01 {
		margin-left: -0.1em;
	}

	.h2_ttl {
		margin-top: 0;
	}
}

.top_recruit_catch {
	font-size: 3.2rem;
	font-weight: 500;
	color: $mainColor;
	line-height: 1.8;
	letter-spacing: 0.1em;
	margin: vw(50) 0 vw(60) 0;
}

.top_recruit_btn {
	a {
		background: $mainColor;
	}
}

/* ========== top_banner ========== */
.top_banner {
	padding: vw(20) 0 vw(290) 0;
	background: #f5f7fa;
	display: flex;
	justify-content: center;
}

.top_banner_link {
	display: flex;
	justify-content: center;
	align-items: center;
	background: url(../images/top/top_bnr_bk.jpg) no-repeat center top;
	background-size: cover;
	height: vw(280);
	padding: vw(70);
	box-sizing: border-box;
}

.top_banner_in {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
}

.top_banner_disc {
	padding-left: vw(80);

	@include md {
		padding-left: 0;
	}
}

.top_banner_ttl {
	color: #fff;
	font-size: 4.2rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	margin-bottom: vw(30);
}

.top_banner_txt {
	color: #fff;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 2;
}

.top_banner_btn {

	a {
		background: #fff;

		.btn_txt {
			color: $mainColor;
			font-weight: 700;
		}
	}
}

/* ========================================================= sub ============================================================ */
.main_imgnone {
	margin-top: vw(150);
}

.common_sub_main {
	background: url(../images/common/sub_mainimg.jpg) no-repeat center top;
	background-size: cover;
	display: flex;
	justify-content: center;
	height: vw(520);
	width: 100%;

	.common_inner {
		display: flex;
		justify-content: center;
		align-items: center;
		padding-top: vw(100);
	}

	&_box {
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
		text-align: center;
	}

	.h1_ttl {
		font-size: 2.2rem;
		color: #fff;
		letter-spacing: 0.1em;
		font-weight: 500;
		position: relative;
	}

	.common_en01 {
		font-size: 10.2rem;
		letter-spacing: 0.1em;
		color: #fff;
		line-height: 1.2;
		display: block;
	}
}

.breadcrumb {
	padding: vw(25) 0;
	display: flex;
	justify-content: center;
}

.breadcrumb_list {
	display: flex;
	flex-wrap: wrap;
}

.breadcrumb_list span {
	position: relative;
	letter-spacing: 0.1em;
	line-height: 2;
	font-weight: 500;
}

.breadcrumb_list a {
	margin-right: 15px;
	letter-spacing: 0.1em;
	line-height: 2.25;
	font-weight: 500;
	color: $mainColor;
	position: relative;
	padding-right: 31px;
	display: block;
	font-weight: 500;
	text-decoration: underline;
}

.breadcrumb_list a::after {
	background: url(../images/common/icon_arrow_blue.svg) no-repeat left top;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translate(0, -50%);
	content: "";
	width: 16px;
	height: 11px;
}

.breadcrumb_list a:hover {
	text-decoration: none;
}

.wp-pagenavi {
	clear: both;
	text-align: center;
	margin-top: vw(80);
	display: flex;
	justify-content: center;
	gap: 1rem;
}

.wp-pagenavi a,
.wp-pagenavi span {
	width: 36px;
	height: 36px;
	border-radius: 9999px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: $en01;
	color: $mainColor;
	font-weight: 500;
	font-size: 1.6rem;
	border: none !important;
}

.wp-pagenavi a:hover,
.wp-pagenavi span.current {
	border: 1px solid $mainColor !important;
	color: $mainColor !important;
	background-color: #f5f6f9 !important;
}

.wp-pagenavi span.pages {
	border-radius: 0;
	border: none !important;
	background-color: inherit !important;
	color: $textColor !important;
}

.wp-pagenavi .nextpostslink {
	position: relative;
	margin-left: vw(10);
	background: url(../images/common/icon_next.png) no-repeat center center;

	&:hover {
		opacity: 0.7;
	}
}

.wp-pagenavi .previouspostslink {
	position: relative;
	background-color: $mainColor;
	background: url(../images/common/icon_prev.png) no-repeat center center;

	&:hover {
		opacity: 0.7;
	}
}

.entry_title {
	font-weight: 700;
	font-size: 2.8rem;
	padding-bottom: vw(30);
	margin-bottom: vw(20);
	border-bottom: 1px solid #e4e6ea;
}

.entry_body {
	margin-bottom: vw(100);

	>figure {
		margin: vw(40) 0;

		figcaption {
			font-size: 1.4rem;
			margin-top: vw(15);
			font-weight: 500;
		}
	}

	p {
		line-height: 2.25;
		font-weight: 500;
		margin: vw(40) 0;
	}

	h2 {
		line-height: 1.4;
		font-size: 2.4rem;
		font-weight: 700;
		border-top: 2px solid $mainColor;
		border-bottom: 2px solid $mainColor;
		margin: vw(60) 0 vw(60) 0;
		padding: vw(13) vw(20);
	}

	h3 {
		line-height: 1.4;
		font-size: 2.0rem;
		font-weight: 700;
		border-left: 2px solid $mainColor;
		margin: vw(40) 0 vw(40) 0;
		padding-left: 0.5em;
	}

	h4 {
		line-height: 1.4;
		font-size: 1.8rem;
		font-weight: 700;
		margin: vw(20) 0 vw(20) 0;
	}

	ul {
		margin: 2rem 0;

		li {
			margin-bottom: 5px;
			font-size: 1.6rem;
			font-weight: 500;
			position: relative;
			padding-left: 1.7em;

			&::before {
				content: "●";
				position: absolute;
				top: 0.25em;
				left: 0;
				color: $mainColor;
				font-size: 10px;
			}
		}
	}

	/*ol {
		margin: 2rem 0;

		li {
			margin-bottom: 5px;
			font-size: 1.6rem;
			font-weight: 500;
			list-style-type: none;
			counter-increment: num 1;
			position: relative;
			padding-left: 1.7em;

			&::before {
				content: counter(num)".";
				color: $mainColor;
				font-weight: 900;
				font-size: 1.6rem;
				position: absolute;
				top: 0;
				left: 0;
			}
		}
	}*/

	ol {
		margin: 2rem 0;
		counter-reset: item;
		list-style: none;
		padding-left: 0;

		li {
			display: block;
			counter-increment: item;

			&::before {
				content: counters(item, "-") ". ";
				font-weight: bold;
			}

			ol {
				margin: 0.5rem 0 1rem 0;
				counter-reset: item;
				list-style: none;
				padding-left: 1em;
				margin-top: .5em;
			}
		}
	}

	pre {
		margin: 6rem 0;
		background-color: #f7f6f3;
		border: 2px solid $mainColor;
		padding: 4rem 3.5rem;
		font-weight: 500;
		line-height: 2.0;
	}

	a:not(.wp-block-button__link):not(.wp-blogcard-item) {
		color: $mainColor;
		font-weight: 500;
		position: relative;
		display: inline-block;
		padding-right: 21px;
		border-bottom: 1px solid $mainColor;
		margin: vw(30) 0 vw(30) 0;

		&::before {
			background: url(../images/common/icon_arrow_blue.svg) no-repeat left top;
			position: absolute;
			top: 50%;
			right: 0;
			transform: translate(0, -50%);
			content: "";
			width: 16px;
			height: 11px;
		}

		&:hover {
			opacity: 0.7;
		}
	}

	.wp-block-button {
		max-width: vw(300);
		height: vw(70);
		margin: vw(30) 0 vw(30) 0;
	}

	a.wp-block-button__link {
		width: vw(300);
		height: vw(70);
		display: flex;
		justify-content: center;
		align-items: center;
		position: relative;
		background-color: $mainColor;
		color: #fff;
		font-weight: 500;
		letter-spacing: 0.1em;
		border-radius: 0;

		&::before {
			content: '';
			position: absolute;
			left: 0;
			bottom: 0;
			width: 100%;
			height: 2px;
			transform: scaleX(0);
			transform-origin: left;
			transition: transform 0.3s ease;
			background-color: $pointColor;
		}

		&:hover {
			&::before {
				transform: scaleX(1);
			}

			.btn_arrow {
				svg {
					opacity: 1;
				}

				&::before {
					width: 26px;
					height: 26px;
				}
			}
		}

		.btn_txt {}

		.btn_arrow {
			position: absolute;
			right: 30px;
			top: 50%;
			transform: translateY(-50%);

			svg {
				fill: none;
				width: 1rem;
				height: 1rem;
				position: absolute;
				top: 50%;
				left: 50%;
				transform: translate(-50%, -50%) rotate(.00001deg);
				opacity: 0;
			}

			path {
				stroke: #fff;
			}

			&::before {
				background-color: $pointColor;
				border-radius: 50%;
				content: "";
				top: 50%;
				left: 50%;
				transform: translate(-50%, -50%) rotate(.00001deg);
				position: absolute;
				transition: all 0.3s ease-out;
				width: 6px;
				height: 6px;
			}
		}
	}
}

.sub_single_entry_box {
	display: flex;
	flex-wrap: wrap;
	gap: vw(50);

	.entry_article {
		width: calc(75% - 5rem);

		@include md {
			width: 100%;
		}
	}

	.side_area {
		width: 25%;

		@include md {
			margin-top: 50px;
			width: 100%;
		}

		.side_title {
			color: #fff;
			background-color: $mainColor;
			height: vw(60);
			font-size: 2.4rem;
			display: flex;
			align-items: center;
			justify-content: center;
			font-weight: 400;
		}

		.side_item {
			&:not(:last-child) {
				border-bottom: 1px solid #dddddd;
			}

			a {
				background-color: #f5f6f9;
				padding: vw(18) vw(60) vw(18) vw(20);
				font-weight: 500;
			}
		}
	}
}

.common_sub_container_bg {
	display: flex;
	justify-content: center;
	padding: vw(65) 0 vw(120) 0;
}

.common_sub_container02_bg {
	display: flex;
	justify-content: center;
	position: relative;
	background-color: #f5f6f9;
	margin-top: vw(100);
	padding: vw(65) 0 vw(120) 0;

	&::before {
		background: url(../images/common/bk_circle_top_gray.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		top: vw(-100);
		left: 0;
		width: 100%;
		height: vw(100);
	}
}

.common_sub_lead {
	text-align: center;
	margin-bottom: vw(85);
	p + p{
		margin-top: vw(30);
	}
}

.common_sub_h2_ttl {
	text-align: center;
	margin-bottom: vw(40);

	.common_en01 {
		font-size: 12.2rem;
		font-family: $en01;
		font-weight: 500;
		letter-spacing: 0.05em;
		color: #fff;
		display: block;
		line-height: 1.0;
	}

	.h2_ttl {
		margin-top: vw(5);
		display: inline-block;
		font-size: 2.6rem;
		letter-spacing: 0.1em;
		font-weight: 500;
	}
}

.common_form {
	&_ttl {
		text-align: center;
		font-size: 3.0rem;
		font-weight: 500;
		letter-spacing: 0.05em;
		line-height: 1.5;
		margin-bottom: vw(40);
	}

	.common_sub_lead {
		margin-bottom: vw(60);
	}
}

.common_form_thanks_box {
	padding: vw(75);
	background-color: #f5f6f9;
	margin-bottom: vw(60);
	position: relative;

	&_ttl {
		font-size: 2rem;
		font-weight: 700;
		text-align: center;
		margin-bottom: vw(15);
	}

	&_add {
		letter-spacing: 0.1em;
		font-weight: 500;
		text-align: center;
		line-height: 2.25;
		margin-bottom: vw(35);
	}

	&_card {
		background-color: #fff;
		border: 1px solid #16376f;
		padding: vw(30);
		width: vw(600);
		margin-left: auto;
		margin-right: auto;
		box-sizing: border-box;
		display: grid;
		grid-template-columns: max-content;
		justify-content: center;

		dl {
			line-height: 2;

			&+dl {
				margin-top: vw(15);
				padding-top: vw(15);
			}

			dt {
				display: inline;
				font-weight: 500;
				letter-spacing: 0.1em;
				font-weight: 700;

				&::after {
					content: "：";
					margin: 0 0.25em;
				}
			}

			dd {
				display: inline;
				font-weight: 500;
				letter-spacing: 0.1em;
				margin-left: 0;

				&::after {
					content: "\A";
					white-space: pre;
				}
			}
		}
	}
}

/* ========== service ========== */
.service .common_sub_main {
	background: url(../images/service/service_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

/* ========== sub_service_list ========== */
.sub_service_list_inner {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: vw(50) vw(40);
	list-style: none;
	padding: 0;
	margin: 0;
}

.sub_service_item {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: vw(40) vw(40);
	background-color: #f5f6f9;
	border-top: 2px solid $mainColor;
	border-bottom: 2px solid $mainColor;
	box-sizing: border-box;
}

.sub_service_card_icon {
	margin-right: vw(30);
	width: vw(136);
	height: vw(136);
	background-color: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;

	img {
		width: vw(79);
	}
}

.sub_service_card_ttl {
	display: flex;
	align-items: center;
	margin-bottom: vw(30);

	h2 {
		font-size: 2.8rem;
		font-weight: 500;
		color: $mainColor;
		line-height: 1.4;
		width: calc(100% - 16.6rem);
	}
}

.sub_service_card_desc {
	line-height: 2.25;
	letter-spacing: 0.1em;
	font-weight: 500;
	text-align: justify;
	flex: 1;
	margin-bottom: vw(30);
}

.sub_service_card_btn {
	margin: 0 auto;
	max-width: vw(360);
}

/* ========== library ========== */
.library .common_sub_main {
	background: url(../images/library/library_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_libraly_intro {
	background: #f5f6f9;
	padding: vw(90) vw(80) vw(70) vw(80);
	margin-bottom: vw(160);
	position: relative;

	&::after {
		content: '';
		position: absolute;
		bottom: vw(-80);
		left: 50%;
		transform: translateX(-50%);
		border-left: vw(140) solid transparent;
		border-right: vw(140) solid transparent;
		border-top: vw(80) solid #f5f6f9;
	}
}

.sub_libraly_design01 {
	background: url(../images/library/libraly_design01.png) no-repeat center center;
	background-size: contain;
	content: "";
	position: absolute;
	bottom: vw(45);
	right: vw(65);
	width: vw(139);
	height: vw(205);
	animation: floatUpDown 3s ease-in-out infinite;

	@include md {
		bottom: vw(250);
	}
}

.sub_libraly_intro_ttl {
	text-align: center;
	margin-bottom: vw(50);

	.h2_ttl {
		font-size: 3.8rem;
		font-weight: 500;
		letter-spacing: 0.1em;
	}
}

.sub_libraly_intro_box {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: vw(40);
	padding: vw(40) vw(30) vw(40) vw(15);
	border-top: 2px dotted $mainColor;
	border-bottom: 2px dotted $mainColor;
	margin-bottom: vw(60);
}

.sub_libraly_intro_img {
	/*flex: 0 0 vw(505);*/
	width: 45%;

	@include md {
		width: 100%;
		max-width: 505px;
		margin-left: auto;
		margin-right: auto;
	}

	img {
		width: 100%;
		display: block;
	}
}

.sub_libraly_intro_desc {
	/*flex: 1;*/
	width: calc(55% - 4rem);

	@include md {
		width: 100%;
	}

	p {
		line-height: 2.25;
		letter-spacing: 0.1em;
		font-weight: 500;
	}
}

.sub_libraly_point_list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: vw(30);
	margin-bottom: vw(60);
}

.sub_libraly_point_item {
	background: #fff;
	border-radius: 50%;
	padding: vw(20);
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	min-width: 285px;
	min-height: 285px;
}

.sub_libraly_point_label {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: vw(5);
	margin-bottom: vw(15);
	color: $mainColor;
}

.sub_libraly_point_en {
	font-family: $en01;
	font-size: 1.8rem;
	letter-spacing: 0.1em;
	line-height: 1;
	margin-bottom: 5px;
}

.sub_libraly_point_num {
	font-family: $en01;
	font-size: 3.2rem;
	letter-spacing: 0.1em;
	line-height: 1;
}

.sub_libraly_point_txt {
	font-family: $min01;
	font-size: 2.2rem;
	letter-spacing: 0.05em;
	line-height: 1.5;
	font-weight: 500;
	min-height: calc(2.2rem * 4 * 1.5);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;

	.common_cl_txt {
		text-decoration: underline;
	}
}

.sub_libraly_intro_fix {
	text-align: center;

	&_ttl {
		font-family: $min01;
		font-size: 3.2rem;
		letter-spacing: 0.1em;
		font-weight: 500;
		line-height: 1.4;
		margin-bottom: vw(30);

		.common_cl_txt {
			border-bottom: 1px solid $pointColor;
		}
	}

	&_txt {
		font-size: 2.0rem;
		letter-spacing: 0.05em;
		font-weight: 500;
	}
}

/* ========== news ========== */
.news .common_sub_main {
	background: url(../images/news/news_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_news_important {
	margin-bottom: vw(120);

	&_head {
		background-color: $pointColor;
		padding: vw(15);
		display: flex;
		align-items: center;
		justify-content: center;

		.h2_ttl {
			color: #fff;
			font-weight: 500;
			letter-spacing: 0.1em;
			white-space: nowrap;
			position: relative;
			padding-left: 34px;
			font-size: 2rem;
			display: inline-block;

			&::before {
				background: url(../images/common/common_icon_caution.svg) no-repeat left top;
				content: '';
				position: absolute;
				left: 0;
				top: 50%;
				transform: translateY(-50%);
				width: 24px;
				height: 24px;
			}
		}
	}

	&_list {
		background-color: #f7f6f3;
		padding: vw(25) vw(25) vw(25) vw(55);
	}
}

/* ========== sub_news_tab ========== */
.sub_news_tab {
	margin-bottom: vw(80);
}

.sub_news_tab_list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: vw(20) vw(30);
}

.sub_news_tab_item {
	cursor: pointer;
	border: 1px solid var(--tab-color, #{$mainColor});
	background: #fff;
	color: var(--tab-color, #{$mainColor});
	letter-spacing: 0.1em;
	font-weight: 500;
	transition: all 0.2s;
	display: flex;
	align-items: center;

	a {
		color: var(--tab-color, #{$mainColor});
		display: flex;
		align-items: center;
		width: 100%;
		padding: vw(20) vw(30);
	}

	.btn_arrow {
		&::before {
			background-color: var(--tab-color, #{$mainColor});
		}
	}

	&.is-active,
	&.link_none {

		background: var(--tab-color, #{$mainColor});
		color: #fff;
		cursor: default;
		pointer-events: none;
		padding: vw(20) vw(30);

		.btn_arrow {
			display: none;
		}
	}

	&.cat_all {
		border-color: $mainColor;
		color: $mainColor;

		.btn_arrow {
			&::before {
				background-color: $mainColor;
			}
		}

		&.is-active {
			background: $mainColor;
			color: #fff;
		}
	}

	&.cat_info {
		border-color: #d85965;
		color: #d85965;

		.btn_arrow {
			&::before {
				background-color: #d85965;
			}
		}

		&.is-active {
			background: #d85965;
			color: #fff;
		}
	}

	&.cat_column {
		border-color: #569ea3;
		color: #569ea3;

		.btn_arrow {
			&::before {
				background-color: #569ea3;
			}
		}

		&.is-active {
			background: #569ea3;
			color: #fff;
		}
	}

	&.cat_useful {
		border-color: #6853c5;
		color: #6853c5;

		.btn_arrow {
			&::before {
				background-color: #6853c5;
			}
		}

		&.is-active {
			background: #6853c5;
			color: #fff;
		}
	}

	&.cat_news {
		border-color: $pointColor;
		color: $pointColor;

		&.is-active {
			background: $pointColor;
			color: #fff;
		}
	}

	&.cat_event {
		border-color: #3b87c2;
		color: #3b87c2;

		.btn_arrow {
			&::before {
				background-color: #3b87c2;
			}
		}

		&.is-active {
			background: #3b87c2;
			color: #fff;
		}
	}
}

.sub_faq_tab .sub_news_tab_item,
.sub_column_tab .sub_news_tab_item {
	.btn_arrow {
		&::before {
			background-color: var(--tab-color, #{$pointColor});
		}
	}
}

.sub_news_tab_item_txt {
	color: $mainColor;
}

.sub_news_tab_icon {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
	transition: background 0.2s;
}

/* ========== sub_news_panel ========== */
.sub_news_panel {
	display: none;

	&.is-show {
		display: block;
	}

	.top_news_block_item a {
		padding: vw(30) vw(70) vw(30) vw(40);
	}
}

/* ========== カテゴリバッジ (リスト版) ========== */
.sub_news_cat_icon {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	flex-shrink: 0;
	display: inline-block;
	vertical-align: middle;
}

.top_news_block_cat {
	&.cat_info {
		color: #d85965;
		background: #fff2f3;
	}

	&.cat_column {
		color: #569ea3;
		background: #edf8f9;
	}

	&.cat_useful {
		color: #6853c5;
		background: #f1eeff;
	}

	&.cat_news {
		color: $pointColor;
		background: #fef7ed;
	}

	&.cat_event {
		color: #3b87c2;
		background: #f1f8fd;
	}

	&.term_faq {
		color: #fff;
		background: $mainColor;
	}
}

/* ========== faq ========== */
.faq .common_sub_main {
	background: url(../images/faq/faq_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_faq_tab {
	margin-bottom: vw(100);

	.sub_news_tab_list {
		grid-template-columns: repeat(4, minmax(0, 1fr));

		.sub_news_tab_item:nth-child(2) {
			grid-column: 1;
		}
	}
}

.sub_column_tab {
	margin-bottom: vw(100);

	.sub_news_tab_list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* ========== sub_faq_panel ========== */
.sub_faq_panel {
	display: none;

	&.is-show {
		display: block;
	}
}

.sub_faq_block_list {
	gap: vw(30);
	display: flex;
	flex-direction: column;
	position: relative;
	z-index: 2;
}

.sub_faq_block_item {
	background-color: #f5f6f9;
	padding: vw(35) vw(50);

	a {
		position: relative;
		padding-left: vw(95);

		&::before {
			background: url(../images/faq/icon_q.png) no-repeat left top;
			background-size: contain;
			content: "";
			position: absolute;
			top: 50%;
			left: 0;
			transform: translate(0, -50%);
			left: 0;
			width: vw(70);
			height: vw(70);
		}

		.btn_arrow {
			right: 0;
		}

		.top_news_block_link {
			margin-right: vw(20);
		}

		&:hover {
			.top_news_block_link {
				color: $pointColor;
			}
		}
	}
}

/* ========== faq_detail ========== */
.sub_faq_detail_list_sec {
	.common_sub_h2_ttl .common_en01 {
		position: relative;
		z-index: 2;
	}
}

.sub_faq_detail_list_sec+.sub_faq_detail_list_sec {
	margin-top: vw(120);
}

.sub_faq_detail_list {
	position: relative;

	.sub_faq_block_item {
		background-color: #fff;
	}
}

.sub_faq_detail_list_sec .faq_design01 {
	background: url(../images/faq/faq_design01.png) no-repeat left top;
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(-128);
	right: vw(30);
	width: vw(109);
	height: vw(148);
	animation: walkSwing 3s ease-in-out infinite;
}

.sub_faq_detail_list_sec .faq_design02 {
	background: url(../images/faq/faq_design02.png) no-repeat left top;
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(-134);
	left: vw(50);
	width: vw(70);
	height: vw(154);
	animation: walkSwing 3s ease-in-out infinite;
}

.entry_title_faq {
	font-weight: 500;
	font-size: 2rem;
	position: relative;
	padding-left: vw(95);
	margin-top: vw(30);
	border-bottom: 1px solid #e4e6ea;
	padding-bottom: vw(30);
	margin-bottom: vw(40);
	min-height: vw(100);

	&::before {
		background: url(../images/faq/icon_q.png) no-repeat left top;
		background-size: contain;
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: vw(70);
		height: vw(70);
	}
}

.entry_body.faq_entry {
	position: relative;
	padding-left: vw(95);

	&::before {
		background: url(../images/faq/icon_a.png) no-repeat left top;
		background-size: contain;
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: vw(70);
		height: vw(70);
	}
}

.single_entry_contact_box {
	background: url(../images/faq/faq_contact_bk.jpg) no-repeat center top;
	background-size: cover;
	padding: vw(32) vw(45) vw(40) vw(45);
	margin-bottom: vw(80);
}

.single_entry_contact_ttl {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: vw(90);
	margin-bottom: vw(5);

	.div_ttl {
		position: relative;
		z-index: 1;
		font-size: 2.6rem;
		font-weight: 500;
		color: #fff;
	}

	.common_en01 {
		line-height: 1;
		font-size: 9rem;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		z-index: 0;
		white-space: nowrap;
		color: #235478;
		font-weight: 400;
	}
}

.single_entry_contact_txt {
	text-align: center;
	color: #fff;
	font-weight: 500;
	margin-bottom: vw(10);
}

.single_entry_contact_btn_wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.single_entry_contact_sub {
	background-color: $pointColor;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin-bottom: 3px;
	white-space: nowrap;
	width: vw(220);
	height: vw(34);
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	position: relative;
	top: vw(19);
	z-index: 1;
	border: 1px solid #fff;
}

.single_entry_contact_btn {
	background-color: #fff;
	justify-content: center;
	align-items: center;
	width: vw(340);
	height: vw(60);
	transition: opacity 0.3s;
	padding: 10px 0 0 0;
	box-sizing: border-box;
	position: relative;

	&::before {
		background-color: $pointColor;
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 2px;
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.3s ease;
	}

	&:hover {
		&::before {
			transform: scaleX(1);
		}
	}

	.btn_txt {
		color: $mainColor;
		font-weight: 700;
	}
}

/* ========== mailmagazine ========== */
.mailmagazine .common_sub_main {
	background: url(../images/mailmagazine/mailmagazine_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_mailmagazine_intro {
	margin-bottom: vw(120);
	background-color: #f5f6f9;
	padding: vw(60);
	position: relative;

	&::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 0;
		height: 0;
		border-style: solid;
		border-width: 0 0 vw(99) vw(95);
		border-color: transparent transparent #e3e6f0 transparent;
	}

	&::after {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 0;
		height: 0;
		border-style: solid;
		border-width: vw(99) vw(95) 0 0;
		border-color: #fff transparent transparent transparent;
	}

	&_ttl {
		text-align: center;
		margin-bottom: vw(30);

		.div_ttl {
			font-size: 3.8rem;
			font-weight: 500;
		}
	}

	&_disc {
		display: table;
		margin-left: auto;
		margin-right: auto;

		.common_txt01+.common_txt01 {
			margin-top: vw(40);
		}

		.common_cl_txt {
			font-weight: 700;
		}

		.cau_txt {
			margin-top: vw(20);
			line-height: 2;
			letter-spacing: 0.1em;
			font-weight: 500;

			a {
				text-decoration: underline;

				&:hover {
					text-decoration: none;
				}
			}
		}
	}

	&_design01 {
		background: url(../images/mailmagazine/mailmagazine_design01.svg) no-repeat left top;
		background-size: contain;
		content: "";
		position: absolute;
		top: vw(-15);
		right: vw(110);
		width: vw(126);
		height: vw(101);
		animation: floatUpDown 3s ease-in-out infinite;
	}
}

/* ========== recruit ========== */
.recruit .common_sub_main {
	background: url(../images/recruit/recruit_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_recruit_container01_bg {
	position: relative;
	overflow: hidden;
	display: flex;
	justify-content: center;
	padding: vw(65) 0 vw(140) 0;
	text-align: center;
}

.sub_recruit_container01_design01 {
	background: url(../images/recruit/sub_recruit_container01_design01.png) no-repeat left top;
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(-310);
	left: vw(55);
	width: vw(113);
	height: vw(182);
	animation: floatUpDown 3s ease-in-out infinite;
}

.sub_recruit_container01_design02 {
	background: url(../images/recruit/sub_recruit_container01_design02.png) no-repeat left top;
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(-310);
	right: vw(25);
	width: vw(259);
	height: vw(183);
	animation: walkSwing 2.5s ease-in-out infinite;
}

.sub_recruit_catch {
	font-size: 3.8rem;
	font-weight: 500;
	color: $mainColor;
	line-height: 1.8;
	letter-spacing: 0.1em;
	margin: 0 0 vw(35) 0;
}

.sub_recruit_container01_btns {
	display: flex;
	justify-content: center;
	gap: vw(50);
}

.sub_recruit_btn--point {
	a {
		background-color: $pointColor;

		&::before {
			background-color: #fff;
		}

		.btn_arrow {
			path {
				stroke: $pointColor;
			}

			&::before {
				background-color: #fff;
			}
		}
	}
}

.sub_recruit_container02_bg {
	display: flex;
	justify-content: center;
	background-color: #f5f6f9;
	padding: vw(100) 0 vw(220) 0;
	position: relative;
	margin-top: vw(100);

	&::before {
		background: url(../images/common/bk_circle_top_gray.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		top: vw(-100);
		left: 0;
		width: 100%;
		height: vw(100);
	}

	.common_inner {
		position: relative;
	}
}

.sub_recruit_message {
	display: flex;
	position: relative;
	flex-wrap: wrap;
}

.sub_recruit_message_body {
	position: relative;
	z-index: 1;
	flex-shrink: 0;
	width: 43.3%;
	margin-right: vw(80);

	@include md {
		width: 100%;
		margin-right: 0;
	}

	.common_sub_h2_ttl .common_en01 {
		letter-spacing: 0.075em;
	}
}

.sub_recruit_message_ttl {
	text-align: left;
	margin-bottom: vw(60);
	margin-top: vw(35);

	.common_en01 {
		white-space: nowrap;
	}
}

.sub_recruit_message_catch {
	font-size: 3.2rem;
	font-weight: 700;
	letter-spacing: 0.1em;
}

.sub_recruit_message_img {
	flex: 1;
	margin-left: vw(-80);
	max-width: vw(680);

	@include md {
		width: 100%;
		margin-left: auto;
		flex: inherit;
		margin-top: 40px;
	}

	img {
		display: block;
		width: 100%;
	}
}

.sub_recruit_memo {
	margin-top: vw(80);
	background-color: #fff;
	padding: vw(70) vw(140);
	position: relative;

	&::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 0;
		height: 0;
		border-style: solid;
		border-width: 0 0 vw(99) vw(95);
		border-color: transparent transparent #e3e6f0 transparent;
	}

	&::after {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 0;
		height: 0;
		border-style: solid;
		border-width: vw(99) vw(95) 0 0;
		border-color: #f5f6f9 transparent transparent transparent;
	}

	.common_txt01 {
		letter-spacing: 0.025em;
	}

	.common_txt01+.common_txt01 {
		margin-top: vw(40);
	}
}

.sub_recruit_container03_bg {
	position: relative;
	display: flex;
	justify-content: center;
	padding: vw(65) 0 vw(140) 0;

	&::before {
		background: url(../images/common/bk_circle_top_white.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		top: vw(-100);
		left: 0;
		width: 100%;
		height: vw(100);
	}

	.common_sub_h2_ttl {
		position: relative;

		.common_en01 {
			color: #f5f6f9;
		}
	}
}


.sub_recruit_container03_design01 {
	background: url(../images/recruit/sub_recruit_container03_design01.png) no-repeat left top;
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(75);
	left: vw(25);
	width: vw(117);
	height: vw(103);
	animation: floatUpDown 3s ease-in-out infinite;
}

.sub_recruit_container03_design02 {
	background: url(../images/recruit/sub_recruit_container03_design02.png) no-repeat left top;
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(60);
	right: vw(75);
	width: vw(67);
	height: vw(93);
	animation: floatUpDown 3s ease-in-out infinite;
}

.sub_recruit_persona_list {
	display: flex;
	justify-content: space-between;
	gap: vw(30);
	margin-top: vw(70);
	flex-wrap: wrap;
}

.sub_recruit_persona_box {
	position: relative;
	flex: 1;
	border-left: 1px solid $mainColor;
	border-right: 1px solid $mainColor;
	border-bottom: 1px solid $mainColor;
	padding: vw(50) vw(45) vw(40) vw(45);
	margin-top: vw(30);
	background: linear-gradient(149deg, #edf4f8 0%, #edf4f8 19%, #ffefdb 100%);

	@include md {
		width: 100%;
		flex: inherit;
	}

	&::before {
		border-top: 1px solid $mainColor;
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: calc(50% - 3em);
		height: 1px;
	}

	&::after {
		border-top: 1px solid $mainColor;
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		width: calc(50% - 3em);
		height: 1px;
	}
}

.sub_recruit_persona_num {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	padding: 0 vw(15);
	font-size: 3.6rem;
	line-height: 1;
	color: $mainColor;
	letter-spacing: 0.1em;
	white-space: nowrap;
}

.sub_recruit_persona_ttl {
	font-size: 2.2rem;
	font-weight: 700;
	color: $pointColor;
	line-height: 1.4;
	letter-spacing: 0.1em;
	margin-bottom: vw(30);
	min-height: calc((2.2rem * 2) * 1.4);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.sub_recruit_persona_txt {
	font-weight: 500;
}

.sub_recruit_container04_bg {
	position: relative;
	background-color: #f5f6f9;
	margin-top: vw(100);
	padding: vw(65) 0 vw(250) 0;

	&::before {
		background: url(../images/common/bk_circle_top_gray.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		top: vw(-100);
		left: 0;
		width: 100%;
		height: vw(100);
	}

	.common_inner {
		margin-left: auto;
		margin-right: auto;
	}
}

.sub_recruit_why {
	max-width: 1560px;
	margin-left: auto;
	margin-right: max(4.6875%, calc((100% - 1200px) / 2));
	margin-top: vw(100);
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
}

.sub_recruit_why_img {
	width: 52.56%;
	flex-shrink: 0;

	@include md {
		width: 100%;
	}

	img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
}

.sub_recruit_why_points {
	flex: 1;
	padding-left: vw(70);

	@include md {
		width: 100%;
		flex: inherit;
		margin-top: vw(70);
	}
}

.sub_recruit_why_point {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: vw(15);

	&:not(:last-child) {
		margin-bottom: vw(40);
	}
}

.sub_recruit_why_point_body {
	flex: 1;
}

.sub_recruit_why_point_ttl {
	font-size: 2.4rem;
	font-weight: 500;
	line-height: 1.6;
	margin-bottom: vw(15);
	color: $mainColor;
}

.sub_recruit_why_point_txt {
	line-height: 2.25;
	font-weight: 500;
}

.sub_recruit_why_point_visual {
	flex-shrink: 0;
	width: vw(120);
	text-align: center;
	padding-top: vw(5);
}

.sub_recruit_why_point_num {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	line-height: 1;
	margin-bottom: vw(20);

	.point_label {
		display: block;
		font-size: 1.8rem;
		color: $mainColor;
		letter-spacing: 0.05em;
		margin-right: 0.5em;
		margin-bottom: vw(5);
	}

	.point_no {
		display: block;
		font-size: 3.2rem;
		color: $mainColor;
		letter-spacing: 0.1em;
	}
}

.sub_recruit_why_point_icon {
	display: block;

	img {
		width: 100%;
	}
}

.sub_recruit_container05_bg {
	position: relative;
	display: flex;
	justify-content: center;
	padding: vw(65) 0 vw(150) 0;

	&::before {
		background: url(../images/common/bk_circle_top_white.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		top: vw(-100);
		left: 0;
		width: 100%;
		height: vw(100);
	}

	.common_sub_h2_ttl .common_en01 {
		color: #f5f6f9;
	}
}

.sub_recruit_job_list {
	display: flex;
	justify-content: space-between;
	gap: vw(40);
	margin-top: vw(70);
	flex-wrap: wrap;
}

.sub_recruit_job_box {
	flex: 1;
	background-color: #f5f6f9;
	border-top: 2px solid $mainColor;
	border-bottom: 2px solid $mainColor;
	padding: vw(15) 0 vw(30) 0;
	text-align: center;

	@include md {
		width: 100%;
		flex: inherit;
	}
}

.sub_recruit_job_label {
	display: block;
	font-size: 6.2rem;
	color: #fff;
	line-height: 1.2;
}

.sub_recruit_job_img {
	display: block;
	margin: vw(20) auto vw(25) auto;
}

.sub_recruit_job_ttl {
	font-size: 2.4rem;
	font-weight: 500;
	color: $mainColor;
	line-height: 1.5;
	margin-bottom: vw(15);
	padding: 0 vw(45);
}

.sub_recruit_job_txt {
	letter-spacing: 0.1em;
	font-weight: 500;
	text-align: left;
	margin-bottom: vw(25);
	padding: 0 vw(45);
}

.sub_recruit_job_ul {
	padding: 0 vw(45);
	text-align: left;

	li {
		position: relative;
		padding-left: 1.2em;
		font-weight: 500;

		&::before {
			content: "";
			position: absolute;
			top: 0.55em;
			left: 0;
			width: 0.55em;
			height: 0.55em;
			border-radius: 50%;
			background-color: $mainColor;
		}
	}
}

.sub_recruit_container06_bg {
	background: url(../images/recruit/sub_recruit_container06_bk.png) no-repeat center center;
	background-size: cover;
	padding: vw(120) 0 vw(200) 0;
	display: flex;
	justify-content: center;
	text-align: center;
}

.sub_recruit_cta_catch {
	font-size: 4.2rem;
	font-weight: 500;
	color: #fff;
	line-height: 1.2;
	letter-spacing: 0.12em;
	margin-bottom: vw(35);
	font-family: $min01;
}

.sub_recruit_cta_txt {
	color: #fff;
	line-height: 2.0;
	letter-spacing: 0.1em;
	font-weight: 500;
	margin-bottom: vw(60);
}

.sub_recruit_container06_bg .sub_recruit_container01_btns {
	display: flex;
	justify-content: center;
	gap: vw(40);
}

.sub_recruit_container07_bg {
	display: flex;
	justify-content: center;
	padding: vw(100) 0 vw(95) 0;

	.common_sub_h2_ttl .common_en01 {
		color: #f5f6f9;
	}
}

.sub_recruit_num_grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: vw(40);
	margin-top: vw(70);
}

.sub_recruit_num_item {
	background-color: #f5f6f9;
	padding: vw(55) vw(40) vw(40) vw(40);
	text-align: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	position: relative;

	&:nth-child(1),
	&:nth-child(2) {
		grid-column: span 3;
	}

	&:nth-child(3),
	&:nth-child(4),
	&:nth-child(5) {
		grid-column: span 2;
	}

	&:nth-child(6) {
		grid-column: span 3;
		grid-row: span 2;
	}

	&:nth-child(7),
	&:nth-child(8) {
		grid-column: span 3;
	}
}

.sub_recruit_num_item--row {
	.sub_recruit_num_inline {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: vw(20);

		.sub_recruit_num_icon {
			margin-bottom: 0;
		}
	}
}

.sub_recruit_num_item:nth-child(3),
.sub_recruit_num_item:nth-child(4),
.sub_recruit_num_item:nth-child(5) {
	margin-left: -0.5rem;
	margin-right: -0.5rem;
}

/* --row（平均年齢）の下の間隔を3remに（gap 4rem − 1rem） */
.sub_recruit_num_item--row {
	margin-bottom: -1rem;
}

.sub_recruit_num_ttl {
	font-size: 2.4rem;
	font-weight: 500;
	color: $mainColor;
	letter-spacing: 0.1em;
	margin-bottom: vw(25);
}

.sub_recruit_num_icon {
	display: block;
	margin-bottom: vw(30);
}

.sub_recruit_num_val {
	font-size: 4.2rem;
	font-weight: 500;
	color: $mainColor;
	letter-spacing: 0.05em;
	line-height: 1;
	font-family: $min01;

	span {
		font-family: $en01;
		font-size: 10rem;
		color: $mainColor;
		margin: 0 0.05em;
	}
}

.sub_recruit_num_note {
	text-align: right;
	font-weight: 500;
	letter-spacing: 0.1em;
	margin-top: vw(25);
}

.sub_recruit_num_cautxt {
	font-weight: 500;
	letter-spacing: 0.1em;
	position: absolute;
	right: vw(15);
	bottom: vw(10);
	color: $mainColor;
	font-size: 1.4rem;
}

.sub_recruit_container08_bg {
	position: relative;
	display: flex;
	justify-content: center;
	background-color: #f5f6f9;
	margin-top: vw(100);
	padding: vw(65) 0 vw(120) 0;


	&::before {
		background: url(../images/common/bk_circle_top_gray.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		top: vw(-100);
		left: 0;
		width: 100%;
		height: vw(100);
	}

	.common_sub_h2_ttl {
		margin-bottom: vw(8);

		.common_en01 {
			font-size: min(8.8rem, 10.6vw);
			white-space: nowrap;
		}
	}
}

.sub_recruit_env_sub {
	display: table;
	margin: 0 auto vw(60) auto;
	background-color: $mainColor;
	color: #fff;
	font-size: 1.8rem;
	font-weight: 500;
	padding: vw(5) vw(10);
}

.sub_recruit_env_list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: vw(30) vw(40);

	@include md {
		grid-template-columns: 1fr;
	}
}

.sub_recruit_env_box {
	background-color: #fff;
	display: flex;
	gap: vw(25);
	padding: vw(30) vw(35);
}

.sub_recruit_env_img {
	flex-shrink: 0;
	width: vw(120);

	img {
		width: 100%;
	}
}

.sub_recruit_env_body {
	flex: 1;
}

.sub_recruit_env_ttl {
	font-size: 2.0rem;
	font-weight: 700;
	line-height: 1.5;
	margin-bottom: vw(5);
}

.sub_recruit_env_txt {
	line-height: 2.0;
	font-weight: 500;
}

.sub_recruit_env_note {
	font-size: 1.4rem;
}

.sub_recruit_container09_bg {
	display: flex;
	justify-content: center;
	padding: vw(175) 0 vw(250) 0;
	background: linear-gradient(160deg, $mainColor 0%, #185987 100%);
	position: relative;

	&::before {
		background: url(../images/common/bk_incircle_top_gray.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: vw(100);
	}

	.common_sub_h2_ttl {

		.h2_ttl {
			color: #fff;
		}

		.common_en01 {
			color: #0d436a;
		}
	}
}

.sub_recruit_interview_tabs {
	display: flex;
	gap: vw(10);
	margin-top: vw(80);
}

.sub_recruit_interview_tab {
	flex: 1;
	background-color: #fff;
	padding: vw(30);
	text-align: center;
	cursor: pointer;
	transition: opacity 0.3s;

	&.is-active {
		opacity: 1;
	}
}

.sub_recruit_interview_tab:not(.is-active) {
	background-color: $pointColor;

	.sub_recruit_interview_tab_meta,
	.sub_recruit_interview_tab_catch {
		color: #fff;
	}
}

.sub_recruit_interview_tab_meta {
	display: block;
	font-weight: 500;
	color: $mainColor;
	letter-spacing: 0.1em;
}

.sub_recruit_interview_tab_catch {
	display: block;
	font-size: 2.0rem;
	font-weight: 700;
	color: $mainColor;
	letter-spacing: 0.1em;
}

.sub_recruit_interview_panels {
	background-color: #fff;
	padding: vw(75) vw(80) vw(75) vw(80);
}

.sub_recruit_interview_panel {
	display: none;

	&.is-show {
		display: block;
	}
}

.sub_recruit_interview_qa+.sub_recruit_interview_qa,
.sub_recruit_interview_schedule {
	margin-top: vw(80);
}

.sub_recruit_interview_q {
	font-size: 2.0rem;
	font-weight: 700;
	color: $mainColor;
	letter-spacing: 0.1em;
	padding-bottom: vw(10);
	margin-bottom: vw(50);
	border-bottom: 1px solid $mainColor;
	display: flex;
	align-items: center;
	gap: vw(15);

	.common_en01 {
		background: $mainColor;
		color: #fff;
		border-radius: 50%;
		width: vw(48);
		height: vw(48);
		font-size: 2.2rem;
		letter-spacing: 0.1em;
		display: flex;
		align-items: center;
		justify-content: center;
	}
}

.sub_recruit_interview_box {
	display: flex;
	gap: vw(40);
	align-items: flex-start;
}

.sub_recruit_interview_box--reverse {
	flex-direction: row-reverse;
}

.sub_recruit_interview_img {
	width: 40.38%;
	flex-shrink: 0;

	img {
		display: block;
		width: 100%;
	}
}

.sub_recruit_interview_body {
	flex: 1;
}

.sub_recruit_interview_h4 {
	font-size: 2.2rem;
	font-weight: 700;
	color: $mainColor;
	line-height: 1.6;
	margin-bottom: vw(20);
}

.sub_recruit_interview_txt {
	letter-spacing: -0.025em;
	font-weight: 500;
	line-height: 2;
}

.sub_recruit_schedule_ttl {
	margin-bottom: vw(40);
	text-align: center;

	.common_en01 {
		color: #f5f6f9;
		font-size: 6.2rem;
		letter-spacing: 0.05em;
		line-height: 1;
	}

	.h3_ttl {
		font-size: 2.6rem;
		font-weight: 500;
		letter-spacing: 0.1em;
		line-height: 1.4;
	}
}

.sub_recruit_schedule_list {
	position: relative;
	display: flex;
	padding: vw(30) 0;
}

.sub_recruit_schedule_list::before {
	content: "";
	position: absolute;
	top: 50%;
	left: calc(100% / 14);
	right: calc(100% / 14);
	height: 2px;
	background: linear-gradient(to right, $mainColor, $pointColor);
	transform: translateY(-50%);
}

.sub_recruit_schedule_item {
	position: relative;
	flex: 1;
	height: vw(170);
	text-align: center;
}

.sub_recruit_schedule_dot {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: vw(16);
	height: vw(16);
	border-radius: 50%;
	z-index: 1;
}

.sub_recruit_schedule_list.in07 .sub_recruit_schedule_item:nth-child(1) .sub_recruit_schedule_dot {
	background: #002d4d;
}

.sub_recruit_schedule_list.in07 .sub_recruit_schedule_item:nth-child(2) .sub_recruit_schedule_dot {
	background: #253a40;
}

.sub_recruit_schedule_list.in07 .sub_recruit_schedule_item:nth-child(3) .sub_recruit_schedule_dot {
	background: #4b4833;
}

.sub_recruit_schedule_list.in07 .sub_recruit_schedule_item:nth-child(4) .sub_recruit_schedule_dot {
	background: #705627;
}

.sub_recruit_schedule_list.in07 .sub_recruit_schedule_item:nth-child(5) .sub_recruit_schedule_dot {
	background: #95631a;
}

.sub_recruit_schedule_list.in07 .sub_recruit_schedule_item:nth-child(6) .sub_recruit_schedule_dot {
	background: #bb700d;
}

.sub_recruit_schedule_list.in07 .sub_recruit_schedule_item:nth-child(7) .sub_recruit_schedule_dot {
	background: #e07e00;
}

.sub_recruit_schedule_list.in08 .sub_recruit_schedule_item:nth-child(1) .sub_recruit_schedule_dot {
	background: #002d4d;
}

.sub_recruit_schedule_list.in08 .sub_recruit_schedule_item:nth-child(2) .sub_recruit_schedule_dot {
	background: #203942;
}

.sub_recruit_schedule_list.in08 .sub_recruit_schedule_item:nth-child(3) .sub_recruit_schedule_dot {
	background: #404437;
}

.sub_recruit_schedule_list.in08 .sub_recruit_schedule_item:nth-child(4) .sub_recruit_schedule_dot {
	background: #705627;
}

.sub_recruit_schedule_list.in08 .sub_recruit_schedule_item:nth-child(5) .sub_recruit_schedule_dot {
	background: #805b21;
}

.sub_recruit_schedule_list.in08 .sub_recruit_schedule_item:nth-child(6) .sub_recruit_schedule_dot {
	background: #a06716;
}

.sub_recruit_schedule_list.in08 .sub_recruit_schedule_item:nth-child(7) .sub_recruit_schedule_dot {
	background: #c0720b;
}

.sub_recruit_schedule_list.in08 .sub_recruit_schedule_item:nth-child(8) .sub_recruit_schedule_dot {
	background: #e07e00;
}

.sub_recruit_schedule_body {
	position: absolute;
	left: 50%;
	width: 100%;
	transform: translateX(-50%);
}

.sub_recruit_schedule_item:nth-child(odd) .sub_recruit_schedule_body {
	top: 0;
	margin-top: vw(-12);
}

.sub_recruit_schedule_item:nth-child(even) .sub_recruit_schedule_body {
	top: 50%;
	margin-top: vw(22);
}

.sub_recruit_schedule_time {
	display: block;
	font-weight: 500;
}

.sub_recruit_schedule_txt {
	line-height: 1.4;
	font-weight: 700;
	color: $mainColor;
	display: flex;
	align-items: center;
	justify-content: center;
	white-space: nowrap;

	&.twogyou {
		min-height: vw(45);
	}
}

.sub_recruit_container10_bg {
	position: relative;
	display: flex;
	justify-content: center;
	padding: vw(65) 0 vw(120) 0;

	.common_sub_h2_ttl .common_en01 {
		color: #f5f6f9;
		/* REQUIREMENTS が長く、幅を縮めると改行してしまうため、1行で収まるよう可変サイズに調整 */
		font-size: min(8.8rem, 10.6vw);
		white-space: nowrap;
	}

	.sub_profile_tbl {
		margin-bottom: 0;
	}

	&::before {
		background: url(../images/common/bk_circle_top_white.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		top: vw(-100);
		left: 0;
		width: 100%;
		height: vw(100);
	}
}

.sub_recruit_req_table {
	margin-top: vw(75);

	td {

		p+p {
			margin-top: vw(20);
		}

		.tbl_inbox {
			margin-top: vw(20);
			background-color: #f5f6f9;
			padding: vw(25) vw(50);

			&_ttl {
				display: flex;
				align-items: center;
				font-size: 1.8rem;
				font-weight: 700;
				letter-spacing: 0.1em;
				color: $mainColor;

				&::before {
					content: '';
					margin-right: vw(8);
					border-top: 7px solid transparent;
					border-bottom: 7px solid transparent;
					border-left: 11px solid $mainColor;
				}
			}
		}

		.tbl_ullist {
			margin-top: vw(20);

			li {
				position: relative;
				padding-left: 1.2em;
				font-weight: 500;
				letter-spacing: 0.1em;
				line-height: 1.6;

				&::before {
					content: "●";
					position: absolute;
					left: 0;
					font-size: 1rem;
					top: 0.6em;
					color: $mainColor;
				}
			}
		}
	}
}

.sub_recruit_container11_bg {
	position: relative;
	display: flex;
	justify-content: center;
	background-color: #f5f6f9;
	margin-top: vw(100);
	padding: vw(65) 0 vw(220) 0;

	&::before {
		background: url(../images/common/bk_circle_top_gray.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		top: vw(-100);
		left: 0;
		width: 100%;
		height: vw(100);
	}
}

.sub_recruit_process_list {
	display: flex;
	justify-content: space-between;
	gap: vw(30);
	margin-top: vw(75);
}

.sub_recruit_process_box {
	flex: 1;
	position: relative;
	display: flex;
	flex-direction: column;

	&:nth-child(1) .sub_recruit_process_num {
		background-color: $mainColor;
	}

	&:nth-child(2) .sub_recruit_process_num {
		background-color: color.mix($pointColor, $mainColor, 33%);
	}

	&:nth-child(3) .sub_recruit_process_num {
		background-color: color.mix($pointColor, $mainColor, 66%);
	}

	&:nth-child(4) .sub_recruit_process_num {
		background-color: $pointColor;
	}

	&:not(:last-child)::before {
		content: "";
		position: absolute;
		top: vw(24);
		left: 50%;
		width: calc(100% + #{vw(30)});
		height: 2px;
		z-index: 0;
	}

	&:nth-child(1)::before {
		background: linear-gradient(to right, $mainColor, color.mix($pointColor, $mainColor, 33%));
	}

	&:nth-child(2)::before {
		background: linear-gradient(to right, color.mix($pointColor, $mainColor, 33%), color.mix($pointColor, $mainColor, 66%));
	}

	&:nth-child(3)::before {
		background: linear-gradient(to right, color.mix($pointColor, $mainColor, 66%), $pointColor);
	}
}

.sub_recruit_process_num {
	display: flex;
	justify-content: center;
	align-items: center;
	width: vw(48);
	height: vw(48);
	border-radius: 50%;
	color: #fff;
	font-size: 2.2rem;
	letter-spacing: 0.1em;
	margin: 0 auto vw(40) auto;
	position: relative;
	z-index: 1;
}

.sub_recruit_process_card {
	background-color: #fff;
	padding: vw(30) vw(25) vw(35) vw(25);
	text-align: center;
	flex: 1;
}

.sub_recruit_process_ttl {
	font-size: 2.0rem;
	font-weight: 500;
	color: $mainColor;
	letter-spacing: 0.1em;
	margin-bottom: vw(15);
}

.sub_recruit_process_img {
	display: block;
	margin: 0 auto vw(15) auto;
}

.sub_recruit_process_txt {
	line-height: 1.8;
	letter-spacing: 0.1em;
	font-weight: 500;
	text-align: left;
}

.sub_recruit_container12_bg {
	position: relative;
	display: flex;
	justify-content: center;
	padding: vw(65) 0 vw(120) 0;

	.common_sub_h2_ttl .common_en01 {
		color: #f5f6f9;
	}

	&::before {
		background: url(../images/common/bk_circle_top_white.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		top: vw(-100);
		left: 0;
		width: 100%;
		height: vw(100);
	}
}

.sub_recruit_faq_list {
	margin-top: vw(50);
}

.sub_recruit_faq_item {

	&+.sub_recruit_faq_item {
		margin-top: vw(20);
	}
}

.sub_recruit_faq_q {
	padding: vw(20) vw(80) vw(20) vw(95);
	cursor: pointer;
	position: relative;
	border-bottom: 1px solid #e4e6ea;
	min-height: vw(110);
	display: flex;
	align-items: center;

	&::before {
		background: url(../images/faq/icon_q.png) no-repeat left top;
		background-size: contain;
		content: "";
		position: absolute;
		top: 50%;
		left: 0;
		transform: translate(0, -50%);
		left: 0;
		width: vw(70);
		height: vw(70);
	}
}

.sub_recruit_faq_q_txt {
	font-size: 2rem;
	font-weight: 500;
	letter-spacing: -0.025em;
}

.sub_recruit_faq_toggle {
	position: absolute;
	right: vw(30);
	top: 50%;
	transform: translateY(-50%);
	width: vw(20);
	height: vw(20);

	&::before,
	&::after {
		content: "";
		position: absolute;
		background-color: $mainColor;
	}

	&::before {
		top: 50%;
		left: 0;
		width: 100%;
		height: 2px;
		transform: translateY(-50%);
	}

	&::after {
		left: 50%;
		top: 0;
		width: 2px;
		height: 100%;
		transform: translateX(-50%);
		transition: transform 0.3s;
	}
}

.acctit.open .sub_recruit_faq_toggle::after {
	transform: translateX(-50%) scaleY(0);
}

.sub_recruit_faq_a {
	display: none;
	position: relative;
	padding: vw(30) 0 vw(30) vw(95);

	&::before {
		background: url(../images/faq/icon_a.png) no-repeat left top;
		background-size: contain;
		content: "";
		position: absolute;
		top: 50%;
		left: 0;
		transform: translate(0, -50%);
		left: 0;
		width: vw(70);
		height: vw(70);
	}
}

.sub_recruit_faq_a_txt {
	line-height: 2.0;
	letter-spacing: -0.025em;
	font-weight: 500;
}

.sub_recruit_container12_bg+.sub_recruit_container06_bg {
	margin-bottom: vw(100);
}

/* ========== message ========== */
.message .common_sub_main {
	background: url(../images/message/message_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_message_container01_bg {
	display: flex;
	justify-content: center;
	padding: vw(65) 0 vw(180) 0;
	overflow: hidden;
}

.sub_message_profile {
	width: calc(100% - max(4.6875%, calc((100% - 1200px) / 2)));
	margin-left: auto;
	margin-right: max(4.6875%, calc((100% - 1200px) / 2));
	margin-top: vw(20);
	display: flex;
	align-items: stretch;
	align-items: center;

	@include inctw {}
}

.sub_message_profile_img {
	width: 64.1%;

	img {
		display: block;
		width: 100%;
	}
}

.sub_message_profile_body {
	position: relative;
	z-index: 1;
	margin-left: vw(-100);
	width: calc(35.9% + 10rem);
}

.sub_message_profile_en {
	display: block;
	font-family: $en01;
	font-size: 9.8rem;
	line-height: 1.05;
	letter-spacing: 0.03em;
	color: #f5f6f9;
	margin-bottom: vw(40);
	word-break: break-all;
	white-space: nowrap;

	@include inct {
		font-size: 7vw;
	}
}

.sub_message_profile_role {
	font-size: 2.2rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	margin-left: vw(160);
	font-family: $min01;
}

.sub_message_profile_name {
	font-size: 4.2rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	margin-left: vw(150);
	font-family: $min01;
	line-height: 1.4;
}

.sub_message_container02_bg {
	display: flex;
	justify-content: center;
	position: relative;
	background: linear-gradient(149deg, #eef3f8 0%, #edf4f8 19%, #ffefdb 100%);
	padding: vw(160) 0;

	&::before {
		background: url(../images/common/bk_circle_top.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: vw(100);
		transform: rotate(180deg);
	}

	&::after {
		background: url(../images/common/bk_circle_top.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: vw(100);
	}

	.common_inner {
		position: relative;
	}
}

.sub_message_design {
	background: url(../images/message/message_design01.png) no-repeat left top;
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(-210);
	right: vw(85);
	width: vw(143);
	height: vw(215);
	animation: floatUpDown 3s ease-in-out infinite;
}

.sub_message_catch {
	font-size: 3.2rem;
	font-weight: 500;
	line-height: 1.8;
	letter-spacing: 0.15em;
	margin-bottom: vw(50);
	text-align: center;
	font-family: $min01;
}

.sub_message_txt {
	p {
		letter-spacing: 0.1em;
		font-weight: 500;
		margin-bottom: vw(30);
		line-height: 2.5;

		&:last-child {
			margin-bottom: 0;
		}
	}
}

.sub_message_container03_bg {
	display: flex;
	justify-content: center;
	padding: vw(120) 0 vw(120) 0;
}

/* ========== history ========== */
.history .common_sub_main {
	background: url(../images/history/history_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_history_container_bg {
	display: flex;
	justify-content: center;
	padding: 0 0 vw(120) 0;
}

.sub_history_list {
	width: 100%;
	margin-top: vw(50);
	margin-bottom: vw(130);
	position: relative;
}

.sub_history_design01 {
	background: url(../images/history/history_design01.png) no-repeat center center;
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(-100);
	right: vw(35);
	width: vw(159);
	height: vw(235);
	animation: floatUpDown 3s ease-in-out infinite;

	@media screen and (max-width: 1248px) {
		top: vw(-150);
		right: 0;
	}

	@include md {
		width: vw(102);
		height: vw(151);
	}
}

.sub_history_item {
	display: flex;
	align-items: flex-start;
	padding: vw(40) vw(10);
	border-bottom: 1px solid #e4e6ea;

	&:last-child .sub_history_marker {
		&::before {
			content: none;
		}
	}
}

.sub_history_year {
	flex-shrink: 0;
	font-family: $en01;
	font-size: 6.2rem;
	line-height: 1;
	letter-spacing: 0.1em;
	font-feature-settings: "tnum";
	font-variant-numeric: tabular-nums;
	color: $mainColor;
	width: vw(195);

	&.haba {
		letter-spacing: 0.025em;
	}
}

.sub_history_marker {
	position: relative;
	flex-shrink: 0;
	align-self: stretch;
	width: vw(10);

	.sub_history_marker_bf {
		background: url(../images/history/history_line.png) no-repeat left top;
		background-size: contain;
		content: "";
		position: absolute;
		top: vw(-35);
		left: 50%;
		transform: translateX(-50%);
		width: 6px;
		height: 45px;
	}

	.sub_history_marker_af {
		background: url(../images/history/history_line.png) no-repeat left top;
		background-size: contain;
		content: "";
		position: absolute;
		top: vw(48);
		left: 50%;
		transform: translateX(-50%);
		width: 6px;
		height: 45px;
	}

	&::before {
		content: '';
		position: absolute;
		top: 2.7rem;
		left: 50%;
		transform: translateX(-50%);
		width: 2px;
		background: #96acbd;
		height: calc(100% + 8rem);
	}

	&::after {
		content: '';
		position: absolute;
		top: vw(26);
		left: 50%;
		transform: translateX(-50%);
		width: vw(10);
		height: vw(10);
		border-radius: 50%;
		background: $mainColor;
	}
}

.sub_history_body {
	flex: 1;
	padding-top: vw(14);
	margin-left: vw(60);
	display: flex;
}

.sub_history_head {
	display: flex;
	align-items: baseline;
	margin-bottom: vw(15);
}

.sub_history_month {
	flex-shrink: 0;
	font-size: 2.0rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	color: $mainColor;
	margin-right: vw(60);
}

.sub_history_txt {
	line-height: 1.8;
	letter-spacing: 0.1em;
	font-weight: 500;
}

/* ========== profile ========== */
.profile .common_sub_main {
	background: url(../images/profile/profile_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_profile_origin {
	margin-bottom: vw(80);
	background-color: #f5f6f9;
	border-top: 2px solid $mainColor;
	border-bottom: 2px solid $mainColor;
	padding: vw(60) vw(80) 0 vw(80);

	@include md {
		padding: vw(60) vw(160) 0 vw(40);
	}
}

.sub_profile_origin_ttl {
	font-weight: 500;
	font-family: $min01;
	font-size: 3.2rem;
	letter-spacing: 0.1em;
	margin-bottom: vw(20);
	text-align: center;
}

.sub_profile_origin_body {
	display: flex;
	justify-content: space-between;
	gap: vw(50);
	min-height: vw(237);
	position: relative;

	@include md {
		gap: vw(20);
	}
}

.sub_profile_origin_txt {
	line-height: 2.25;
	font-weight: 500;
	letter-spacing: 0;
	flex: 1;
	padding-top: vw(15);
	padding-bottom: vw(50);

	@include md {
		padding-top: 0;
	}
}

.sub_profile_origin_logo {
	flex-shrink: 0;
	width: vw(180);
	height: vw(180);
	background-color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-top: vw(15);

	img {
		width: vw(116);
		height: auto;
	}
}

.sub_profile_design01 {
	display: flex;
	align-items: flex-end;

	@include md {
		position: absolute;
		right: vw(-150);
		bottom: 0;
	}
}

.sub_profile_tbl {
	margin-bottom: vw(130);

	table {
		width: 100%;

		th {
			padding: vw(25) vw(40) vw(25) vw(60);
			border-bottom: 1px solid #e4e6ea;
			font-weight: 700;
			letter-spacing: 0.1em;
			line-height: 2.25;
			width: vw(275);
			box-sizing: border-box;
			vertical-align: top;

			.th_link {
				margin-top: vw(15);

				a {
					position: relative;
					padding-right: 18px;
					border-bottom: 1px solid $mainColor;
					letter-spacing: 0;
					line-height: 1.4;
					color: $mainColor;
					transition: 0.3s;

					.btn_arrow {
						position: absolute;
						top: 50%;
						transform: translate(0, -50%);
						right: 0;

						svg {
							fill: none;
							width: 1.2rem;
							height: 1.2rem;
							position: relative;
						}

						path {
							stroke: $mainColor;
						}

					}

					&:hover {
						border-bottom: none;
					}
				}
			}
		}

		td {
			padding: vw(25) vw(40) vw(25) vw(40);
			border-bottom: 1px solid #e4e6ea;
			font-weight: 500;
			letter-spacing: 0.05rem;
			line-height: 2.25;
			width: calc(100% - 27.5rem);
			box-sizing: border-box;

			.office_box {
				&+.office_box {
					margin-top: vw(25);
				}
			}

			.office_head {
				display: flex;
				gap: vw(15);
				align-items: center;
			}

			.office_ttl {
				font-weight: 500;
			}

			.office_map {
				a {
					color: $mainColor;
					position: relative;
					padding-left: 19px;
					border-bottom: 1px solid $mainColor;
					line-height: 1.4;
					transition: 0.3s;

					&::before {
						background: url(../images/common/icon_maplink.svg) no-repeat left top;
						content: "";
						position: absolute;
						top: 50%;
						transform: translate(0, -50%);
						left: 0;
						width: 14px;
						height: 20px;
					}

					&:hover {
						border-bottom: none;
					}
				}
			}

			.group_ttl {
				margin: vw(30) 0 vw(15) 0;
				font-weight: 700;
			}

			.group_btn {
				width: vw(300);
				height: vw(70);
				margin-top: vw(30);
				margin-bottom: vw(10);

				a {
					background-color: $mainColor;
					width: 100%;
					height: 100%;
					display: flex;
					align-items: center;
					justify-content: center;
					position: relative;

					&::before {
						background-color: $pointColor;
						content: "";
						position: absolute;
						left: 0;
						bottom: 0;
						width: 100%;
						height: 2px;
						transform: scaleX(0);
						transform-origin: left;
						transition: transform 0.3s ease;
					}

					&:hover {
						&::before {
							transform: scaleX(1);
						}
					}

					.btn_txt {
						color: #fff;
						position: relative;
						padding-right: 28px;

						&::after {
							background: url(../images/common/icon_outlink.svg);
							background-size: contain;
							content: "";
							position: absolute;
							top: 50%;
							transform: translate(0, -50%);
							right: 0;
							width: 18px;
							height: 18px;
						}
					}
				}
			}
		}
	}
}

/* ============================ OFFICE ============================ */
.office .common_sub_main {
	background: url(../images/office/office_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_office_anchor {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 0 vw(25);
	margin-bottom: vw(70);
}

.sub_office_anchor_item {

	a {
		position: relative;
		display: flex;
		align-items: center;
		padding: vw(10) vw(35) vw(10) vw(10);
		border-bottom: 1px solid $mainColor;
		color: $mainColor;
		font-weight: 500;
		letter-spacing: 0.1em;
		transition: all 0.3s ease;
		width: 100%;

		&:hover {
			.sub_office_anchor_arrow {
				margin-top: 0;
			}
		}
	}
}

.sub_office_anchor_arrow {
	background: url(../images/common/icon_arrow_blue.svg);
	position: absolute;
	top: 50%;
	right: vw(10);
	transform: translate(0, -50%);
	content: "";
	width: 16px;
	height: 11px;
	margin-top: -4px;
	;
	transform: rotate(90deg);
	transition: all 0.3s ease;
}

.sub_office_block {
	padding: vw(70) 0;
}

.sub_office_ttl {
	text-align: center;
	font-size: 3.0rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	margin-bottom: vw(60);
}

.sub_office_intro {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: vw(70);
	margin-bottom: vw(60);

	@include md {
		flex-wrap: wrap;
	}
}

.sub_office_intro_txt {
	flex: 1;
	font-weight: 500;
	padding-bottom: vw(45);

	@include md {
		padding-bottom: 0;
	}

	p {
		letter-spacing: 0.025em;
	}

	p+p {
		margin-top: vw(40);
	}
}

.sub_office_intro_slider {
	flex-shrink: 0;
	width: 50%;

	@include md {
		width: 100%;
	}

	// 矢印・ドットを画像の下に配置するためのスペース
	.splide {
		padding-bottom: vw(50);
	}

	.splide__arrow {
		top: auto;
		bottom: 19.5px;
		width: vw(16);
		height: vw(12);
		background: url(../images/common/icon_arrow_blue.svg) no-repeat center / contain;
		border: none;
		border-radius: 0;
		box-shadow: none;
		opacity: 1;
		transform: none;

		svg {
			display: none;
		}

		&:hover {
			opacity: 0.6;
		}

		&--prev {
			left: 50%;
			transform: scaleX(-1);
			margin-left: -6.1rem;
		}

		&--next {
			left: 50%;
			margin-left: 4.5rem;
		}
	}

	.splide__pagination {
		position: absolute;
		left: 0;
		right: 0;
		bottom: 16px;
		height: vw(20);
		padding: 0;
		justify-content: center;
		align-items: center;

		.splide__pagination__page {
			width: vw(6);
			height: vw(6);
			margin: vw(6);
			background: #ccd3d9;
			opacity: 1;

			&.is-active {
				background: $mainColor;
				transform: scale(1);
			}
		}
	}
}

.sub_office_slide {
	img {
		width: 100%;
		aspect-ratio: 3 / 2;
		object-fit: cover;
	}
}

.sub_office_access {
	display: flex;
	align-items: center;
	gap: vw(60);
	background-color: #f5f6f9;
	padding: vw(60) vw(80);
	position: relative;

	@include md {
		flex-wrap: wrap;
	}
}

.sub_office_access_deco {
	position: absolute;
	right: vw(45);
	bottom: 100%;

	z-index: 0;
	pointer-events: none;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

.sub_office_access_deco--01 {
	width: vw(122);
	height: vw(136);
	background-image: url(../images/office/office_design01.png);
	margin-bottom: vw(-95);

	@include md {
		margin-bottom: vw(-50)
	}
}

.sub_office_access_deco--02 {
	width: vw(168);
	height: vw(84);
	background-image: url(../images/office/office_design02.png);
	margin-bottom: vw(-45);

	@include md {
		margin-bottom: vw(-40)
	}
}

.sub_office_access_deco--03 {
	width: vw(130);
	height: vw(139);
	background-image: url(../images/office/office_design03.png);
	margin-bottom: vw(-85);

	@include md {
		margin-bottom: vw(-40)
	}
}

.sub_office_access_deco--04 {
	width: vw(108);
	height: vw(170);
	background-image: url(../images/office/office_design04.png);
	margin-bottom: vw(-115);

	@include md {
		margin-bottom: vw(-50)
	}
}

.sub_office_access_deco--05 {
	width: vw(112);
	height: vw(133);
	background-image: url(../images/office/office_design05.png);
	margin-bottom: vw(-85);

	@include md {
		margin-bottom: vw(-40)
	}
}

.sub_office_access_map,
.sub_office_access_info {
	position: relative;
	z-index: 1;
}

.sub_office_access_map {
	width: 52%;

	@include md {
		width: 100%;
	}

	iframe {
		display: block;
		width: 100%;
		height: 100%;
		min-height: vw(360);
		border: 0;
	}
}

.sub_office_access_info {
	display: flex;
	flex-direction: column;
	width: 50%;

	@include md {
		width: 100%;
	}
}

.sub_office_access_add {
	font-weight: 500;
	letter-spacing: 0.1em;
}

.sub_office_access_tel {
	margin-top: vw(20);
	font-weight: 500;
	letter-spacing: 0.1em;
}

.sub_office_access_list {
	margin-top: vw(20);

	li {
		position: relative;
		padding-left: 1.2em;
		font-weight: 500;
		letter-spacing: 0.1em;
		line-height: 2.25;

		&::before {
			content: "●";
			position: absolute;
			left: 0;
			font-size: 1rem;
			top: 0.5em;
			color: $mainColor;
		}
	}
}

.sub_office_access_cta {
	margin-top: vw(10);
	display: flex;
	justify-content: flex-start;

	.header_drawer_cta_item {
		margin-top: 0;
	}

	.header_cta_sub {
		font-size: 1.6rem;
		margin-bottom: 3px;
		width: vw(220);
		height: vw(34);
		top: 17px;
		font-weight: 500;
	}

	.header_cta_btn {
		width: vw(420);
		height: vw(70);
		padding: 8px 0 0 0;

		&:hover {
			.btn_arrow {
				&::before {
					width: 26px;
					height: 26px;
				}
			}
		}

		.btn_txt {
			font-size: 2.0rem;
			padding-left: 29px;
			font-weight: 500;

			&::before {
				width: 24px;
				height: 19px;
			}
		}

		.btn_arrow {
			right: vw(30);
			margin-top: 5px;

			&::before {
				width: 6px;
				height: 6px;
			}
		}
	}
}

.office .top_company_list {
	margin-top: vw(70);
}

/* ========== company ========== */
.company .common_sub_main {
	background: url(../images/company/company_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_company_intro {
	text-align: center;
	margin-bottom: vw(120);
	position: relative;
}

.sub_company_intro_deco {
	position: absolute;
	top: 0;
	z-index: 0;
	pointer-events: none;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;

	@include md {
		top: vw(80);
	}
}

.sub_company_intro_deco--left {
	left: vw(50);
	width: vw(77);
	height: vw(236);
	background-image: url(../images/company/compapy_design01.png);
}

.sub_company_intro_deco--right {
	right: vw(40);
	width: vw(102);
	height: vw(238);
	background-image: url(../images/company/compapy_design02.png);
}

.sub_company_intro>*:not(.sub_company_intro_deco) {
	position: relative;
	z-index: 1;
}

.sub_company_intro_ttl {
	font-size: 3.2rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1.5;
	margin-bottom: vw(30);
	font-family: $min01;
}

.sub_company_intro_txt {
	margin-bottom: vw(50);
	text-align: left;
	line-height: 2.25;
	padding: 0 vw(190);

	@include md {
		padding: 0 vw(160);
	}
}

.sub_company_intro_btn {
	margin-left: auto;
	margin-right: auto;
}

.sub_company_nav {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: vw(40);
}

.sub_company_nav_item {
	display: flex;
}

.sub_company_nav_link {
	flex-grow: 1;
	display: block;
	position: relative;
}

.sub_company_nav_img {
	position: relative;
	overflow: hidden;

	&::after {
		content: "";
		position: absolute;
		inset: 0;
		background-color: rgba(0, 0, 0, 0.4);
		opacity: 0;
		transition: opacity 0.4s ease;
		z-index: 1;
	}

	img {
		width: 100%;
		aspect-ratio: 580 / 360;
		object-fit: cover;
		display: block;
		transition: transform 0.6s ease;
	}
}

.sub_company_nav_body {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: vw(110);
	overflow: hidden;
	container-type: inline-size;
}

.sub_company_nav_ttlbox {
	position: relative;
	display: inline-block;
}

.sub_company_nav_en {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	font-size: min(10rem, 13cqw);
	letter-spacing: 0.06em;
	line-height: 1;
	color: #f5f6f9;
	white-space: nowrap;
	pointer-events: none;
	z-index: 0;
}

.sub_company_nav_ttl {
	position: relative;
	font-size: 2.8rem;
	font-weight: 500;
	color: $mainColor;
	letter-spacing: 0.1em;
	z-index: 1;
}

.sub_company_nav_arrow {
	position: absolute;
	right: 0;
	top: 50%;
	transform: translate(0, -50%);
	width: vw(26);
	height: vw(26);
	border-radius: 50%;
	background-color: $mainColor;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.3s ease;
	z-index: 2;

	svg {
		fill: none;
		width: 1rem;
		height: 1rem;
		transition: transform 0.3s ease;
	}

	path {
		stroke: #fff;
	}
}

.sub_company_nav_link:hover {
	.sub_company_nav_img {
		&::after {
			opacity: 1;
		}

		img {
			transform: scale(1.08);
		}
	}

	.sub_company_nav_arrow {
		background-color: $pointColor;

		svg {
			transform: translateX(3px);
		}
	}
}

.sub_company_partners {
	margin-top: vw(120);
}

.sub_company_partners_link {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;
	padding: vw(39) vw(100) vw(45) vw(100);
	background: url(../images/company/company_img07.jpg) no-repeat center center;
	background-size: cover;
	overflow: hidden;

	&::before {
		content: "";
		position: absolute;
		inset: 0;
		background-color: rgba(0, 0, 0, 0.4);
		opacity: 0;
		z-index: 0;
		transition: opacity 0.4s ease;
	}
}

.sub_company_partners_body {
	position: relative;
	color: #fff;
	z-index: 1;
	text-align: center;
}

.sub_company_partners_en {
	display: block;
	font-size: 9.0rem;
	line-height: 1;
	letter-spacing: 0.05em;
	color: #96acbd;
	margin-bottom: vw(15);
}

.sub_company_partners_ttl {
	font-size: 3.2rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	margin-bottom: vw(15);
	font-family: $min01;
}

.sub_company_partners_txt {
	line-height: 2.0;
}

.sub_company_partners_arrow {
	position: absolute;
	right: vw(50);
	top: 50%;
	transform: translate(0, -50%);
	flex-shrink: 0;
	width: vw(76);
	height: vw(76);
	border-radius: 50%;
	background-color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.3s ease;
	z-index: 1;

	svg {
		fill: none;
		width: 2.2rem;
		height: 2.2rem;
		transition: transform 0.3s ease;
	}

	path {
		stroke: $mainColor;
	}
}

.sub_company_partners_link:hover {

	&::before {
		opacity: 1;
	}

	.sub_company_partners_arrow {

		svg {
			transform: translateX(5px);
		}
	}
}

/* ========== reason ========== */
.reason .common_sub_main {
	background: url(../images/reason/reason_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_reason_container01_bg {
	padding: vw(80) 0 vw(140) 0;
	overflow: hidden;
}

.sub_reason_lead {
	display: flex;
	justify-content: center;
	margin-bottom: vw(110);
}

.sub_reason_lead_txt {
	text-align: center;
	line-height: 2.2;
	font-weight: 500;
	letter-spacing: 0.1em;
}

.sub_reason_box {
	display: flex;
	align-items: center;
	width: 100%;
	padding-left: max(4.6875%, calc((100% - 1200px) / 2));
	flex-wrap: wrap;

	&+.sub_reason_box {
		margin-top: vw(90);
	}
}

.sub_reason_box--reverse {
	flex-direction: row-reverse;
	padding-left: 0;
	padding-right: max(4.6875%, calc((100% - 1200px) / 2));
}

.sub_reason_box_body {
	width: 44.87%;
	box-sizing: border-box;
	padding-right: vw(60);

	@include md {
		width: 100%;
	}

	.sub_reason_box_txt {
		margin-right: vw(20);
	}
}

.sub_reason_box--reverse .sub_reason_box_body {
	padding-right: 0;
	padding-left: vw(75);

	.sub_reason_box_txt {
		margin-right: 0;
	}
}

.sub_reason_box_img {
	width: 55.13%;

	@include md {
		width: 100%;
		margin-top: vw(50);
	}

	img {
		display: block;
		width: 100%;
	}
}

.sub_reason_box_head {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.sub_reason_box_num {
	font-family: $en01;
	font-size: 10rem;
	line-height: 1.0;
	letter-spacing: 0.06em;
	color: #f5f6f9;
}

.sub_reason_box_design {
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	animation: floatUpDown 3s ease-in-out infinite;
}

.sub_reason_box_design01 {
	width: vw(152);
	height: vw(180);
	background-image: url(../images/reason/reason_design01.png);
}

.sub_reason_box_design02 {
	width: vw(180);
	height: vw(119);
	background-image: url(../images/reason/reason_design02.png);
}

.sub_reason_box_design03 {
	width: vw(121);
	height: vw(167);
	background-image: url(../images/reason/reason_design03.png);
}

.sub_reason_box_ttl {
	font-size: 3.2rem;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.15em;
	margin-bottom: vw(25);
	font-family: $min01;
}

.sub_reason_box_txt {
	&+.sub_reason_box_txt {
		margin-top: vw(25);
	}
}

.sub_reason_container02_bg {
	display: flex;
	justify-content: center;
	position: relative;
	background-color: #f5f6f9;
	padding: vw(160) 0;

	&::before {
		background: url(../images/common/bk_circle_top.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: vw(100);
		transform: rotate(180deg);
	}

	&::after {
		background: url(../images/common/bk_circle_top.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: vw(100);
	}

	.common_w_inner {
		position: relative;
	}
}

.sub_reason_container03_bg {
	display: flex;
	justify-content: center;
	padding: vw(120) 0;
}

/* ========== philosophy ========== */
.philosophy .common_sub_main {
	background: url(../images/philosophy/philosophy_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_philosophy_container01_bg {
	display: flex;
	justify-content: center;
	padding: vw(65) 0 0 0;
}

.sub_philosophy_catch {
	text-align: center;
	margin-bottom: vw(15);
}

.sub_philosophy_catch_img {
	animation: catch_slide_in 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
	animation-delay: 0.4s;
}

.sub_philosophy_catch_txt {
	font-family: $min01;
	font-weight: 700;
	font-size: 1.8rem;
	line-height: 1.8;
	letter-spacing: 0.1em;
	margin-top: vw(60);
}

.sub_philosophy_frame {
	position: relative;
	display: flex;
	justify-content: center;
	padding: vw(90) 0 vw(150) 0;
}

.sub_philosophy_design01 {
	background: url(../images/philosophy/philosophy_design01.png) no-repeat center center;
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(-20);
	left: vw(-20);
	width: vw(115);
	height: vw(112);
	/*animation: rotateCircle 20s linear infinite;*/
}

.sub_philosophy_design02 {
	background: url(../images/philosophy/philosophy_design02.png) no-repeat center center;
	background-size: contain;
	content: "";
	position: absolute;
	bottom: vw(-35);
	right: vw(-120);
	width: vw(263);
	height: vw(208);
	animation: walkSwing 2.5s ease-in-out infinite;
	z-index: 1;

	@media screen and (max-width: 1568px) {
		right: 0;
	}
}

.sub_philosophy_circles {
	text-align: center;
}

.sub_philosophy_bk {
	background: url(../images/philosophy/philosophy_bk.png) no-repeat center top;
	background-size: cover;
	position: relative;
	height: vw(575);

	&::before {
		background: url(../images/common/bk_circle_top.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: vw(100);
		transform: rotate(180deg);
	}

	&::after {
		background: url(../images/common/bk_circle_top.png) no-repeat center top;
		background-size: cover;
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: vw(100);
	}
}

.sub_philosophy_container02_bg {
	display: flex;
	justify-content: center;
	padding: vw(195) 0 vw(60) 0;
}

.sub_philosophy_box_list {
	display: flex;
	flex-direction: column;
	gap: vw(170);
}

.sub_philosophy_box {
	position: relative;
	background-color: #f5f6f9;
	padding: vw(130) vw(85) vw(65) vw(85);
	text-align: center;
}

.sub_philosophy_box_design {
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	position: absolute;
	animation: floatUpDown 3s ease-in-out infinite;
}

.sub_philosophy_box--01 .sub_philosophy_box_design {
	background-image: url(../images/philosophy/philosophy_design03.png);
	width: vw(138);
	height: vw(191);
	top: vw(-80);
	left: vw(130);

	@include md {
		left: 0;
	}
}

.sub_philosophy_box--02 .sub_philosophy_box_design {
	background-image: url(../images/philosophy/philosophy_design04.png);
	width: vw(205);
	height: vw(235);
	top: vw(-60);
	right: vw(45);

	@include md {
		right: vw(-30);
	}
}

.sub_philosophy_box--03 .sub_philosophy_box_design {
	background-image: url(../images/philosophy/philosophy_design05.png);
	width: vw(144);
	height: vw(241);
	top: vw(-95);
	left: vw(60);

	@include md {
		left: vw(-30);
	}
}

.sub_philosophy_box_en {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	font-family: $en01;
	font-weight: 500;
	font-size: 12.2rem;
	line-height: 1.0;
	letter-spacing: 0.1em;
	white-space: nowrap;
	background: linear-gradient(to bottom, #f5f6f9 0 50%, #fff 50% 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.sub_philosophy_box_ja {
	display: block;
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	font-family: $min01;
	position: relative;
	margin-top: vw(-71);
	margin-bottom: vw(55);
}

.sub_philosophy_box_catch {
	font-family: $min01;
	font-weight: 500;
	font-size: 3.2rem;
	line-height: 1.8;
	letter-spacing: 0.15em;
	margin-bottom: vw(30);
}

.sub_philosophy_box_txt {
	text-align: left;
	line-height: 2.25;
	font-weight: 500;
}

.sub_philosophy_container03_bg {
	display: flex;
	justify-content: center;
	padding: vw(120) 0;
}

/* ========== column ========== */
.column .common_sub_main {
	background: url(../images/column/column_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_column_list ul {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: vw(50) vw(30);

	.top_column_card_ttl {
		color: $textColor;
	}
}

.sub_column_date {
	font-family: $en01;
	color: #a5a5a5;
	letter-spacing: 0.1em;
	text-align: right;
	display: block;
	margin-bottom: vw(30);
}

.sub_column_mainimg {
	margin-bottom: vw(50);

	img {
		width: 100%;
	}
}

/* ========== notfound ========== */
.notfound {
	.sub_notfoud_txt {
		margin-bottom: vw(30);
		font-size: 2.0rem;
		letter-spacing: 0.1em;
		font-weight: 500;
	}

	.common_btn01 {
		margin-left: auto;
		margin-right: auto;
	}
}

/* ========== mailmagazine_thanks ========== */
.mailmagazine_thanks_design01 {
	background: url(../images/mailmagazine/mailmagazine_thanks_design01.png) no-repeat center center;
	background-size: contain;
	content: "";
	position: absolute;
	bottom: vw(-55);
	right: vw(-50);
	width: vw(295);
	height: vw(275);
	animation: floatUpDown 3s ease-in-out infinite;

	@include md {
		right: 0;
		width: vw(196);
		height: vw(183);
	}
}

/* ========== csv ========== */
.csv .common_sub_main {
	background: url(../images/csv/csv_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_csv_ttl01 {
	font-size: 3.2rem;
	font-weight: 500;
	line-height: 1.9375;
	letter-spacing: 0.15em;
	text-align: center;
	font-family: $min01;
}

/* --- container01: 協心のスタンス / 協心1.0〜5.0 --- */
.sub_csv_container01_bg {
	display: flex;
	justify-content: center;
	padding: vw(65) 0 vw(110) 0;
	overflow: hidden;

	.common_inner {
		position: relative;
	}
}

.sub_csv_design01 {
	background: url(../images/csv/csv_design01.png) no-repeat center center;
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(105);
	left: vw(30);
	width: vw(81);
	height: vw(250);
	animation: floatUpDown 3s ease-in-out infinite;

	@include inct {
		left: 0;
		top: vw(145)
	}
}

.sub_csv_design02 {
	background: url(../images/csv/csv_design02.png) no-repeat center center;
	background-size: contain;
	content: "";
	position: absolute;
	top: vw(110);
	right: vw(45);
	width: vw(82);
	height: vw(244);
	animation: floatUpDown 3s ease-in-out infinite;

	@include inct {
		right: 0;
		top: vw(150)
	}
}

.sub_csv_intro_txt {
	max-width: 800px;
	width: 72%;
	box-sizing: border-box;
	margin: vw(30) auto 0;

	p {
		line-height: 2.25;
	}
}

.sub_csv_spread {
	margin-top: vw(100);
}

.sub_csv_ttl02 {
	font-size: 3rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.1em;
	text-align: center;
}

.sub_csv_ttl02_sub {
	display: block;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	margin-top: vw(5);
}

.sub_csv_spread_lead {
	margin: vw(30) 0 vw(40);
}

.sub_csv_scroll_inner {
	img {
		display: block;
		width: 100%;
	}
}

.sub_csv_spread_note {
	margin-top: vw(60);
	text-align: center;
}

/* --- container02: CSV経営の一般定義 --- */
.sub_csv_container02_bg {
	display: flex;
	justify-content: center;
	background: url(../images/csv/csv_container02_bg.png) no-repeat center center;
	background-size: cover;
	padding: vw(120) 0;
	position: relative;

	.common_inner {
		position: relative;
	}
}

.sub_csv_design03 {
	background: url(../images/csv/csv_design03.png) no-repeat center bottom;
	background-size: contain;
	content: "";
	position: absolute;
	bottom: vw(-165);
	left: vw(140);
	width: vw(143);
	height: vw(235);
	animation: walkSwing 3s ease-in-out infinite;

	@include inctw {
		left: 0;
	}
}

.sub_csv_design04 {
	background: url(../images/csv/csv_design04.png) no-repeat center bottom;
	background-size: cover;
	content: "";
	position: absolute;
	bottom: vw(-160);
	right: vw(90);
	width: vw(83);
	height: vw(224);
	animation: floatUpDown 3s ease-in-out infinite;

	@include inctw {
		right: 0;
	}
}

.sub_csv_def_lead {
	margin-top: vw(15);
}

.sub_csv_def_img {
	margin-top: vw(30);
	text-align: center;

	img {
		display: inline-block;
		width: 100%;
		max-width: vw(816);
	}
}

/* --- container03: なぜCSV経営を実践するのか --- */
.sub_csv_container03_bg {
	display: flex;
	justify-content: center;
	padding: vw(120) 0;
}

.sub_csv_value_list {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: vw(50);
	margin-top: vw(70);
	margin-left: vw(40);
	margin-right: vw(40);
}

.sub_csv_value_item {
	width: vw(340);
	height: vw(340);
	border-radius: 50%;
	background: linear-gradient(149deg, #edf4f8 0%, #edf4f8 19%, #ffefdb 100%);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;

	&:first-child {
		.sub_csv_value_txt {
			font-size: 3.2rem;
		}
	}
}

.sub_csv_value_ttl {
	font-size: 2.4rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-align: center;
	font-family: $min01;
	color: $mainColor;
	padding-bottom: vw(5);
	margin-bottom: vw(25);
	position: relative;

	&::after {
		content: "";
		position: absolute;
		left: 50%;
		bottom: 0;
		transform: translateX(-50%);
		width: 60px;
		height: 1px;
		background-color: $mainColor;
	}
}

.sub_csv_value_txt {
	font-family: $min01;
	font-weight: 500;
	letter-spacing: 0.1em;
	font-size: 2.2rem;
	min-height: vw(105.6);
	display: flex;
	align-items: center;
}

.sub_csv_reason_txt {
	margin: vw(60) auto 0;

	p {
		line-height: 2.25;
		letter-spacing: 0.025em;
	}
}

/* --- 私たちが目指す役割（container03内） --- */
.sub_csv_role {
	margin-top: vw(180);
}

.sub_csv_role_ttl {
	margin-bottom: vw(60);
}

.sub_csv_role_body {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: vw(65);
}

.sub_csv_role_txt {
	flex: 1;

	p {
		letter-spacing: 0.05em;
	}
}

.sub_csv_role_img {
	flex-shrink: 0;
	width: vw(398);

	img {
		display: block;
		width: 100%;
	}
}

/* --- container04: 社会課題 --- */
.sub_csv_container04_bg {
	display: flex;
	justify-content: center;
	padding: vw(120) 0;
}

.sub_csv_issue_txt {
	margin: vw(30) auto 0;

	p {
		margin-bottom: vw(40);

		&:last-child {
			margin-bottom: 0;
		}
	}
}

.sub_csv_issue_compare {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: vw(30);
	margin-top: vw(100);

	@include md {
		flex-direction: column;
		gap: vw(60);
	}
}

.sub_csv_issue_box {
	position: relative;
}

.sub_csv_issue_box--problem {
	flex: 0 1 vw(450);
	background: #eef1f5;
	padding: vw(50) vw(45) vw(30);

	@include md {
		flex: initial;
		width: 100%;
	}
}

.sub_csv_issue_box--future {
	flex: 0 1 vw(640);
	background: #fdf6ea;
	padding-right: vw(230);
	padding: vw(70) vw(45) vw(45);

	@include md {
		flex: initial;
		width: 100%;
	}

	.sub_csv_issue_box_list {
		li {
			font-size: 1.8rem;

			&::before {
				width: vw(11);
				height: vw(11);
				background: $pointColor;
			}
		}
	}
}

.sub_csv_issue_box_ttl {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	min-width: vw(240);
	padding: vw(5) vw(20);
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-align: center;
	color: #fff;
	white-space: nowrap;
	font-family: $min01;

	.sub_csv_issue_box--problem & {
		background: $mainColor;
	}

	.sub_csv_issue_box--future & {
		background: $pointColor;
		font-size: 2.6rem;
	}
}

.sub_csv_issue_box_list {
	li {
		position: relative;
		padding-left: vw(25);
		font-weight: 500;
		margin-bottom: vw(8);

		&:last-child {
			margin-bottom: 0;
		}

		&::before {
			content: "";
			position: absolute;
			left: 0;
			top: vw(9);
			width: vw(9);
			height: vw(9);
			border-radius: 50%;
			background: $mainColor;
		}
	}
}

.sub_csv_issue_arrow {
	flex-shrink: 0;

	img {
		display: block;
		width: 50px;
		height: 23px;
	}

	@include md {
		transform: rotate(90deg);
		transform-origin: center center;
		margin: -15px 0 5px 0;
	}
}

.sub_csv_issue_box_img {
	position: absolute;
	right: vw(34);
	bottom: 0;
	width: vw(179);

	img {
		display: block;
		width: 100%;
	}
}

/* --- container05: 協心が提供する3つの価値 --- */
.sub_csv_container05_bg {
	display: flex;
	justify-content: center;
	padding: vw(60) 0 vw(120) 0;
}

.sub_csv_provide_lead {
	margin-top: vw(20);
	font-size: 1.8rem;
	letter-spacing: 0.1em;
	font-weight: 700;
	text-align: center;
}

.sub_csv_provide_list {
	display: flex;
	justify-content: center;
	gap: vw(25);
	margin-top: vw(45);
	position: relative;
	padding-bottom: vw(75);

	&::after {
		content: "";
		position: absolute;
		left: 50%;
		bottom: 0;
		transform: translateX(-50%);
		width: 57px;
		height: 31px;
		background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='57' height='31' viewBox='0 0 57 31'%3E%3Cpath d='M4 4H53L28.5 27Z' fill='%23002d4d' stroke='%23002d4d' stroke-width='4' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
	}
}

.sub_csv_provide_item {
	flex: 1;
	max-width: vw(380);
	background: #f5f6f9;
	padding: vw(50) vw(45)vw(30) vw(45);
	text-align: center;
}

.sub_csv_provide_icon {
	width: vw(110);
	margin: 0 auto vw(25);

	img {
		display: block;
		width: 100%;
	}
}

.sub_csv_provide_ttl {
	font-size: 2.4rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-align: center;
	color: $mainColor;
}

.sub_csv_provide_cap {
	font-weight: 500;
	text-align: center;
	color: $mainColor;
	margin-top: vw(5);
	margin-bottom: vw(20);
	position: relative;
}

.sub_csv_provide_txt {
	font-weight: 500;
	text-align: left;
}

.sub_csv_provide_note {
	margin-top: vw(25);
	font-size: 1.8rem;
	letter-spacing: 0.1em;
	font-weight: 700;
	text-align: center;
	line-height: 2;
}

/* --- container06: 会社情報リンク --- */
.sub_csv_container06_bg {
	display: flex;
	justify-content: center;
	padding: 0 0 vw(120);
}

/*-------------------------------------------------------------------------------------------------------
****** partners（連携をお考えの方へ）
-------------------------------------------------------------------------------------------------------*/
.partners .common_sub_main {
	background: url(../images/partners/partners_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_partners_ttl01 {
	font-size: 3.2rem;
	font-weight: 500;
	line-height: 1.8;
	letter-spacing: 0.12em;
	text-align: center;
	font-family: $min01;
}

.sub_partners_ttl02 {
	font-size: 2.4rem;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.1em;
	padding-bottom: vw(20);
	margin-bottom: vw(25);
	position: relative;

	&::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 1px;
		background-color: $mainColor;
	}
}

/* --- container01: イントロ --- */
.sub_partners_container01_bg {
	display: flex;
	justify-content: center;
	padding: vw(65) 0 vw(80);
}

.sub_partners_intro_txt {
	margin: vw(25) auto 0;

	p {
		letter-spacing: -0.025em;
	}
}

/* --- container02: 一社ではつくれない未来がある --- */
.sub_partners_container02_bg {
	display: flex;
	justify-content: center;
	padding: vw(80) 0 vw(80);
}

.sub_partners_block {
	margin-top: vw(75);

	&:first-of-type {
		margin-top: vw(50);
	}
}

.sub_partners_block_txt {

	p {
		letter-spacing: -0.025em;
	}
}

.sub_partners_block_img {
	margin-top: vw(30);
	text-align: center;

	img {
		display: inline-block;
		/*max-width: vw(731);*/
	}
}

.sub_partners_value_list {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: vw(25);
	margin-top: vw(50);
}

.sub_partners_value_item {
	width: vw(280);
	height: vw(280);
	border-radius: 50%;
	background: linear-gradient(149deg, #edf4f8 0%, #edf4f8 19%, #ffefdb 100%);
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
}

.sub_partners_value_ttl {
	font-size: 2.4rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-align: center;
	font-family: $min01;
	color: $mainColor;
	padding-bottom: vw(5);
	margin-bottom: vw(20);
	position: relative;

	&::after {
		content: "";
		position: absolute;
		left: 50%;
		bottom: 0;
		transform: translateX(-50%);
		width: 60px;
		height: 1px;
		background-color: $mainColor;
	}
}

.sub_partners_value_txt {
	font-size: 2.4rem;
	font-weight: 500;
	font-family: $min01;
	letter-spacing: 0.1em;
}

/* --- container03: 協心が目指す「連携」のかたち --- */
.sub_partners_container03_bg {
	display: flex;
	justify-content: center;
	padding: vw(80) 0;

	.sub_partners_block_img {
		margin-top: vw(70);
	}
}

.sub_partners_align {
	display: flex;
	justify-content: center;
	gap: vw(40);
	margin-top: vw(40);
}

.sub_partners_align_box {
	background-color: #f7f6f3;

	&--general {
		flex: 0 0 vw(460);

		@include md {
			flex: 0 0 vw(300);
		}
	}

	&--kyoshin {
		flex: 1 1 auto;

		.sub_partners_align_list {
			li {
				font-size: 2rem;
				font-weight: 700;
			}
		}
	}
}

.sub_partners_align_ttl {
	padding: vw(13);
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-align: center;
	color: #fff;
	white-space: nowrap;

	.sub_partners_align_box--general & {
		background: $mainColor;
	}

	.sub_partners_align_box--kyoshin & {
		background: $pointColor;
		font-size: 2.2rem;
	}
}

.sub_partners_align_list {
	margin: vw(25) auto;
	display: table;

	li {
		display: flex;
		align-items: center;
		font-size: 1.6rem;
		font-weight: 500;
		letter-spacing: 0.1em;
		gap: vw(20);

		&:not(:last-child) {
			margin-bottom: vw(10);
		}
	}
}

.sub_partners_align_icon {
	flex-shrink: 0;
	width: vw(70);

	img {
		display: block;
		width: 100%;
	}
}

/* --- container04: 協心が大切にしている姿勢 --- */
.sub_partners_container04_bg {
	display: flex;
	justify-content: center;
	padding: vw(80) 0;

	.sub_partners_catch {
		font-size: 2.2rem;
		font-weight: 500;
		letter-spacing: 0.15em;
		text-align: center;
		margin-top: vw(10);
		font-family: $min01;
	}
}

.sub_partners_stance {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: vw(70) auto 0;
	padding: vw(50);
	background: linear-gradient(90deg, #edf4f8 0%, #edf4f8 19%, #ffefdb 100%);
}

.sub_partners_stance_icon {
	position: absolute;
	top: vw(-20);
	left: vw(45);
	content: "";
	width: vw(94);
	height: vw(82);
	background: url(../images/partners/partners_design04.png) no-repeat center center;
	background-size: contain;
	animation: floatUpDown 3s ease-in-out infinite;
}

.sub_partners_stance_list {
	display: flex;
	justify-content: center;
}

.sub_partners_stance_item {
	text-align: center;
	padding: 0 vw(40);
	position: relative;

	&:first-child {
		padding-left: 0;
	}

	&:last-child {
		padding-right: 0;
	}

	&:not(:last-child) {
		&::after {
			content: "";
			position: absolute;
			right: 0;
			top: 50%;
			transform: translateY(-50%);
			width: 2px;
			height: 64px;
			background: url(../images/partners/partners_line.png) no-repeat left top;
			background-size: contain;
		}
	}
}

.sub_partners_stance_word {
	display: inline-block;
	font-size: 2.4rem;
	font-weight: 500;
	font-family: $min01;
	letter-spacing: 0.1em;
	color: $mainColor;
	padding-bottom: vw(5);
	margin-bottom: vw(20);
	position: relative;

	&::after {
		content: "";
		position: absolute;
		left: 50%;
		bottom: 0;
		transform: translateX(-50%);
		width: vw(60);
		height: 1px;
		background-color: $mainColor;
	}
}

.sub_partners_stance_desc {
	font-size: 2.0rem;
	font-weight: 500;
	font-family: $min01;
	letter-spacing: 0.1em;
}

.sub_partners_lead {
	margin: vw(40) auto 0;
}

/* --- container05: 現在進行中の共創活動 --- */
.sub_partners_container05_bg {
	display: flex;
	justify-content: center;
	padding: vw(80) 0;
}

.sub_partners_activity_list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: vw(30) vw(40);
	margin-top: vw(40);
}

.sub_partners_activity_item {
	display: flex;
	align-items: center;
	gap: vw(20);
	width: calc((100% - #{vw(80)}) / 2);
	background: #f7f6f3;
	padding: vw(15) vw(25);
	font-size: 1.8rem;
	font-weight: 500;
	letter-spacing: 0.1em;
}

.sub_partners_activity_icon {
	flex-shrink: 0;
	width: vw(70);

	img {
		display: block;
		width: 100%;
	}
}

/* --- container06: こんな方とご一緒したい --- */
.sub_partners_container06_bg {
	display: flex;
	justify-content: center;
	padding: vw(80) 0 vw(150) 0;

	.sub_partners_catch {
		font-size: 2.2rem;
		font-weight: 700;
		letter-spacing: 0.1em;
		text-align: center;
		color: $mainColor;
		margin-top: vw(30);
	}
}

.sub_partners_target {
	display: flex;
	align-items: center;
	gap: vw(50);
	margin-top: vw(30);
	background: #f5f7f9;
	border-radius: vw(10);
	padding: vw(50) vw(310) vw(50) vw(85);
	position: relative;
}

.sub_partners_target_body {
	flex: 1;
}

.sub_partners_target_list {
	display: flex;
	flex-wrap: wrap;
	gap: vw(20) vw(50);

	li {
		width: calc((100% - #{vw(50)}) / 2);
		position: relative;
		padding-left: vw(30);
		font-size: 1.8rem;
		font-weight: 500;

		&::before {
			content: "";
			position: absolute;
			left: 0;
			top: 0.35em;
			width: vw(20);
			height: vw(20);
			background: url(../images/common/icon_check_blue.svg) no-repeat center center;
			background-size: contain;
		}
	}
}

.sub_partners_target_img {
	flex-shrink: 0;
	position: absolute;
	right: vw(50);
	bottom: vw(25);
	width: vw(210);

	img {
		display: block;
		width: 100%;
	}
}

/* --- container07: 締 --- */
.sub_partners_container07_bg {
	display: flex;
	justify-content: center;
	background: url(../images/partners/partners_fix_bg.png) no-repeat center center;
	background-size: cover;
	padding: vw(100) 0 vw(90) 0;
	margin-bottom: vw(120);
}

.sub_partners_fix_ttl {
	font-size: 3.6rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	font-family: $min01;
	text-align: center;
	color: $mainColor;
	padding-bottom: vw(5);
	margin-bottom: vw(20);
	border-bottom: 2px dotted $mainColor;
	display: table;
	margin-left: auto;
	margin-right: auto;
}

.sub_partners_fix_txt {
	font-size: 1.8rem;
	font-weight: 500;
	text-align: center;
}

.sub_partners_fix_btn {
	margin-top: vw(20);
	display: flex;
	justify-content: center;

	.header_drawer_cta_item {
		margin-top: 0;
	}

	.header_cta_sub {
		font-size: 1.6rem;
		margin-bottom: 3px;
		width: vw(290);
		height: vw(34);
		top: 17px;
		font-weight: 500;
		padding-left: vw(5);
	}

	.header_cta_btn {
		width: vw(420);
		height: vw(70);
		padding: 8px 0 0 0;

		&:hover {
			.btn_arrow {
				&::before {
					width: 26px;
					height: 26px;
				}
			}
		}

		.btn_txt {
			font-size: 2.0rem;
			padding-left: 29px;
			font-weight: 500;

			&::before {
				width: 24px;
				height: 19px;
			}
		}

		.btn_arrow {
			right: vw(30);
			margin-top: 5px;

			&::before {
				width: 6px;
				height: 6px;
			}
		}
	}
}

/* ========== サービス詳細 共通メイン（8ページ共通） ========== */
.common_sub_service_main {
	display: flex;
	justify-content: center;
	padding: vw(40) 0 vw(187) 0;
	position: relative;
	overflow: hidden;

	&::before {
		background: url(../images/common/sub_service_mainimg_bk.png) no-repeat center bottom;
		background-size: cover;
		content: "";
		position: absolute;
		top: vw(210);
		left: 0;
		width: 100%;
		height: vw(442);
	}

	.common_inner {
		display: flex;
		align-items: center;
		position: relative;
		z-index: 1;
	}

	&_txt {
		flex: 1;
		padding-right: vw(50);
	}

	&_box {
		margin-bottom: vw(90);
	}

	.common_en01 {
		display: block;
		font-size: 4.6rem;
		letter-spacing: 0.1em;
		color: #edf3f8;
		line-height: 1.2;
		margin-bottom: vw(10);
	}

	.h1_ttl {
		font-size: 4.8rem;
		font-weight: 500;
		line-height: 1.4;
	}

	&_btn {
		margin-top: vw(60);
		align-items: flex-start;

		&.sp {
			display: none;
		}

		.header_cta_btn {
			width: vw(420);
			height: vw(70);
			padding: 0;

			&:hover {
				.btn_arrow {
					&::before {
						width: 26px;
						height: 26px;
					}
				}
			}

			.btn_txt {
				font-size: 2.0rem;
				padding-left: 29px;
				font-weight: 500;

				&::before {
					width: 24px;
					height: 19px;
				}
			}

			.btn_arrow {
				right: vw(30);
				margin-top: 0;

				&::before {
					width: 6px;
					height: 6px;
				}
			}
		}
	}
}

/* サービス詳細メイン画像：基本は inner 内に収める。 */
/* insurance はみ出す */
.insurance .common_sub_service_main_img {
	margin-right: vw(-180);

	@include md {
		margin-right: vw(-80);
	}
}

/* laborinsurance 右余白 */
.laborinsurance .common_sub_service_main_img {
	margin-right: vw(75);

	@include md {
		margin-right: 0;
	}
}

/* regulations 右余白 */
.regulations .common_sub_service_main_img {
	margin-right: vw(95);

	@include md {
		margin-right: 0;
	}
}

/* advisor 右余白 */
.advisor .common_sub_service_main_img {
	margin-right: vw(70);

	@include md {
		margin-right: 0;
	}
}

/* design 右余白 */
.design .common_sub_service_main_img {
	margin-right: vw(115);
	margin-left: vw(80);

	@include md {
		margin-right: 0;
		margin-left: 0;
	}
}

/* seminar はみ出す */
.seminar .common_sub_service_main_img {
	margin-right: vw(-40);
}

/* ========== お悩み（サービス詳細8ページ共通） ========== */
.sub_service_worry_bg {
	display: flex;
	justify-content: center;
	padding: 0 0 vw(95) 0;
}

.sub_service_worry_ttl {
	text-align: center;
	font-size: 3.8rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.4;
	padding-bottom: vw(10);
	margin-bottom: vw(70);
	border-bottom: 3px dotted $mainColor;
	display: table;
	margin-left: auto;
	margin-right: auto;
}

.sub_service_worry_ttl_em {
	color: $mainColor;
}

.sub_service_worry_list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: vw(30);
}

.sub_service_worry_item {
	position: relative;
	padding-top: vw(30);
}

.sub_service_worry_num {
	position: absolute;
	top: vw(30);
	left: 0;
	width: 100%;
	transform: translateY(-50%);
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: vw(25);
	box-sizing: border-box;

	&::before,
	&::after {
		content: "";
		flex: 1;
		height: 2px;
		background-color: $mainColor;
	}
}

.sub_service_worry_num_label {
	display: inline-flex;
	align-items: center;
	color: $mainColor;
	font-size: 1.8rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	font-family: $min01;
	white-space: nowrap;
	line-height: 1.0;
}

.sub_service_worry_num_en {
	font-size: 3.2rem;
	line-height: 1.0;
	letter-spacing: 0.1em;
	margin-left: vw(10);
	font-family: $en01;
}

.sub_service_worry_box {
	height: 100%;
	padding: vw(50) vw(35) vw(30) vw(35);
	background-color: #f5f6f9;
	box-sizing: border-box;
}

.sub_service_worry_img {
	text-align: center;
	margin-bottom: vw(30);
}

.sub_service_worry_txt {
	font-weight: 500;
	line-height: 1.8;

	.sub_service_worry_em {
		color: $mainColor;
		font-weight: 700;
	}
}

/* ========== 協心ができること（サービス詳細8ページ共通） ========== */
.sub_service_can_bg {
	display: flex;
	justify-content: center;
	padding: vw(95) 0;
}

.sub_service_can_box {
	position: relative;
	background-color: #f5f6f9;
	box-sizing: border-box;
	overflow: hidden;
	margin-top: vw(70);

	@include md {
		padding-bottom: vw(80);
	}
}

.sub_service_can_box_ttl {
	text-align: center;
	font-size: 2.4rem;
	font-weight: 500;
	color: #fff;
	background-color: $mainColor;
	letter-spacing: 0.1em;
	line-height: 1.4;
	margin-bottom: vw(60);
	padding: vw(15);
}

.sub_service_can_list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: vw(30) vw(35);
	position: relative;
	z-index: 1;
	margin: vw(60) vw(55);

	@include md {
		grid-template-columns: 1fr;
	}
}

.sub_service_can_item {
	display: flex;
	align-items: flex-start;
	gap: vw(25);
	padding: vw(30) vw(45);
	background-color: #fff;
	box-sizing: border-box;
}

.sub_service_can_item_img {
	flex-shrink: 0;
	width: vw(120);
	text-align: center;
}

.sub_service_can_item_body {
	flex: 1;
}

.sub_service_can_item_ttl {
	font-size: 2.0rem;
	font-weight: 700;
	letter-spacing: 0.025em;
	margin-bottom: vw(10);
}

.sub_service_can_item_txt {
	letter-spacing: 0.1em;
	font-weight: 500;
}

.sub_service_can_design {
	position: absolute;
	z-index: 0;
	pointer-events: none;
}

.insurance .sub_service_can_design {
	right: vw(145);
	bottom: 0;
	width: vw(368);

	@include md {
		width: vw(184);
	}
}

.calculation .sub_service_can_design {
	right: vw(197);
	bottom: vw(33);
	width: vw(226);

	@include md {
		width: vw(124);
		bottom: 0;
	}
}

.subsidy .sub_service_can_design {
	right: vw(85);
	bottom: 0;
	width: vw(467);

	@include inctw {
		right: vw(30);
		width: 45%;
	}

	@include md {
		width: vw(230);
	}
}

.regulations .sub_service_can_design {
	right: vw(122);
	bottom: 0;
	width: vw(376);

	@include inct {
		right: 10%;
	}

	@include md {
		width: vw(180);
	}
}

.advisor .sub_service_can_design {
	right: vw(89);
	bottom: 0;
	width: vw(429);

	@include inct {
		right: 5%;
		width: 35%;
	}

	@include md {
		width: vw(180);
	}
}

.design .sub_service_can_design {
	right: vw(220);
	bottom: 0;
	width: vw(234);

	@include inct {
		right: 17%;
	}

	@include md {
		width: vw(110);
	}
}

.seminar .sub_service_can_design {
	right: vw(110);
	bottom: 0;
	width: vw(400);

	@include inct {
		right: 11%;
		width: 28%;
	}

	@include md {
		width: vw(160);
		right: 39%;
	}
}

.laborinsurance .sub_service_can_box {
	@include md {
		padding-bottom: 0;
	}
}

.laborinsurance .sub_service_can_link {
	display: flex;
	align-items: center;
	justify-content: center;

	a {
		&:hover {
			opacity: 0.7;
		}
	}
}

/* ========== サービス詳細 共通セクション見出し（8ページ共通） ========== */
.sub_service_sec_ttl {
	text-align: center;
	font-size: 3rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.4;
	margin-bottom: vw(50);
}

/* ========== 協心が選ばれる理由（サービス詳細8ページ共通） ========== */
.sub_service_reason_bg {
	display: flex;
	justify-content: center;
	padding: vw(95) 0;
}

.sub_service_reason_list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: vw(90);
	margin-top: vw(70);

	@include inct {
		gap: vw(50);
	}

	@include md {
		grid-template-columns: 1fr;
	}
}

.sub_service_reason_circle {
	aspect-ratio: 340 / 340;
	border-radius: 50%;
	background-color: #f5f6f9;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	padding: vw(30) 0;
	box-sizing: border-box;
	margin-bottom: vw(30);
	max-width: 340px;
	margin-left: auto;
	margin-right: auto;
}

.sub_service_reason_num {
	display: flex;
	align-items: baseline;
	justify-content: center;
	margin-bottom: vw(40);
}

.sub_service_reason_num_label {
	font-size: 1.8rem;
	letter-spacing: 0.1em;
	color: $mainColor;
	line-height: 1.0;
	margin-bottom: vw(5);
	display: inline-block;
}

.sub_service_reason_num_en {
	font-size: 3.2rem;
	letter-spacing: 0.1em;
	margin-left: vw(10);
	color: $mainColor;
	line-height: 1.0;
}

.sub_service_reason_ttl {
	font-size: 2.2rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.45;
	font-family: $min01;
	min-height: 8.05rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;

	.sub_service_reason_em {
		color: $pointColor;
	}
}

.sub_service_reason_txt {
	line-height: 2.0;
	letter-spacing: 0.08em;
	font-weight: 500;
}

/* ========== ご相談から支援開始までの流れ（サービス詳細8ページ共通） ========== */
.sub_service_flow_bg {
	display: flex;
	justify-content: center;
	padding: vw(95) 0;
}

.sub_service_flow_list {
	display: flex;
	justify-content: space-between;
	gap: vw(25);
	margin-top: vw(70);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	padding-bottom: vw(15);

	&::-webkit-scrollbar {
		height: 8px;
	}

	&::-webkit-scrollbar-track {
		background: #e6e6e6;
		border-radius: 5px;
	}

	&::-webkit-scrollbar-thumb {
		background: #BCBCBC;
		border-radius: 10px;
	}
}

.sub_service_flow_box {
	flex: 1;
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 200px;

	&:nth-child(1) .sub_service_flow_num {
		background-color: $mainColor;
	}

	&:nth-child(2) .sub_service_flow_num {
		background-color: color.mix($pointColor, $mainColor, 25%);
	}

	&:nth-child(3) .sub_service_flow_num {
		background-color: color.mix($pointColor, $mainColor, 50%);
	}

	&:nth-child(4) .sub_service_flow_num {
		background-color: color.mix($pointColor, $mainColor, 75%);
	}

	&:nth-child(5) .sub_service_flow_num {
		background-color: $pointColor;
	}

	&:not(:last-child)::before {
		content: "";
		position: absolute;
		top: vw(24);
		left: 50%;
		width: calc(100% + #{vw(20)});
		height: 2px;
		z-index: 0;
	}

	&:nth-child(1)::before {
		background: linear-gradient(to right, $mainColor, color.mix($pointColor, $mainColor, 25%));
	}

	&:nth-child(2)::before {
		background: linear-gradient(to right, color.mix($pointColor, $mainColor, 25%), color.mix($pointColor, $mainColor, 50%));
	}

	&:nth-child(3)::before {
		background: linear-gradient(to right, color.mix($pointColor, $mainColor, 50%), color.mix($pointColor, $mainColor, 75%));
	}

	&:nth-child(4)::before {
		background: linear-gradient(to right, color.mix($pointColor, $mainColor, 75%), $pointColor);
	}
}

.sub_service_flow_num {
	display: flex;
	justify-content: center;
	align-items: center;
	width: vw(48);
	height: vw(48);
	border-radius: 50%;
	color: #fff;
	font-size: 2.2rem;
	letter-spacing: 0.1em;
	margin: 0 auto vw(40) auto;
	position: relative;
	z-index: 1;
}

.sub_service_flow_card {
	background-color: #f7f6f3;
	padding: vw(25) vw(25) vw(20) vw(25);
	text-align: center;
	height: 100%;
	box-sizing: border-box;
	flex: 1;
}

.sub_service_flow_ttl {
	font-size: 2rem;
	font-weight: 500;
	color: $mainColor;
	line-height: 1.5;
	min-height: vw(60);
	display: flex;
	justify-content: center;
	align-items: center;
	letter-spacing: 0.05em;

	span {
		font-size: 1.8rem;
	}
}

.calculation .sub_service_flow_ttl,
.regulations .sub_service_flow_ttl,
.advisor .sub_service_flow_ttl,
.design .sub_service_flow_ttl,
.seminar .sub_service_flow_ttl {
	min-height: vw(90);
}

.sub_service_flow_img {
	display: block;
	margin: 0 auto vw(10) auto;
}

.sub_service_flow_txt {
	letter-spacing: 0.1em;
	font-weight: 500;
	text-align: left;
}

/* ========== 導入事例（サービス詳細8ページ共通） ========== */
.sub_service_case_bg {
	display: flex;
	justify-content: center;
	padding: vw(95) 0;
}

.sub_service_case_box {
	padding: vw(70) vw(80);
	background-color: #f5f6f9;
	box-sizing: border-box;
}

.sub_service_case_head {
	display: flex;
	align-items: center;
	gap: vw(45);
	margin-bottom: vw(60);
}

.sub_service_case_head_img {
	flex-shrink: 0;
	width: vw(160);
}

.sub_service_case_head_body {
	flex: 1;
}

.sub_service_case_head_ttl {
	font-size: 2.4rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.4;
	padding-bottom: vw(20);
	margin-bottom: vw(15);
	border-bottom: 1px solid $mainColor;
}

.sub_service_case_head_sub {
	font-weight: 500;
	letter-spacing: 0.1em;
}

.sub_service_case_compare {
	display: flex;
	align-items: stretch;
	gap: vw(60);

	@include md {
		flex-direction: column;
	}
}

.sub_service_case_col {
	flex: 1;
	position: relative;
	padding: vw(45) vw(30) vw(30) vw(30);
	background-color: #fff;
	box-sizing: border-box;

	&--before {
		border: 1px solid $mainColor;

		&::after {
			content: "";
			position: absolute;
			top: 50%;
			right: vw(-46);
			transform: translateY(-50%);
			width: 0;
			height: 0;
			border-style: solid;
			border-width: vw(18) 0 vw(18) vw(24);
			border-radius: 3px;
			border-color: transparent transparent transparent $pointColor;

			@include md {
				top: auto;
				bottom: vw(-45);
				left: 50%;
				margin-left: vw(-18);
				right: auto;
				border-width: vw(24) vw(18) 0 vw(18);
				border-color: $pointColor transparent transparent transparent;
			}
		}
	}

	&--after {
		border: 1px solid $pointColor;
	}
}

.sub_service_case_label {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	display: flex;
	justify-content: center;
	align-items: center;
	min-width: vw(220);
	padding: vw(10) vw(20);
	color: #fff;
	font-size: 2.2rem;
	font-family: $en01;
	letter-spacing: 0.1em;
	line-height: 1.0;

	.sub_service_case_col--before & {
		background-color: $mainColor;
	}

	.sub_service_case_col--after & {
		background-color: $pointColor;
	}
}

.sub_service_case_txt {
	line-height: 2;
	font-weight: 500;
}

/* ========== よくある質問（recruitと同デザイン／8ページ共通） ========== */
.sub_service_faq_bg {
	display: flex;
	justify-content: center;
	padding: vw(95) 0;
}

/* ========== 締（CV／サービス詳細8ページ共通） ========== */
.sub_service_cv_bg {
	display: flex;
	justify-content: center;
	padding: vw(95) 0;
}

.sub_service_cv_box {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: vw(40);
	padding: vw(50) vw(120);
	background: linear-gradient(149deg, #edf4f8 0%, #edf4f8 19%, #ffefdb 100%);
	box-sizing: border-box;

	@media screen and (max-width: (1248px)) {
		padding: vw(40);
	}
}

.sub_service_cv_body {
	flex: 1;
	order: 1;
}

.sub_service_cv_ttl {
	font-size: 3.6rem;
	font-weight: 500;
	color: $mainColor;
	letter-spacing: 0.12em;
	line-height: 1.5;
	margin-bottom: vw(20);
	border-bottom: 2px dotted $mainColor;
	padding-bottom: vw(5);
	font-family: $min01;
	display: table;
	margin-left: auto;
	margin-right: auto;
	white-space: nowrap;

	@include md {
		font-size: 2.8rem;
	}
}

.sub_service_cv_txt {
	line-height: 2.0;
	font-weight: 500;
	font-size: 1.8rem;
	text-align: center;
}

.sub_service_cv_btn {
	margin-top: vw(10);
}

.sub_service_cv_img {
	width: vw(323);
	order: 0;
}

.sub_service_cv_img+.sub_service_cv_btn.sp {
	display: none;
}

/* ========== 他のサービス内容（サービス詳細8ページ共通） ========== */
.sub_service_other_bg {
	display: flex;
	justify-content: center;
	padding: vw(90) 0 vw(120) 0;
}

.sub_service_other_list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: vw(26);
	margin-top: vw(70);

	/*@media screen and (max-width: (1248px)) {
		grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	}*/
	@include md {
		grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	}
}

.sub_service_other_card {
	display: flex;
	align-items: center;
	gap: vw(10);
	height: vw(100);
	padding: 0 vw(50) 0 vw(15);
	background: #f5f6f9;
	border-top: 2px solid $mainColor;
	position: relative;
	box-sizing: border-box;

	&::before {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 2px;
		transform: scaleX(1);
		transform-origin: left;
		transition: transform 0.3s ease;
		background-color: $mainColor;
	}

	&::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 100%;
		height: 2px;
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.3s ease;
		background-color: $pointColor;
	}

	&:hover {
		&::before {
			transform: scaleX(0);
		}

		&::after {
			transform: scaleX(1);
		}

		.btn_arrow::before {
			background-color: $pointColor;
		}
	}
}

.sub_service_other_card_icon {
	flex-shrink: 0;
	width: vw(55);
	text-align: center;
}

.sub_service_other_card_ttl {
	flex: 1;
	font-size: 1.8rem;
	font-weight: 500;
	color: $mainColor;
	line-height: 1.4;
	letter-spacing: -0.025em;
}

.sub_service_other_card .btn_arrow {
	position: absolute;
	right: vw(20);
	top: 50%;
	transform: translateY(-50%);
	width: 26px;
	height: 26px;

	svg {
		fill: none;
		width: 1rem;
		height: 1rem;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
	}

	path {
		stroke: #fff;
	}

	&::before {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: 26px;
		height: 26px;
		border-radius: 50%;
		background-color: $mainColor;
		transition: all 0.3s ease-out;
	}
}

/*-------------------------------------------------------------------------------------------------------
****** contact（お問い合わせ）
-------------------------------------------------------------------------------------------------------*/
.contact .common_sub_main {
	background: url(../images/contact/contact_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

/*-------------------------------------------------------------------------------------------------------
****** unsubscribe（配信停止）
-------------------------------------------------------------------------------------------------------*/
.unsubscribe .common_sub_main {
	background: url(../images/unsubscribe/unsubscribe_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

/*-------------------------------------------------------------------------------------------------------
****** SU Blocks Blogcard
-------------------------------------------------------------------------------------------------------*/
/* タイトル */
/* ブログカードのタイトル */
.wp-block-su-blogcard .wp-blogcard-title {
	font-size: 2rem;
}

/* ブログカードの説明文 */
.wp-block-su-blogcard .wp-blogcard-description {
	font-size: 1.6rem;
}

/* サイト名（ドメイン）部分 */
.wp-block-su-blogcard .wp-blogcard-domain {
	font-size: 1.4rem;
}

/*-------------------------------------------------------------------------------------------------------
****** MyKomon
-------------------------------------------------------------------------------------------------------*/
#mkcontents,
#mkcontents table {
	font-size: 16px !important;
	line-height: 2 !important;
}

#mkcontents {
	.hp2_format_file_links {
		justify-content: flex-start;

		>a {
			display: flex;
			align-items: center;

			>img {
				margin: 4px 7px 0 0;
			}
		}
	}

	.hp2_format_lower {
		margin-top: vw(50);
	}

	.hp2_format_image + div > [style*="font-weight: bold"] {
		margin-bottom: 10px;
	}
}

.mykomon_contents03 {

	.content_item_list {
		margin-bottom: vw(100);

		dt {
			padding: vw(30) vw(40) vw(30) vw(40);
			border-bottom: 1px solid #e4e6ea;


			.item_date_left {
				color: #a5a5a5;
				letter-spacing: 0.1em;
				font-family: "Philosopher", sans-serif;
			}

			.item_title {
				margin-top: 1.5rem;

				a {
					color: $textColor;
					display: block;
					letter-spacing: 0.1em;
					transition: color 0.2s;
					font-weight: 500;
					width: 100%;

					&:hover {
						opacity: 0.7;
					}
				}
			}
		}
	}

	.content_item_list_link {
		max-width: vw(360);
		height: vw(70);
		margin-left: auto;
		margin-right: auto;

		a {
			width: 100%;
			height: 100%;
			display: flex;
			justify-content: center;
			align-items: center;
			position: relative;
			background-color: $mainColor;
			color: #fff;
			font-weight: 500;
			letter-spacing: 0.1em;

			&::before {
				content: '';
				position: absolute;
				left: 0;
				bottom: 0;
				width: 100%;
				height: 2px;
				transform: scaleX(0);
				transform-origin: left;
				transition: transform 0.3s ease;
				background-color: $pointColor;
			}

			&:hover {
				&::before {
					transform: scaleX(1);
				}
			}
		}
	}
}

.mykomon .single_entry_contact_box {
	margin: vw(100) auto 0 auto;
	max-width: vw(820);
}

/*-------------------------------------------------------------------------------------------------------
****** privacypolicy（個人情報保護方針）
-------------------------------------------------------------------------------------------------------*/
.privacypolicy .common_sub_main {
	background: url(../images/privacypolicy/privacypolicy_mainimg.jpg) no-repeat center top;
	background-size: cover;
}

.sub_privacypolicy {
	width: 100%;
	margin: 0 auto;

	p {
		line-height: 2.25;
		font-weight: 500;
	}

	li,
	a {
		font-weight: 500;
	}
}

.sub_privacypolicy_block {
	&+.sub_privacypolicy_block {
		margin-top: vw(90);
	}
	&+.ank .sub_privacypolicy_block {
		padding-top: vw(90);
	}
}

.privacypolicy .ank{
	padding-top: vw(90);
	margin-top: vw(-90);
}

.sub_privacypolicy_ttl {
	text-align: center;
	font-family: $min01;
	font-size: 3.2rem;
	font-weight: 500;
	letter-spacing: 0.15em;
	line-height: 1.5;
	color: $textColor;
	margin-bottom: vw(35);
}

.sub_privacypolicy .sub_privacypolicy_block>p {
	margin-bottom: vw(60);
}

.sub_privacypolicy_list {
	>li {
		&+li {
			margin-top: vw(50);
		}
	}
}

.sub_privacypolicy_list_ttl {
	font-size: 2.4rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.4;
	color: $textColor;
	border-bottom: 1px solid $mainColor;
	padding-bottom: vw(20);
	margin-bottom: vw(25);
}

.sub_privacypolicy_list_num {
	font-family: $en01;
	font-size: 2.8rem;
	font-weight: 400;
	letter-spacing: 0.1em;
	color: $pointColor;
	margin-right: vw(15);
}

.sub_privacypolicy_subttl {
	display: block;
	background-color: #f5f6f9;
	padding: vw(10) vw(30);
	font-weight: 700;
	letter-spacing: 0.1em;
	color: $textColor;
	margin-top: vw(40);
	margin-bottom: vw(30);

	&::before {
		content: "■";
		color: $mainColor;
		margin-right: 0.8em;
		font-size: 1.4rem;
	}
}

.sub_privacypolicy_group {
	margin-top: vw(35);

	>.sub_privacypolicy_subttl {
		margin-top: 0;
	}

	p+p {
		margin-top: vw(15);
	}
}

.sub_privacypolicy_box {
	margin-top: vw(40);

	span {
		display: block;
		font-weight: 700;
		letter-spacing: 0.05em;
		color: $mainColor;
		margin-bottom: vw(15);
		font-size: 1.8rem;
	}

	p+p {
		margin-top: vw(15);
	}
}

.sub_privacypolicy_ol {
	counter-reset: ppnum;
	list-style: none;

	>li {
		counter-increment: ppnum;
		position: relative;
		line-height: 2;
		letter-spacing: 0.05em;
		padding-left: 2.6em;

		&::before {
			content: "（" counter(ppnum) "）";
			position: absolute;
			left: 0;
			top: 0;
		}
	}
}

p+.sub_privacypolicy_ol {
	margin-top: vw(15);

	>li+li {
		margin-top: vw(15);
	}
}

.sub_privacypolicy_ul {
	list-style: none;

	>li {
		position: relative;
		padding-left: 1.4em;
		line-height: 2;
		letter-spacing: 0.05em;

		&::before {
			content: "・";
			position: absolute;
			left: 0;
			top: 0;
		}
	}
}

p+.sub_privacypolicy_ul {
	margin-top: vw(15);
}

.sub_privacypolicy_ol_block {
	>li+li {
		margin-top: vw(30);
	}

	p+p {
		margin-top: vw(15);
	}
}

.sub_privacypolicy_ol_ttl {
	font-weight: 700;
	letter-spacing: 0.05em;
	color: $mainColor;
	font-size: 1.8rem;
	display: block;
	margin-bottom: 10px;
}

.sub_privacypolicy_link {
	display: inline-block;
	position: relative;
	margin-top: vw(12);
	padding-right: 15px;
	letter-spacing: 0.05em;
	color: $mainColor;
	border-bottom: 1px solid $mainColor;

	&::after {
		content: "";
		background: url(../images/common/icon_arrow_blue.svg) no-repeat left top;
		position: absolute;
		top: 50%;
		right: 0;
		transform: translate(0, -50%);
		width: 16px;
		height: 11px;
	}

	&:hover {
		text-decoration: none;
	}
}

.sub_privacypolicy_sign {
	text-align: right;
	margin-top: vw(45);

	p+p {
		margin-top: vw(20);
	}
}