/* 共通 */
.about_au_page p,
.about_au_page dt,
.about_au_page dd {
	line-height: 2;
}

.company_info_area .inner,
.history_area .inner,
.staff_area .inner,
.partner_company_area .inner {
	max-width: 1200px;
	width: 90%;
	margin: 0 auto;
}

.company_info_area .section_box,
.history_area .section_box,
.partner_company_area .section_box {
	padding: 30px;
}

.company_info_area .section_box,
.history_area .section_box {
	margin-bottom: 60px;
}

.staff_area,
.partner_company_area {
	margin-bottom: 60px;
}

/* 会社概要 */
.company_info {
	display: flex;
	flex-direction: column-reverse;
	align-items: center;
	justify-content: center;
	gap: 35px;
}

.company_img_box {
	width: min(100%, 560px);
	max-width: none;
	margin: 0 auto;
}

.company_img_box img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 20px;
}

.company_info_list {
	width: 100%;
	max-width: 650px;
}

.company_info_row dt {
	width: 110px;
	padding: 0 0 0 12px;
	font-weight: bold;
	border-left: 2px solid #8824FB;
	margin-top: 20px
}

.company_info_row dd {
	flex: 1;
	padding: 10px 0 10px 12px;
	border-bottom: 1px solid #EEE;
}

.company_info_row dd .txt_link {
	margin-left: 10px;
}

/* 沿革 */
.history_intro {
	margin-bottom: 20px;
}

.history_mv_box {
	position: relative;
}

.history_mv_text {
	position:absolute;
	bottom: 18%;
	right: 4%;
	color: #FFF;
	text-shadow: 1px 1px 2px black;
}

.history_mv {
	margin-bottom: 35px;
	border-radius: 20px;
}

.history_content {
	margin-bottom: 35px;
}

.history_content:last-child {
	margin-bottom: 0;
}

.history_row {
	margin-bottom: 20px;
}

.history_list .history_row:last-of-type {
	margin-bottom: 0;
}

.history_row .year {
	font-size: 30px;
	font-weight: bold;
	color: #AD5AFF;
	line-height: 1;
}

.history_row .jp_year {
	color: #AD5AFF;
}

.history_images {
	display: none;
}

.history_img_sp {
	width: 100%;
	display: block;
	margin-bottom: 20px;
}

.history_img_sp:last-child {
	margin-top: 20px;
	margin-bottom: 0;
}

/* スタッフメッセージ */
.staff_title{
	margin: 20px 0;
}

.staff_msg_list {
	display: flex;
	flex-direction: column;
	gap: 20px
}

.staff_card {
	width: 100%;
	background:#FDF9FF;
	border-radius: 20px;
	display: flex;
	margin: 0 auto;
	padding: 25px;
	flex-wrap: wrap;
	box-sizing: border-box;
}

.staff_img {
	width: 100px;
	flex-shrink: 0;
}

.staff_img img {
	display: block;
	width: 100%;
	height: auto;
}

.staff_position {
	font-weight: bold;
	margin-top: 6px;
}

.staff_profile {
	width: 100px;
	flex-shrink: 0;
}

.staff_content {
	flex: 1;
	min-width: 0;
}

.staff_msg {
	position: relative;
	padding: 15px;
	border: 1px solid #AD5AFF;
	border-radius: 20px;
	background: #fff;
	display: flex;
	align-items: flex-start;
	flex: 1;
	margin-left: 24px;
}

.staff_msg::before {
	content: "";
	position: absolute;
	left: -7px;
	top: 35px;
	width: 12px;
	height: 12px;
	background: #FFF;
	border-left: 1px solid #AD5AFF;
	border-bottom: 1px solid #AD5AFF;
	transform: rotate(45deg);
}

.staff_msg p {
	line-height: 1.6;
}

.staff_detail {
	width: 100%;
	/* margin-top: 20px; */
	margin-top: 10px;
}

.staff_detail_row {
	display: flex;
	margin-top: 12px;
}

.staff_detail.for_sp .staff_detail_row:first-child {
	margin-top: 0;
}

.staff_card.is_adjusted .staff_detail_row:first-child {
	margin-top: 0;
}

.staff_detail_row dt {
	width: 100px;
	height: 32px;
	background:#AD5AFF;
	border-radius: 20px;
	color: #FFF;
	margin-right: 16px;
	text-align:center;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	line-height: 1;
}

.staff_name {
	line-height: 1.5;
}

.staff_card.is_adjusted .staff_name {
	margin-top: 6px;
}

/* 協力会社 */
.partner_company_list {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.partner_card {
	width: 100%;
	padding: 30px 40px;
	border: 1px solid #D9CCFF;
	border-radius: 30px;
	background: #FFF;
}

.partner_card_label {
	margin-bottom: 20px;
	background: #AD5AFF;
	color: #FFF;
	text-align: center;
}

.partner_card_name {
	font-size: 18px;
	font-weight: bold;
	margin-bottom: 4px;
}

.partner_card .partner_card_name a {
	color: #333;
}

.partner_card_name .txt_link:after,
.partner_list li .txt_link:after {
	margin-left: 8px;
}

.partner_card_tel {
	margin-bottom: 4px;
}

.partner_card_tel span {
	display: block;
}

.partner_card_mail {
	color: #663FE8;
	text-decoration: none;
}

.partner_contents {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
	margin-top: 40px;
}

.partner_contents .section_box {
	width: 100%;
}

.partner_list li {
	position: relative;
	padding-left: 1.3em;
	line-height: 2.8;
}

.partner_list li::before {
	content: "・";
	position: absolute;
	left: 0;
	top: 0;
}

.partner_contents .myfc_img {
	width: 100%;
	border: 2px solid #AD89A8;
	border-radius: 20px;
	background: #FBF5FF;
	padding: 20px;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 2px;
	flex-wrap: wrap;
}

.partner_contents .myfc_logo {
	width: 70%;
	max-width: 222px;
	margin-top: 16px;
}

.partner_contents .myfc_mascot {
	width: 28%;
	max-width: 98px;
}

.partner_contents .myfc_link {
	text-decoration: none;
}

.partner_contents .myfc_text {
	width: 100%;
	text-align: center;
	font-weight: bold;
	line-height: 1.3;
	color: #333;
	margin-top: 4px;
}

@media screen and (min-width: 768px) {
	.company_info_area .section_box,
	.history_area .section_box,
	.partner_company_area .section_box {
		padding: 50px;
	}

	.company_info {
		gap: 40px;
	}

	.company_info_list {
		max-width: 850px;
	}
	.company_info_row {
		display: flex;
	}

	.company_info_row dt {
		border-left: none;
		border-bottom: 1px solid #8824FB;
		padding: 16px 0;
		margin-top: 0;
	}

	.company_info_row:first-child dt {
		padding-top: 0;
	}

	.company_info_row dd {
		padding: 16px 0 16px 40px;
	}

	.company_info_row:first-child dd{
		padding-top: 0;
	}

	.company_img_box {
		width:100%;
		max-width: none;
	}

	.company_img_box img {
		width: 100%;
		height: 290px;
		object-fit: cover;
		object-position: right top;
	}

	.company_info_area .section_box,
	.history_area .section_box {
		margin-bottom: 80px;
	}

	.company_info_area .section_title,
	.history_area .section_title,
	.staff_area .section_title {
		margin: 0 0 35px;
	}

	.history_intro,
	.history_mv {
		margin-bottom: 40px;
	}

	.history_mv_text {
		bottom: 15%;
		right: 3%;
	}

	.history_content {
		margin-bottom: 20px;
	}

	.history_row {
		margin-bottom: 40px;
	}

	.history_img_sp {
		margin-bottom: 40px;
	}

	.history_img_sp:last-child {
		margin-top: 40px;
	}

	.staff_area,
	.partner_company_area {
		margin-bottom: 80px;
	}

	.staff_card {
		gap: 24px;
		padding: 30px;
	}

	.staff_position {
		margin-top: 16px;
	}

	.staff_title{
		margin: 40px 0;
	}
	
	.staff_msg_list {
		flex-direction: column;
	}

	.staff_detail {
		width: 100%;
		margin-top: 20px;
	}

	.staff_detail_row {
		margin-top: 16px;
	}

	.staff_msg {
		padding: 15px 20px;
		margin-left: 0px;
	}

	.staff_msg::before {
		top: 24px;
	}

	.staff_name {
		line-height: 2;
	}

	.staff_card.is_adjusted .staff_name {
		margin-top: 12px;
	}

	.partner_company_list {
		flex-direction: row;
	}

	.partner_card {
		max-width: 580px;
	}

	.partner_contents {
		flex-direction: row;
		align-items: stretch;
	}

	.partner_contents .section_box {
		flex: 1;
	}

	.partner_contents .myfc_img {
		width: 280px;
		flex-direction: column;
	}

	.partner_contents .myfc_logo {
		width: 222px;
		margin-top: 0px;
	}
	.partner_contents .myfc_mascot {
		width: 98px;
	}

	.staff_area .for_pc{
		display: block;
	}

	.staff_area .for_sp{
		display: none;
	}
}

@media screen and (min-width: 1200px) {
	.company_info_list {
		max-width: 650px;
	}
	.company_img_box {
		max-width: 440px;
	}

	.company_img_box img {
		height: auto;
		object-fit: contain;
	}
	.history_content {
		display: flex;
		gap: 40px;
		align-items: flex-start;
	}

	.history_mv_text {
		bottom: 11%;
		right: 2%;
	}

	.history_list {
		flex: 1;
	}

	.history_row {
		width: 680px;
	}

	.history_images {
		width: 300px;
		display: flex;
		flex-direction: column;
		flex-shrink: 0;
		margin-top: 0;
		gap: 20px;
	}

	.history_images .history_img {
		width: 100%;
		display: block;
		height: auto;
	}

	.history_img_sp {
		display: none;
	}

	.company_info_area .section_box {
		padding: 45px 50px;
	}

	.company_info {
		flex-direction: row;
		align-items: flex-start;
		gap: 70px;
	}

	.company_info_row {
		display: flex;
	}

	.company_info_row dd {
		padding: 16px 0 16px 40px;
	}

	.history_area .section_box {
		padding: 60px;
	}

	.partner_company_area .section_box {
		padding: 40px 50px 45px;
	}

	.staff_msg_list {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: space-between;
	}

	.staff_card {
		width: calc((100% - 20px) / 2);
		max-width: 590px;
		box-sizing: border-box;
		margin:0;
	}

	.staff_msg::before {
		top: 35px;
	}

	.partner_card_tel span {
		display: inline;
	}

}