@charset "UTF-8";

/*----------------------------------------
 __タグ_style
----------------------------------------*/
* {
	box-sizing: border-box;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
	display: block;
}
html {
	overflow-y: scroll;
	scroll-padding-top: 120px; /* 固定ヘッダの高さ分 */
}
body {
	overflow: hidden;
	font-size: 16px;
}
a {
	color: rgb(0, 161, 233);
}
a:hover {
	opacity: 0.8;
}
button {
	border: none;
	background-color: initial;
	cursor: pointer;
	display: block;
}

#display_none {
	font-size: 9px;
}

#header_logo_area h1 {
	float: left;
	width: 270px;
	border-right: 1px solid rgb(169, 169, 169);
}
#header_logo_area h1 a {
	padding: 0 10px 0 0;
	display: table-cell;
	vertical-align: middle;
}

#header_logo_area .header_logo_link {
	float: left;
	width: 200px;
	border-right: 1px solid rgb(169, 169, 169);
}
#header_logo_area .header_logo_link a {
	padding: 8px 10px;
	display: table-cell;
	vertical-align: middle;
}

.header_logo {
	vertical-align: middle;
	width: 100%;
}

.header_logo_text {
	float: left;
}
.border_frame {
	padding: 13px 6px 0 5px;
	display: table-cell;
	vertical-align: middle;
}
.header_logo_text .border_frame p {
	font-size: 13px;
	line-height: 1.385em;
}
.site-footer a {
	color: rgb(255, 255, 255);
}

.search {
	display: table-cell;
	vertical-align: middle;
	padding-inline: 1rem;
}
#sub_nav {
	display: table-cell;
	vertical-align: middle;
	padding-left: 8px;
}
#sub_nav ul {
	padding-bottom: 10px;
	list-style: none;
}
#sub_nav li {
	background: url(../images/list_icon.png) 0 0.6em no-repeat;
	background-size: 7px 12px;
	padding-left: 12px;
	line-height: 2.2em;
}

#search input.header_search {
	border: 3px solid rgb(221, 221, 221);
	border-radius: 20px;
	width: 178px;
	font-size: 12px;
	padding: 3px 10px;
	color: rgb(102, 102, 102);
}
#search input.header_search::-webkit-input-placeholder {
	color: rgb(102, 102, 102);
	font-weight: normal;
	padding-top: 5px;
}

/* --ios の場合はpadding-topは外す -- */
.ios #search input.header_search::-webkit-input-placeholder {
	padding-top: 0;
}
#search input.header_search:-ms-input-placeholder {
	color: rgb(102, 102, 102) !important;
	font-weight: normal;
}
#search input.header_search::-moz-placeholder {
	color: rgb(102, 102, 102);
	font-weight: normal;
}
.input_mask {
	position: relative;
}

.header_search_sub {
	background-image: url("../images/megane.png");
	background-position: 50% 50%;
	background-repeat: no-repeat;
	background-size: 14px auto;
	background-color: #fff;
	border: medium none;
	cursor: pointer;
	width: 14px;
	height: 14px;
	position: absolute;
	right: 10px;
	top: 50%;
	margin-top: -7px;
}

/* -- chromeのみinput系の外枠にでるラインを表示させない -- */
@media screen and (-webkit-min-device-pixel-ratio: 0) {
	#search input.header_search:focus {
		outline: none;
	}
}

#sub_nav ul li {
	float: left;
	font-size: 13px;
	font-weight: bold;
}
#sub_nav ul li:first-child {
	margin-right: 2px;
}
#fix_def {
	height: 104px;
	width: 100%;
}
#nav_area {
	height: 104px;
	width: 100%;
	z-index: 100;
	background-color: rgb(242, 242, 242);
}
/* -- header nav 固定用 -- */
#nav_area.fixed {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 90;
}
.header_sns {
	position: absolute;
	top: 35%;
	right: 120px;
}
.header_sns ul {
	display: table;
}
.header_sns ul li {
	display: table-cell;
	font-family: "Roboto Condensed", sans-serif;
	color: rgb(233, 82, 131);
	font-weight: bold;
	line-height: 1.2;
	vertical-align: middle;
	width: 48px;
}
.header_sns ul li:first-child {
	font-family: "Roboto Condensed", sans-serif;
	color: rgb(233, 82, 131);
	font-weight: bold;
	line-height: 1.2;
	font-size: 32px;
	width: 32px;
}
.header_sns ul li:nth-child(3) a:hover {
	opacity: 0.6;
}
.header_sns ul li a {
	color: rgb(233, 82, 131);
}

#global_nav {
	margin: 0 auto;
	position: relative;
	width: 1200px;
}

/* メインバナー */
.main_banner {
	display: block;
	margin-block: 1rem;

	& :where(img) {
		display: block;
	}
}

/* -- トップmain_area -- */
.main_area {
	margin: 0 auto;
	width: 960px;
}
/* -- 下層ページ共通 --*/
.content_inner {
	margin: 0 auto;
	padding: 70px 0 80px; /*pc時の共通メインコンテンツpadding*/
	width: 960px;
}
.main_s_inner {
	float: left;
	width: 660px;
}
.cnav_inner {
	float: right;
	width: 240px;
}
/* -------------------------- */

/* -- 共通section_content -- */
.section_content {
	text-align: center;
	padding-top: 40px;
	padding-bottom: 60px;
	border-bottom: 1px dashed #e0e0e0;
}
.section_content h2 {
	font-size: 18px;
	line-height: 1.4;
}
.subtitle_p {
	color: #2bc986;
	padding-top: 4px;
}
.subtilte_border {
	border-bottom: 1px solid #e0e0e0;
	margin: 0 auto;
	padding-top: 20px;
	width: 200px;
}
/* -------------------------- */

/* -- コンテンツ内ウェッジリスト -- */
#content_nav ul {
	border-top: 4px solid #e95283;
}
#content_nav ul li {
	border-bottom: 4px solid #e95283;
}
#content_nav ul li a {
	padding: 16px 50px 16px 20px;
	display: block;
	font-size: 18px;
	color: rgb(0, 0, 0);
	font-weight: bold;
	line-height: 1.333;
	background-color: #fff;
	position: relative;
	width: 100%;
}
#content_nav ul li a:hover {
	color: #fff;
	background-color: #e95283;
}
.cnav_inner ul li a::after {
	border-right: 3px solid #e95283;
	border-top: 3px solid #e95283;
	color: rgb(0, 0, 0);
	content: "";
	height: 6px;
	width: 6px;
	margin: -4.5px 13px auto auto;
	position: absolute;
	right: 0;
	top: 50%;
	transform: rotate(45deg);
}
.cnav_inner ul li a:hover::after {
	border-color: #fff;
}
#content_nav ul li a.current {
	color: #fff;
	background-color: #e95283;
}
.cnav_inner ul li a.current::after {
	border-color: #fff;
}

/* -- recruit_nav -- */
#recruit_nav.cnav_inner {
	width: 960px;
	margin: 64px auto 0;
}
#recruit_nav ul li {
	display: block;
	float: left;
	margin-right: 16px;
	margin-top: 16px;
}
#recruit_nav ul li:last-child {
	margin-right: 0;
}
#recruit_nav ul li a {
	padding: 0 20px;
	font-size: 18px;
	color: rgb(255, 255, 255);
	font-weight: bold;
	line-height: 50px;
	position: relative;
	width: 304px;
	display: block;
}
#recruit_nav ul li a::after {
	border-right: 3px solid #fff;
	border-top: 3px solid #fff;
	bottom: 0;
	content: "";
	height: 6px;
	margin: auto;
	position: absolute;
	right: 7%;
	top: 0;
	transform: rotate(45deg);
	width: 6px;
}
#recruit_nav ul li.opening a {
	background-color: #79b128;
}
#recruit_nav ul li.opening2 a {
	background-color: #ef8f17;
}
#recruit_nav ul li.interview a {
	background-color: #239fdb;
}
#recruit_nav ul li.briefing a {
	background-color: #cc4e74;
}
#recruit_nav ul li.briefing2 a {
	background-color: rgb(149, 72, 151);
}
#recruit_nav ul li.career a {
	background-color: #0e6eb8;
}
#recruit_nav ul li.job-description a {
	background-color: #f4d020;
}
#recruit_nav ul li.training-system a {
	background-color: #d46a6a;
}
/* -- archiveのページャ -- */
.archive_pager {
	width: 100%;
	text-align: center;
	margin: 80px auto 0;
}
.archive_pager .pagination {
	display: inline-block;
	line-height: 34px;
	vertical-align: middle;
}
.archive_pager .pagination a {
	border: 3px solid rgb(221, 221, 221);
	color: rgb(51, 51, 51);
	display: inline-block;
	font-size: 14px;
	font-weight: bold;
	height: 34px;
	line-height: 29px;
	text-align: center;
	vertical-align: middle;
	width: 34px;
	border-radius: 4px;
}
.archive_pager .pagination span {
	border: 3px solid #e95283;
	color: #e95283;
	background-color: #fff;
	display: inline-block;
	font-size: 14px;
	font-weight: bold;
	height: 34px;
	line-height: 29px;
	text-align: center;
	vertical-align: middle;
	width: 34px;
	border-radius: 4px;
}
.archive_pager .pagination span.dots {
	border-color: rgb(221, 221, 221);
	color: rgb(221, 221, 221);
}
.archive_pager .pagination a.prev,
.archive_pager .pagination a.next {
	background-color: #e95283;
	border: 3px solid #e95283;
	color: #fff;
	height: 34px;
	position: relative;
	width: 88px;
}
.archive_pager .pagination a.prev {
	text-align: right;
	padding-right: 15px;
}
.archive_pager .pagination a.next {
	text-align: left;
	padding-left: 15px;
}
.archive_pager .pagination a.prev::before,
.archive_pager .pagination a.next::after {
	border-right: 2px solid #fff;
	border-top: 2px solid #fff;
	color: rgb(0, 0, 0);
	content: "";
	height: 9px;
	margin: -6px 13px auto auto;
	position: absolute;
	top: 50%;
	vertical-align: middle;
	width: 9px;
}
.archive_pager .pagination a.prev::before {
	transform: rotate(225deg);
	left: 15px;
}
.archive_pager .pagination a.next::after {
	transform: rotate(45deg);
	right: 0;
}
.archive_pager .pagination a:hover {
	background-color: #fff;
	border: 3px solid #e95283;
	color: #e95283;
}
.archive_pager .pagination a.prev:hover,
.archive_pager .pagination a.next:hover {
	background-color: #fff;
	color: #e95283;
}
.archive_pager .pagination a.prev:hover::before,
.archive_pager .pagination a.next:hover::after {
	border-right: 2px solid #e95283;
	border-top: 2px solid #e95283;
}

/* -- singleページのページャー --*/
.single_pager {
	clear: both;
	margin: 80px 0 0;
	text-align: center;
}
.single_pager .pagination {
	display: table;
	margin: 0 auto;
	line-height: normal;
}
.single_pager .pagination a {
	display: table-cell;
}
.single_pager .pagination a p {
	display: inline-block;
	border-radius: 4px;
	vertical-align: middle;
	margin: 0 5px;
}
.single_pager .pagination p.prev,
.single_pager .pagination p.next {
	background-color: #e95283;
	border: 3px solid #e95283;
	color: #fff;
	position: relative;
	width: 88px;
}
.single_pager .pagination p.prev {
	text-align: right;
	padding-right: 15px;
}
.single_pager .pagination p.next {
	text-align: left;
	padding-left: 15px;
}
.single_pager .pagination p.prev::before,
.single_pager .pagination p.next::after {
	border-right: 2px solid #fff;
	border-top: 2px solid #fff;
	color: rgb(0, 0, 0);
	content: "";
	height: 9px;
	margin: -5.5px auto auto auto;
	position: absolute;
	top: 50%;
	vertical-align: middle;
	width: 9px;
}
.single_pager .pagination p.prev::before {
	transform: rotate(225deg);
	left: 15px;
}
.single_pager .pagination p.next::after {
	transform: rotate(45deg);
	right: 15px;
}
.single_pager .pagination p.prev:hover,
.single_pager .pagination p.next:hover {
	background-color: #fff;
	color: #e95283;
}
.single_pager .pagination p.prev:hover::before,
.single_pager .pagination p.next:hover::after {
	border-right: 2px solid #e95283;
	border-top: 2px solid #e95283;
}
.single_pager .pagination p span {
	display: inline-block;
	vertical-align: middle;
	line-height: 32px;
}

.link_backbtn_area {
	display: table-cell;
}
.list_back_btn span {
	color: rgb(51, 51, 51);
	font-weight: bold;
	line-height: 1.2;
	text-align: center;
	padding-right: 60px;
	padding-left: 60px;
	vertical-align: middle;
	display: inline-block;
}
.list_back_btn span.sp_br {
	padding: 0;
}
/* -- 共通ボタン -- */
.list_link a {
	cursor: pointer;
	background-color: rgb(205, 78, 117);
	border-color: rgb(205, 78, 117);
	border-style: solid;
	border-width: 6px;
	color: rgb(255, 255, 255);
	display: table;
	font-weight: bold;
	line-height: 42px;
	margin: 0 auto;
	text-align: center;
	vertical-align: middle;
	width: 322px;
}
.list_link a:hover {
	background-color: rgb(255, 255, 255);
	color: rgb(205, 78, 117);
	opacity: 1;
}
.list_link a > span {
	display: table-cell;
	vertical-align: middle;
}

/* -- footer -- */
.footer {
	border-top: 6px solid rgb(205, 78, 117);
	position: relative;
}

#footer_link {
	padding-top: 55px;
	text-align: center;
}
#footer_link a {
	width: 268px;
	margin: 0 auto;
}
#footer_logo {
	padding-top: 30px;
	text-align: center;
}
#footer_logo h2 {
	padding-bottom: 30px;
}
#footer_logo h2 a {
	width: 267px;
	margin: 0 auto;
}

.footer_nav_area {
	width: 480px;
	padding-top: 40px;
	margin: 0 auto;
	display: table;
}
.footer_nav {
	display: table-cell;
	vertical-align: middle;
}
.footer_nav ul {
	display: table;
}
.footer_nav ul li {
	display: table-cell;
	text-decoration: underline;
	line-height: 1.313;
	vertical-align: middle;
	padding-right: 20px;
}
.footer_nav ul li:last-child {
	padding-right: 0;
}
.footer_sns {
	display: table-cell;
	vertical-align: middle;
	padding: 0;
}
.footer_sns ul {
	display: table;
}
.footer_sns ul li {
	display: table-cell;
	vertical-align: middle;
	width: 52px;
	text-align: center;
}
.footer_sns ul li:first-child {
	font-family: "Roboto Condensed", sans-serif;
	color: rgb(233, 82, 131);
	font-weight: bold;
	line-height: 1.2;
	font-size: 32px;
	text-decoration: none;
	width: 32px;
}
.footer_sns ul li:first-child a {
	color: rgb(233, 82, 131);
}
.footer_sns ul li:last-child {
	padding-right: 0;
}
.footer_sns ul li img {
	vertical-align: middle;
}

.copylight {
	text-align: center;
	padding-top: 60px;
}
p.txt_copy {
	font-size: 12px;
	color: rgb(35, 24, 21);
	line-height: 2.5;
	text-align: center;
}

#page_nav {
	display: none;
	z-index: 300;
}
#page_nav a img {
	width: 46px;
	height: 46px;
}

/*----------------------------------------
 popup video
----------------------------------------*/
.popupWrap {
	display: none;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 100;
	background-color: rgb(255, 255, 255);
	opacity: 0.702;
}
.popupOpen .popupWrap {
	display: block;
	position: fixed;
}
.popup {
	display: none;
	position: fixed;
	width: 100%;
	height: auto;
	left: 50%;
	top: 50%;
	z-index: 200;
	box-sizing: border-box;
}
.popupOpen .popup {
	display: block;
}
.video-area {
	position: relative;
	margin: 0 auto;
	padding: 60px 30px 20px;
	background-color: #fff;
}
.closePopup {
	position: absolute;
	top: 20px;
	right: 30px;
}
.closePopup a {
	display: block;
	width: 60px;
	height: 60px;
}
.icon_close {
	display: block;
	background-image: url(../img/popup_menu_close.jpg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	width: 100%;
	height: 100%;
}

.video-title {
	min-height: 40px;
	font-size: 1.25em;
	font-weight: bold;
	text-align: center;
	padding: 0 60px;
}
.video {
	position: relative;
}
.video-size-1 {
	width: 540px;
}
.video-size-2 {
	width: 620px;
}
.video-size-3 {
	width: 660px;
}
.video-size-4 {
	width: 860px;
}

.video iframe {
	display: block;
	margin: 0 auto;
}
.video-size-1 iframe {
	width: 480px;
	height: 270px;
}
.video-size-2 iframe {
	width: 560px;
	height: 315px;
}
.video-size-3 iframe {
	width: 600px;
	height: 338px;
}
.video-size-4 iframe {
	width: 800px;
	height: 450px;
}

.popupOpen .openPopup {
	display: none;
}
.openPopup {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	padding: 20px 30px;
	z-index: 100;
	background-color: rgba(255, 255, 255, 0.702);
}
.openPopup a {
	display: block;
	margin: 20px auto;
	width: auto;
	min-width: 322px;
	padding: 0 1em;
	cursor: pointer;
	background-color: rgb(205, 78, 117);
	border-color: rgb(205, 78, 117);
	border-style: solid;
	border-width: 6px;
	color: rgb(255, 255, 255);
	display: table;
	font-weight: bold;
	line-height: 42px;
	text-align: center;
}
.openPopup a:hover {
	background-color: rgb(255, 255, 255);
	color: rgb(205, 78, 117);
	opacity: 1;
}
.icon_open {
	display: table-cell;
	vertical-align: middle;
}

/* 会社沿革 */
.company_history_pc {
	margin-block: 15px 30px;
	margin-inline: 5px 0;
}
.company_history_mobile {
	margin-block: 15px 30px;
	margin-inline: 10px 10px;
}

.company_history_table {
	--structure_heading_color: #fecbc3;
	--work_heading_color: #fedc86;
	--event_heading_color: #8ac8fd;
	--year_cell_color: #b2db82;
	--month_cell_color: #e5f8d1;
	--structure_cell_color: #fde7e3;
	--work_cell_color: #feeecb;
	--event_cell_color: #cbe8fe;

	inline-size: 100%;

	& :where(th, td) {
		border-style: solid;
		border-width: 1px;
		border-color: #aaaaaa;
		padding-block: 5px;
		padding-inline: 5px;
		vertical-align: middle;
		color: #1f1f1f;
	}

	/* 見出し */
	& :where(.company_history_structure_heading) {
		background-color: var(--structure_heading_color);
	}
	& :where(.company_history_work_heading) {
		background-color: var(--work_heading_color);
	}
	& :where(.company_history_event_heading) {
		background-color: var(--event_heading_color);
	}

	/*
	 * セル
	 * pcとモバイルで別の表を表示するので、列ではなくセルに色を付ける必要がある
	 */
	& :where(.company_history_year_cell, .company_history_month_cell) {
		white-space: nowrap;
	}
	& :where(.company_history_year_cell) {
		text-align: center;
		background-color: var(--year_cell_color);
	}
	& :where(.company_history_month_cell) {
		text-align: end;
		background-color: var(--month_cell_color);
	}
	& :where(.company_history_structure_cell) {
		background-color: var(--structure_cell_color)
	}
	& :where(.company_history_work_cell) {
		background-color: var(--work_cell_color);
	}
	& :where(.company_history_event_cell) {
		background-color: var(--event_cell_color);
	}
	& :where(.company_history_image_cell) {
		text-align: center;
	}
}
