@charset "utf-8";

/* 色 */
.text_basic {
	color: #2f5dd0;
}
.text_deep {
	color: #24499b;
}

.btn_light {
	background-color: #5779df;
}
.btn_middle {
	background: linear-gradient( to top, #214bc8, #2f5dd0 );
}
.btn_deep {
	background-color: #24499b;
}

a.colored {
	color: #333;
	text-decoration: underline;
}
a.colored:hover {
	text-decoration: none;
}

/* ヘッダー・フッター */
nav .menu .lang,
footer > p:not( .copyright ) {
	display: none;
}

/* 新卒採用 */
.kv_recruit {
	position: relative;
}
.kv_recruit + * {
	padding-top: 10px;
}
@media screen and (min-width: 769px) {
	.kv_recruit {
		height: 607px;
		background: url("../../recruit/images/kv_recruit_pc.png") no-repeat;
		margin-top: 82px;
	}
}
@media screen and (min-width: 936px) and (max-width: 769px) {
	.kv_recruit {
		background-position: center top;
		background-size: cover;
	}
}
@media screen and (max-width: 768px) {
	.kv_recruit {
		height: 400px;
		background: url("../../recruit/images/kv_recruit_sp.png") no-repeat;
		background-position: center top;
		background-size: 100% auto;
	}
}
@media screen and (max-width: 767px) {
	.kv_recruit {
		background-size: auto 100%;
	}
}
.kv_recruit > * {
	position: absolute;
	right: 0;
}
.kv_recruit .catch_copy > h1 {
	height: auto;
	position: relative;
	padding-top: 0;
}
@media screen and (min-width: 769px) {
	.kv_recruit .catch_copy > h1 {
		text-shadow: .5px .5px 0 rgba( 255, 255, 255, .8 ),
					  -.5px .5px 0 rgba( 255, 255, 255, .8 ),
					  .5px -.5px 0 rgba( 255, 255, 255, .8 ),
					 -.5px -.5px 0 rgba( 255, 255, 255, .8 );
	}
}
@media screen and (max-width: 768px) {
	.kv_recruit .catch_copy > h1 {
		text-shadow: .5px .5px 0 rgba( 36, 73, 155, .5 ),
					  -.5px .5px 0 rgba( 36, 73, 155, .5 ),
					  .5px -.5px 0 rgba( 36, 73, 155, .5 ),
					 -.5px -.5px 0 rgba( 36, 73, 155, .5 );
	}
	.kv_recruit .catch_copy > h1::before,
	.kv_recruit .catch_copy > h1::after {
		display: none;
	}
}
.kv_recruit .catch_copy > h1::before,
.kv_recruit .catch_copy > h1::after {
	width: calc( ( 100% - ( 4em + 1em * 2 ) ) / 2 );
	height: 3px;
	background-color: #24499b;
	border: .5px solid rgba( 255, 255, 255, .8 );
	bottom: calc( 1.5em / 2 );
}
.kv_recruit .catch_copy > h1::before {
	left: 0;
}
.kv_recruit .catch_copy > h1::after {
	right: 0;
}
.kv_recruit .catch_copy > h2 {
	line-height: 1.1;
}
.kv_recruit .catch_copy > h2 .bg_white {
	margin-bottom: .25em;
	display: inline-block;
}
@media screen and (min-width: 769px) {
	.kv_recruit > * {
		text-align: center;
		padding-right: 10%;
	}
	.kv_recruit .catch_copy > h2 > div {
		font-size: 60px;
		padding: 0 .25em;
	}
}
@media screen and (min-width: 936px) and (max-width: 768px) {
	.kv_recruit .catch_copy > h2 > div > br {
		display: none;
	}
}
@media screen and (max-width: 768px) {
	.kv_recruit .catch_copy > h1 {
		color: #fff;
		font-size: 1.8em;
		text-align: center;
	}
	.kv_recruit .catch_copy > h2 .bg_white {
		width: 100%;
		padding: 0 .25em;
	}
}

.buttons [class *="btn_"],
.buttons [class *="btn_"] > * {
		position: relative;
		left: 5px;
}
.buttons [class *="btn_"]::after {
	background: url('/common/images/arrow_w.png') no-repeat center center / 50% 80%;
	content: '';
	width: 1.5em;
	height: 1.5em;
	position: absolute;
	top: calc( ( 100% - 1.5em ) / 2 );
}
@media screen and (min-width: 769px) {
	.buttons [class *="btn_"] {
		width: 380px;
	}
	
	.kv_recruit .buttons {
		margin-top: 30px;
	}
	.kv_recruit .buttons [class *="btn_"] {
		font-size: 24px;
		margin-bottom: 20px;
	}
	.kv_recruit .buttons [class *="btn_"]::after {
		right: 1em;
	}
	
	.bottom_recruit .buttons [class *="btn_"] {
		font-size: 28px;
		padding-right: 1em;
	}
	.bottom_recruit .buttons [class *="btn_"]::after {
		right: .5em;
	}
}
@media screen and (min-width: 936px) and (max-width: 768px) {
	.kv_recruit .buttons [class *="btn_"] {
		width: 200px;
	}
}
@media screen and (max-width: 768px) {
	.buttons [class *="btn_"]::after {
		right: .5em;
	}
	
	.kv_recruit .buttons {
		position: relative;
		right: 20px;
		bottom: -30px;
	}
	.kv_recruit .buttons [class *="btn_"] {
		width: 100%;
		text-align: left;
		margin-bottom: 10px;
	}
	
	.bottom_recruit .buttons [class *="btn_"] {
		font-size: 1.5em;
		padding-top: 1em;
		padding-bottom: 1em;
		padding-right: 1.5em;
	}
}

h2.text_deep {
	font-size: 24px;
	position: relative;
}
h2.text_deep div {
	display: inline-block;
	position: relative;
	z-index: 1;
}
@media screen and (min-width: 769px) {
	h2.text_deep > div.w100per::after {
		background-color: #24499b;
		content: '';
		width: 100%;
		height: .05rem;
		position: absolute;
		left: 0;
		bottom: calc( 1.5em / 2 );
	}
	h2.text_deep > div.w100per > [class *= "bg_"] {
		padding-right: 5px;
	}
}

.team,
.team > .nameplate,
.team > .nameplate > div.w100per,
.team > .nameplate + [class *= "accordion_"] {
	position: relative;
}
.team > .portrait {
	position: relative;
	overflow: hidden;
	border-top-left-radius: 1.5em;
}
.team > .portrait figure {
	height: 100%;
	display: flex !important;
	justify-content: center;
}
.team > .portrait figure.columns > * {
	width: auto !important;
	height: 100%;
}
.team > .nameplate::after {
	background: #24499b;
	content: '';
	border-radius: 50%;
	border: 1px solid #24499b;
	position: absolute;
}
.team > .nameplate:has( :checked ) {
	z-index: 2;
}
.team > .nameplate:has( :checked )::after {
	background: #fff;
}
.team > .nameplate:has( :checked )::before,
.team > .nameplate > input:checked + div.w100per::before,
.team > .nameplate > input:checked ~ div.w100per::after {
    display: none;
}
.team > .nameplate > ul:first-of-type {
	width: 100%;
	font-weight: 600;
	position: absolute;
	display: flex;
}
.team > .nameplate > ul:first-of-type > li > * {
	line-height: 1.2;
}
.team > .nameplate > div.w100per::before,
.team > .nameplate > div.w100per::after {
    background-color: #fff;
    content: '';
    width: 2px;
    height: 1.2em;
    display: block;
    position: absolute;
    z-index: 10;
}
.team > .nameplate > input:checked ~ div.w100per::before {
    background-color: #24499b;
    z-index: 7;
}
.team > .nameplate > input:checked + div.w100per::before,
.team > .nameplate > input:checked + div.w100per::after {
	display: none;
}
.team > .nameplate + [class *= "accordion_"] {
	border-bottom-left-radius: 1.5em;
	border-bottom-right-radius: 1.5em;
}
.team > .nameplate:has( :checked ) + [class *= "accordion_"] {
	padding: 50px 20px 20px;
}

.team .qa > .question {
	font-size: 16px;
	font-weight: 600;
}
.team .qa > .question::before,
.team .qa > .answer::before {
	width: 1em;
	height: 1em;
	font-size: 20px;
	font-weight: 600;
	display: block;
}
.team .qa > .question::before {
	content: 'Q';
}
.team .qa > .answer::before {
	content: 'A';
}

@media screen and (min-width: 768px) {
	.team {
		padding-bottom: 50px;
	}
	.team > .portrait {
		border-top-right-radius: 1.5em;
	}
	.team > .portrait,
	.team > .nameplate {
		width: calc( ( 100% - 20px * 4 ) / 5 );
	}
	.team > .portrait figure {
		width: auto;
		height: 250px;
	}
	.team > .nameplate {
		position: absolute;
		top: 280px;
		margin-top: calc( ( 30px * 2 ) * -1 );
	}
	.team > .nameplate::before {
		content: '';
		background: #e1f2fd;
		width: calc( 100% + 20px );
		height: 60px;
		position: absolute;
		display: block;
	}
	.team > .nameplate::after {
		width: 3em;
		height: 3em;
		top: -.8em;
		left: calc( 100% - 2em );
	}
	.team > .nameplate:has( :checked ) {
		top: calc( 280px + ( 30px * 2 ) );
	}
	.team > .nameplate:has( :checked )::after {
		width: 3.5em;
		height: 3.5em;
		margin-top: -1em;
	}
	.team > .nameplate > ul:first-of-type {
		height: calc( 250px - ( 30px * 2 ) );
		color: #fff;
		text-shadow: .5px .5px 0 rgba( 51, 51, 51, .25 ),
					  -.5px .5px 0 rgba( 51, 51, 51, .25 ),
					  .5px -.5px 0 rgba( 51, 51, 51, .25 ),
					 -.5px -.5px 0 rgba( 51, 51, 51, .25 );
		top: calc( ( 250px - ( 30px * 2 ) ) * -1 );
		justify-content: end;
		align-items: end;
		padding-right: 10px;
		padding-bottom: 5px;
	}
	.team > .nameplate > ul:first-of-type > li {
		padding-bottom: 20px;
	}
	.team > .nameplate > ul:first-of-type > li > * {
		text-align: right;
	}
	.team > .nameplate > ul:first-of-type > li > div > span {
		display: none;
	}
	.team > .nameplate > div.w100per {
		height: 30px;
		text-align: center;
		padding: 5px 0;
		border-bottom-left-radius: 1.5em;
		border-bottom-right-radius: 1.5em;
	}
	.team > .nameplate > div.w100per::before,
	.team > .nameplate > div.w100per::after {
    	top: .1em;
		left: calc( 100% - .55em );
	}
	.team > .nameplate > input:checked ~ div.w100per::before {
		top: -.7em;
    	left: calc( 100% - .33em );
	}
	
	.team > .nameplate.accordion_01 {
		left: 0;
	}
	.team > .nameplate.accordion_02 {
		left: calc( ( ( 100% - 20px * 4 ) / 5 + 20px ) * 1 );
	}
	.team > .nameplate.accordion_03 {
		left: calc( ( ( 100% - 20px * 4 ) / 5 + 20px ) * 2 );
	}
	.team > .nameplate.accordion_04 {
		left: calc( ( ( 100% - 20px * 4 ) / 5 + 20px ) * 3 );
	}
	.team > .nameplate.accordion_05 {
		left: calc( ( ( 100% - 20px * 4 ) / 5 + 20px ) * 4 );
	}
	.team > .nameplate.accordion_01::after {
		z-index: 1;
	}
	.team > .nameplate.accordion_02::after {
		z-index: 2;
	}
	.team > .nameplate.accordion_03::after {
		z-index: 3;
	}
	.team > .nameplate.accordion_04::after {
		z-index: 4;
	}
	.team > .nameplate..accordion_05::after {
		z-index: 5;
	}
	
	.team > .nameplate:has( :checked ) + [class *= "accordion_"] {
		margin-bottom: 30px;
	}
	.team > .nameplate + [class *= "accordion_"] h3 {
		font-size: 16px;
		font-weight: 600;
		position: relative;
		top: 20px;
	}
	.team .qa {
		border: .1em solid #24499b;
		position: relative;
		padding: 15px;
		margin-top: 30px;
	}
	.team .qa > .question {
		padding: 0 .5em 0 2em;
		position: absolute;
		top: -.8em;
		margin-right: 1em;
		display: inline-block;
	}
	.team .qa > .question::before {
        position: absolute;
		top: -.1em;
        left: .5em;
	}
	.team .qa > .answer {
		position: relative;
		z-index: 1;
		padding-left: 2.25em;
		margin-top: 20px;
	}
	.team .qa > .answer::before {
		position: absolute;
		top: -.2em;
		left: .5em;
	}
}
@media screen and (max-width: 936px) and (min-width: 768px) {
	.team > .nameplate > ul:first-of-type {
		height: auto;
		top: -180px;
	}
	.team > .nameplate:has( :checked ) > ul:first-of-type {
		top: calc( -180px - 30px * 2 );
	}
	.team > .nameplate > ul:first-of-type > li.columns > * {
		width: 100% !important;
	}
}
@media screen and (max-width: 767px) {
	.team {
		display: flex;
	}
	.team.columns > .portrait {
		width: calc( 100% / 3 ) !important;
		z-index: 1;
	}
	.team.columns > .nameplate {
		margin-top: -100px;
	}
	.team > .portrait,
	.team > .nameplate,
	.team > .nameplate > ul:first-of-type {
		height: 100px;
	}
	.team > .nameplate::before {
		content: '';
		background: url("../../recruit/images/corner.png") no-repeat;
		width: 1.5em;
		height: 1.5em;
		position: absolute;
		left: -1px;
		bottom: -1.5px;
		z-index: 1;
		display: block;
	}
	.team > .nameplate:has( :checked )::before {
		display: none;
	}
	.team > .nameplate::after {
		width: 2.5em;
		height: 2.5em;
		top: calc( 100% - 3em );
		left: calc( 100% - 3em );
	}
	.team > .nameplate:has( :checked )::after {
		left: calc( 100% - 1.8em );
	}
	.team > .nameplate > ul:first-of-type {
		border: .1em solid #24499b;
		border-radius: 1.5em;
		overflow: hidden;
		z-index: 1;
	}
	.team > .nameplate:has( :checked ) > ul:first-of-type {
		border: none;
	}
	.team > .nameplate > ul:first-of-type > li {
		width: 100%;
		color: #24499b;
		padding: 10px 10px 25px calc( 100% / 3 + 15px );
	}
	.team > .nameplate:has( :checked ) > ul:first-of-type > li {
		width: 100%;
		padding-top: calc( 10px + .1em );
        padding-left: calc( 15px + .05em );
	}
	.team > .nameplate > ul:first-of-type > li > h3 {
		font-size: 1.25em;
	}
	.team > .nameplate > ul:first-of-type > li > div > br {
		display: none;
	}
	.team > .nameplate > div.w100per {
		height: 100px;
		padding: 5px 0;
		border-radius: 1.5em; 
		position: relative;
	}
	.team > .nameplate:has( :checked ) > div.w100per {
		height: 100px;
		padding: 5px 0;
		border-top-left-radius: 0; 
		border-bottom-left-radius: 0; 
		position: relative;
	}
	.team > .nameplate > div.w100per > * {
        float: right;
		text-align: center;
		position: relative;
		top: calc( 100% - 1.5em );
		margin-right: 4em;
	}
	.team > .nameplate:has( :checked ) > div.w100per > * {
		margin-right: 3em;
	}
	.team > .nameplate > div.w100per::before,
	.team > .nameplate > div.w100per::after {
    	top: calc( 100% - 2.33em );
		left: calc( 100% - 1.75em );
	}
	.team > .nameplate > input:checked ~ div.w100per::before {
		top: calc( 100% - 2.33em );
        left: calc( 100% - .66em );
	}
	.team > .nameplate + [class *= "accordion_"] {
		padding-top: 35px !important;
		margin-top: -50px;
	}
	.team > .nameplate:has( :checked ) > div.w100per,
	.team > .nameplate:has( :checked ) > ul:first-of-type {
		width: calc( ( 100% / 3 ) * 2 ) !important;
		position: absolute;
		right: 0;
	}
	.team > .nameplate:has( :checked ) > ul:first-of-type > li {
		width: 100% !important;
	}
	.team > .nameplate:has( :checked ) + [class *= "accordion_"] {
		margin-top: -10px;
	}
	
	.team > .accordion_01 {
		order: 1;
	}
	.team > .accordion_02 {
		order: 2;
	}
	.team > .accordion_03 {
		order: 3;
	}
	.team > .accordion_04 {
		order: 4;
	}
	.team > .accordion_05 {
		order: 5;
	}
	
	.team > div h2 {
		font-size: 18px;
	}
	.team > div h3 {
		font-size: 17px;
		text-align: center;
		padding-top: 15px;
	}
	.team .qa + .qa {
		margin-top: 10px;
	}
	.team .qa > .answer {
		margin-top: -.5em;
	}
	.team .qa > .question,
	.team .qa > .answer {
		padding-left: 1.5em;
	}
	.team .qa > .question::before,
	.team .qa > .answer::before {
		position: relative;
		top: .8em;
		left: -1.2em;
	}
}

@media screen and (min-width: 769px) {
	.aligns ul.columns > li {
		width: 30%;
	}
}
@media screen and (max-width: 768px) {
	.aligns ul.columns {
		width: 100% !important;
	}
	.aligns ul.columns > li {
		width: 48% !important;
	}
	.aligns ul.columns > li:nth-child( 2n ) {
		margin-left: calc( 100% - 48% * 2 );
	}
	.aligns ul.columns > li img {
		width: 5em;
		max-width: 100%;
	}
}
.aligns ul,
.aligns ul > li > div {
	margin-left: auto;
	margin-right: auto;
}
.aligns ul > li {
	border: 2px solid #24499b;
	padding: 10px;
}
.aligns ul > li > h3 {
	line-height: 1.2;
}

.bg_aqua > .container {
	padding-top: 10px;
}

.scroll-infinity {
	position: relative;
}
.scroll-infinity__wrap {
	width: 100%;
	display: flex;
	overflow: hidden;
	position: absolute;
}
.scroll-infinity__list {
	display: flex;
	list-style: none;
	padding: 0
}
@media screen and (min-width: 1366px) {
	.scroll-infinity {
		margin-top: -75px;
	}
	.bg_aqua:has( .scroll-infinity ) + * {
		padding-top: 200px;
	}
}
@media screen and (max-width: 1365px) and (min-width: 768px) {
	.scroll-infinity {
		margin-top: -50px;
	}
	.bg_aqua:has( .scroll-infinity ) + * {
		padding-top: 180px;
	}
}
@media screen and (max-width: 767px) {
	.bg_aqua:has( .scroll-infinity ) + * {
		padding-top: 80px;
	}
}

@media screen and (min-width: 769px) {
	.scroll-infinity__item {
		width: calc( 100vw / 5 );
		padding-left: 10px;
		padding-right: 10px;
	}
}
@media screen and (max-width: 768px) {
	.scroll-infinity__item {
		width: calc( 100vw / 2 );
	}
}
.scroll-infinity__item > img {
	width: 100%;
}

.table_body[class *="radius_"] {
	overflow: hidden;
}
.table_body > dt.table_caption {
	color: #fff;
	background-color: #24499b !important;
}
.table_body > dt.table_caption.columns {
	align-items: center;
}
.table_body > dd:nth-of-type( 2n ) {
	background-color: #f7fbff;
}

.bottom_recruit {
	background: url("../../recruit/images/bottom_recruit.jpg") no-repeat;
	background-position: top center;
	background-size: cover;
	padding-top: 10px;
}

/* 応募フォーム */
h1::before {
	background-color: #2f5dd0;
}
.form_main dl input,
.form_main dl select,
.form_main dl textarea {
	background: #e2f2fd;
}
section:has( .form_main ) + .bg_ash {
	padding: 15px 10px 5px;
}

