/* ------------------------------------------------------------
COMMON
------------------------------------------------------------ */
:root{
	--color-black: #231815;
	--color-white: #fff;
	--color-gray: #898989;
	--color-red: #dd3314;
	--color-green: #22ac38;
	--color-green-2: #00853c;
	--color-blue: #1d2088;
	/* --color-light-blue: #c7e8fa; */
	--color-light-blue: #B9E5FA;
	--color-orange: #ea5514;
	--color-light-orange: #FFDE97;

	--font-size-base: 30px;
	--font-bold: 700;

	--max-width: calc( 1920px / 3 * 2 );

	--padding-base: 1rem;
}

html{
	font-size: var(--font-size-base);
	color: var(--color-black);
	background-color: var(--color-white);
}
html:after{
	content: '';
	display: block;
	width: 100%;
	height: 50vh;
	position: fixed;
	bottom: 0;
	z-index: -1;
	background-color: var(--color-blue);
}

body{
	margin: 0;
	background-color: var(--color-white);
	font-family: "Noto Sans JP", "M PLUS 1p", sans-serif;
	font-weight: 400;
	font-size: var(--font-size-base);
	font-style: normal;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	transition: all 0.2s;
}

h1,h2,h3,h4,h5,h6, p{ margin: 0; }

img{ max-width: 100%; }

a:has(>img){ display: inline-block; }
a > img{ display: block; }

.pcOnly{ display: block; }
.spOnly{ display: none; }

.bg_main{
	background-color: var(--color-blue);
	color: var(--color-white);
}
.bg_blue{
	background-color: var(--color-light-blue);
	color: var(--color-black);
}
.bg_orange{
	background-color: var(--color-light-orange);
	color: var(--color-black);
}

.red{ color: var(--color-red); }

.bold{ font-weight: var(--font-bold); }
.center{ text-align: center; }
.right{ text-align: right; }

.bigger{
	display: inline-block;
	padding-inline: 0.2rem;
	font-size: 140%;
	font-weight: 700;
	vertical-align: text-bottom;
}

h2.ttl{
	padding-block: 1.5rem;
	color: var(--color-blue);
	font-size: 1.5rem;
	font-weight: var(--font-bold);
	text-align: center;
	letter-spacing: 5px;
}

h3.ttl{
	padding-block: 0.5rem;
	background-color: var(--color-blue);
	color: var(--color-white);
	font-size: 1.5rem;
	font-weight: 500;
	text-align: center;
}

.radius{
	border-radius: 2rem;
}

.wrap{
	max-width: calc( 1212px / 3 * 2 );
	margin: 0 auto;
}

.box{
	padding: var(--padding-base);
}

.grid{
	display: grid;
	gap: 1rem;
}

.col2{
	grid-template-columns: repeat(2, 1fr);
}

.col3{
	grid-template-columns: repeat(3, 1fr);
}

.list{
	list-style: none;
	padding-left: 0;
}
.list li:not(:last-child){
	padding-bottom: 1rem;
}
.list li:before{
	content: '●';
	display: inline-block;
	margin-right: 0.1rem;
	color: var(--color-blue);
}

.list.indent li{
	padding-left: 1.8rem;
}
.list.indent li:before{
	margin-left: -1.6rem;
	margin-right: 0.8rem;
	color: var(--color-gray);
}

.table{
	width: 100%;
	background-color: var(--color-white);
	border-collapse: collapse;
}
.table th,
.table td{
	padding: 0.8rem;
	text-align: left;
}
.table tr:not(:last-child) th,
.table tr:not(:last-child) td{
	border-bottom: 2px solid #ccc;
}
.table th{
	word-break: keep-all;
}

/* ------------------------------------------------------------
HEADER
------------------------------------------------------------ */
header.main{
	position: fixed;
	top: 0;
	width: 100%;
	background-color: var(--color-white);
	z-index: 9999;
}
header.main.float{
	position: fixed;
	top: 0;
}

header.main *{
	transition: all 0.2s;
}

header.main .grid{
	align-items: center;
	max-width: var(--max-width);
	margin-inline: auto;
	padding-block: 0.5rem;
}

header.main .logo a{
	display: block;
	margin-left: 2rem;
}
header.main .logo img{
	display: block;
	width: calc( 240px / 3 * 2 );
}

#cta_btn{
	justify-self: flex-end;
	padding-right: 1.5rem;
}
#cta_btn .btn{
	display: inline-block;
	margin-top: 1rem;
}
#cta_btn .btn:hover{
	filter: brightness(1.1) drop-shadow(2px 2px 4px rgb(0 0 0 / 0.7));
}
#cta_btn .btn img{
	display: block;
	width: calc( 800px / 3 * 2 );
}

/* ------------------------------------------------------------
FOOTER
------------------------------------------------------------ */
footer.main{
	margin-inline: auto;
	padding-block: 3rem;
	font-size: 0.65rem;
	font-weight: 700;
	text-align: center;
}

#toTop{
	display: grid;
	align-items: center;
	width: 3rem;
	height: 3rem;
	position: fixed;
	bottom: -3rem;
	right: 1rem;
	border-radius: 50%;
	background-color: var(--color-blue);
	color: var(--color-white);
	font-size: 0.5rem;
	font-weight: 700;
	text-align: center;
	box-shadow: 5px 5px 10px -5px rgb(0 0 0 / 0.5);
	cursor: pointer;
	user-select: none;
	transition: all 0.3s;
}
#toTop:hover{
	filter: brightness(1.1) drop-shadow(2px 2px 4px rgb(0 0 0 / 0.7));
}

footer.main img{
	display: block;
	margin-inline: auto;
	max-width: calc( 200px / 3 * 2 );
	margin-bottom: 2rem;
	filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(2%) hue-rotate(45deg) brightness(108%) contrast(101%);
}

footer.main .copyright{
	font-size: 0.5rem;
}

/* ------------------------------------------------------------
MV
------------------------------------------------------------ */
#mv{
	margin-inline: auto;
	max-width: var(--max-width);
}

/* ------------------------------------------------------------
CATCHPHRASE
------------------------------------------------------------ */
#catchphrase .wrap{
	padding-block: 1rem;
}

#catchphrase p{
	color: var(--color-blue);
	font-size: 1.15rem;
	font-weight: 500;
	line-height: 1.75;
	text-align: justify;
	letter-spacing: 1px;
	font-feature-settings: 'palt';
}
#catchphrase p:not(:last-child){
	margin-bottom: 1rem;
}

/* ------------------------------------------------------------
PHILOSOPHY
------------------------------------------------------------ */
#philosophy .box.radius{
	padding-block: 2rem;
	font-size: 1.1rem;
	font-weight: 500;
	text-align: center;
	line-height: 1.75;
}

/* ------------------------------------------------------------
STRENGTHS
------------------------------------------------------------ */
#strengths{
	padding-top: 1rem;
}

#strengths h3.ttl{
	margin-bottom: 1rem;
}

#strengths p,
#strengths li{
	font-size: 0.9rem;
	text-align: justify;
	letter-spacing: 1px;
	font-feature-settings: 'palt';
}

/* ------------------------------------------------------------
COMPONENTS
------------------------------------------------------------ */
#components .grid{
	padding-top: 1.5rem;
}

/* ------------------------------------------------------------
SEMINAR
------------------------------------------------------------ */
#seminar{
	padding-top: 2rem;
}

#seminar .list{
	margin-bottom: 2rem;
}

#seminar .bg_blue{
	margin-top: 2rem;
	padding-top: 1.5rem;
	padding-bottom: 4rem;
}

#seminar .center{
	max-width: calc( 283px / 3 * 2 );
	margin-inline: auto;
	margin-bottom: 0.5rem;
}

#seminar h4{
	margin-bottom: 1.5rem;
	font-size: 1.1rem;
	text-align: justify;
	letter-spacing: 1px;
	font-feature-settings: 'palt';
}

#seminar .grid{
	align-items: stretch;
	gap: 1.5rem 0.5rem;
}
#seminar .grid > div{
	display: grid;
	align-content: space-between;
	background-color: var(--color-white);
	border-radius: 10px;
	overflow: hidden;
}
#seminar .grid .ttl{
	display: block;
	margin-top: 1rem;
	margin-bottom: 0.5rem;
	color: var(--color-black);
	font-size: 0.65rem;
	font-weight: 500;
	text-align: center;
	letter-spacing: 1px;
}

/* ------------------------------------------------------------
WORK
------------------------------------------------------------ */
#work{
	padding-top: 2rem;
}

#work .bg_orange{
	padding-block: 2rem;
}

#work h3{
	margin-bottom: 0.5rem;
	color: #e60012;
	font-size: 1.5rem;
	text-align: center;
}
#work h3 + p{
	font-size: 1.05rem;
	text-align: justify;
}

#work .wrap img{
	display: block;
	margin-left: -100px;
	margin-block: 1.5rem;
}

#work h4{
	padding-top: 1rem;
	color: var(--color-white);
	text-align: center;
	font-size: 1.5rem;
	font-weight: 500;
}
#work h4 .description{
	display: block;
	margin-block: 1rem;
	padding: 1rem;
	font-size: 1.2rem;
}

#work p{
	font-size: 0.75rem;
	text-align: justify;
	letter-spacing: 1px;
	font-feature-settings: 'palt';
}

#work .wrap.red img{
	max-width: calc( 1465px / 3 * 2 );
}
#work .wrap.red h4{
	background-color: #e26917;
}
#work .wrap.red h4 .description{
	background-color: var(--color-red);
}
#work .wrap.red p{
	color: var(--color-red);
}

#work .wrap.green img{
	max-width: calc( 1416px / 3 * 2 );
}
#work .wrap.green h4{
	background-color: var(--color-green);
}
#work .wrap.green h4 .description{
	background-color: var(--color-green-2);
}
#work .wrap.green p{
	color: var(--color-green-2);
}

#work .wrap.follow{
	margin-top: 1rem;
}

#work .wrap.follow .list{
	font-size: 1rem;
	text-align: justify;
	letter-spacing: 1px;
	font-feature-settings: 'palt';
}



/* ------------------------------------------------------------
SALARY
------------------------------------------------------------ */
#salary{
	padding-top: 0.5rem;
	padding-bottom: 3rem;
}

#salary .grid{
	gap: 1.25rem;
}
#salary .grid > div{
	border: 5px solid var(--color-blue);
}
#salary .grid .ttl{
	display: block;
	padding-block: 0.2rem;
	background-color: var(--color-blue);
	color: var(--color-white);
	font-size: 0.8rem;
	text-align: center;
	letter-spacing: 1px;
}
#salary .grid .ttl small{
	display: block;
	font-size: 0.6rem;
}
#salary .grid img{
	display: block;
	margin: 1rem 1.25rem;
	width: calc( 100% - 2.5rem );
}

/* ------------------------------------------------------------
IDEAL_CANDIDATE
------------------------------------------------------------ */
#ideal_candidate{
	padding-top: 3rem;
	padding-bottom: 3rem;
}
#ideal_candidate h2.ttl{
	position: relative;
	margin-bottom: 1rem;
	padding: 1.7rem 1rem 1.4rem 1.7rem;
	color: #f8b62d;
	font-size: 1.125rem;
	text-align: left;
	letter-spacing: 2px;
}
#ideal_candidate h2.ttl:before,
#ideal_candidate h2.ttl:after{
	content: '';
	display: block;
	width: calc( 230px / 3 * 2 );
	height: calc( 220px / 3 * 2 );
	position: absolute;
}
#ideal_candidate h2.ttl:before{
	top: 0;
	left: 0;
	border-top: 3px solid #f8b62d;
	border-left: 3px solid #f8b62d;
}
#ideal_candidate h2.ttl:after{
	bottom: 0;
	right: 0;
	border-bottom: 3px solid #f8b62d;
	border-right: 3px solid #f8b62d;
}

#ideal_candidate h3{
	padding-top: 0.75rem;
	padding-bottom: 1rem;
	font-size: 0.9rem;
	text-align: center;
}
#ideal_candidate h3:not(:first-of-type){
	margin-top: 2rem;
}

#ideal_candidate p{
	font-size: 0.8rem;
	text-align: justify;
	letter-spacing: 1px;
	font-feature-settings: 'palt';
}

/* ------------------------------------------------------------
QA
------------------------------------------------------------ */
#qa{
	padding-top: 2rem;
}

#qa article{
	margin-top: 170px;
	padding-bottom: 3rem;
}

#qa .profile{
	display: flex;
	flex-flow: row nowrap;
	justify-content: center;
	align-items: flex-end;
	margin-bottom: -1rem;
}
#qa .profile img{
	max-width: calc( 378px / 3 * 2 );
}
#qa .profile .name{
	display: inline-block;
	min-width: 4rem;
	margin-right: -5rem;
	padding: 1rem 1.1rem;
	color: var(--color-white);
	font-size: 0.8rem;
	font-weight: 500;
	text-align: center;
	line-height: 0;
}
#qa .bg_blue .profile .name{
	background-color: var(--color-blue);
}
#qa .bg_orange .profile .name{
	background-color: var(--color-orange);
}

#qa .profile img[src*='qa_image_mori.png']{
	margin-top: -185px;
}
#qa .profile img[src*='qa_image_mori.png'] + .name{
	margin-left: 1.5rem;
}
#qa .profile img[src*='qa_image_shiroto.png']{
	margin-top: -140px;
}
#qa .profile img[src*='qa_image_shiroto.png'] + .name{
	margin-left: 2.5rem;
	margin-bottom: 1.5rem;
}
#qa .profile img[src*='qa_image_yamashita.png']{
	margin-top: -165px;
}
#qa .profile img[src*='qa_image_yamashita.png'] + .name{
	margin-left: 1rem;
	margin-bottom: 0.3rem;
}
#qa .profile img[src*='qa_image_nakashima.png']{
	margin-top: -145px;
}
#qa .profile img[src*='qa_image_nakashima.png'] + .name{
	margin-left: 2rem;
	margin-bottom: 1rem;
}

#qa .qa_list,
#qa .qa_list dt,
#qa .qa_list dd{
	margin: 0;
}

#qa .qa_list dt{
	padding-bottom: 0.5rem;
	font-weight: var(--font-bold);
	font-size: 0.8rem;
}
#qa .qa_list dt:before{
	content: '';
	display: inline-block;
	width: calc( 43px / 3 * 2 );
	height: calc( 55px / 3 * 2 );
	margin-right: 0.5rem;
	background: url(./images/qa_ico_q.png) no-repeat center;
	background-size: contain;
	vertical-align: bottom;
}

#qa .qa_list dd{
	color: var(--color-black);
	font-size: 0.65rem;
	text-align: justify;
	letter-spacing: 1px;
	font-feature-settings: 'palt';
}
#qa .qa_list dd:not(:last-of-type){
	padding-bottom: 1rem;
}

#qa .bg_blue .qa_list dt{
	color: var(--color-blue);
}
#qa .bg_orange .qa_list dt{
	color: var(--color-orange);
}
#qa .bg_orange .qa_list dt:before{
	filter: brightness(0) saturate(100%) invert(40%) sepia(69%) saturate(3303%) hue-rotate(356deg) brightness(96%) contrast(92%);
}

/* ------------------------------------------------------------
RECRUIT
------------------------------------------------------------ */
#recruit h2.ttl{
	padding-top: 3rem;
}

#recruit .wrap{
	max-width: calc( 1451px / 3 * 2 );
}

#recruit h3.ttl{
	margin-bottom: 1rem;
	padding-block: 0.75rem;
	font-size: 1.3rem;
	letter-spacing: 1px;
}

#recruit .box{
	margin-bottom: 3rem;
	padding-inline: 1.5rem;
	background-color: var(--color-white);
}

#recruit .table th,
#recruit .table td{
	vertical-align: top;
	padding-block: 1rem;
}
#recruit .table th{
	padding-left: 0;
	font-size: 0.85rem;
	font-weight: 500;
	letter-spacing: 1px;
}
#recruit .table td{
	padding-inline: 0;
	font-size: 0.7rem;
	line-height: 1.1rem;
	letter-spacing: 1px;
}

#recruit .list{
	margin-block: 0;
}
#recruit .list li:not(:last-child){
	padding-bottom: 0.2rem;
}

#recruit .orange h3.ttl{
	background-color: var(--color-orange);
}
#recruit .orange .table th{
	color: var(--color-orange);
}
#recruit .green h3.ttl{
	background-color: var(--color-green);
}
#recruit .green .table th{
	color: var(--color-green);
}

#recruit .table td .bold.red{
	margin-bottom: 0.5rem;
	font-size: 0.85rem;
	font-weight: 700;
}

#recruit .commission{
	width: 4em;
}
#recruit .commission > span{
	display: inline-block;
	transform: scaleX(0.6);
	transform-origin: left;
}

#recruit .imgWrap{
	max-width: calc( 1205px / 3 * 2 );
	margin-inline: auto;
	padding-bottom: 4rem;
	font-size: 0.7rem;
	font-weight: 500;
}
#recruit .imgWrap img{
	display: block;
	margin-bottom: 0.8rem;
}

/* ------------------------------------------------------------
MESSAGE
------------------------------------------------------------ */
#message{
	padding-top: 0.25rem;
	padding-bottom: 3rem;
}

#message h2.ttl{
	padding-top: 2rem;
	font-size: 1.2rem;
	letter-spacing: 0;
}
#message h2.ttl small{
	font-size: 84%;
}

#message p{
	font-size: 0.7rem;
	text-align: justify;
	letter-spacing: 1px;
	font-feature-settings: 'palt';
}
#message p:not(:last-child){
	margin-bottom: 1rem;
}

#message .imgWrap{
	max-width: calc( 360px / 3 * 2 );
	margin-left: auto;
	margin-right: 0;
	margin-top: -3rem;
}
#message .imgWrap .name{
	font-size: 0.7rem;
	font-weight: 500;
	text-align: center;
}

/* ------------------------------------------------------------
ENTRY
------------------------------------------------------------ */
#entry{
	padding-block: 2rem;
}

#entry h2.ttl{
	margin-bottom: 0.8rem;
	padding: 0;
	font-size: 2.5rem;
	text-align: left;
	line-height: 1;
}

#entry .grid{
	grid-template-columns: 1fr auto;
	align-items: center;
}
#entry .textWrap{
	margin-right: 1.5rem;
	padding-top: 0.8rem;
	padding-left: 0.1rem;
	border-top: 5px solid var(--color-blue);
	color: var(--color-blue);
	font-weight: 700;
}
#entry .imgWrap{
	padding-top: 0.8rem;
	max-width: calc( 236px / 3 * 2 );
}
#entry .imgWrap img{
	display: block;
	transition: filter 0.2s;
}
#entry .imgWrap img:hover{
	filter: brightness(1.1) drop-shadow(2px 2px 4px rgb(0 0 0 / 0.7));
}





/* ------------------------------------------------------------
MEDIA
------------------------------------------------------------ */
@media (min-width: 769px) {

	header.main.thin .grid{
		padding-block: 0.2rem;
	}
	header.main.thin .logo img{
		width: calc(240px / 2 / 3 * 2);
	}
	header.main.thin #cta_btn .btn{
		margin-top: 0.2rem;
	}
	header.main.thin #cta_btn .btn img{
		width: calc(800px / 2 / 3 * 2);
	}

	#toTop.active{
		bottom: 2rem;
	}

} /* @media (pc)*/

@media (max-width: 1000px) {
	#work .wrap.red img,
	#work .wrap.green img{
		max-width: min(100%, 100vw);
		margin-inline: auto;
	}
} /* @media (sp)*/

@media (max-width: 768px) {

	:root{
		--font-size-base: 12px;
	}

	.pcOnly{ display: none; }
	.spOnly{ display: block; }

	.wrap{
		max-width: calc( 100% - 40px );
		margin-inline: auto;
	}

	h2.ttl{
		letter-spacing: 0;
	}

	header.main .logo img{
		width: 5rem;
	}

	footer.main img{
		max-width: calc(120px / 3 * 2);
	}

	#toTop.active {
		bottom: 9rem;
		right: 2rem;
		width: 4rem;
		height: 4rem;
	}

	#cta_btn{
		position: fixed;
		bottom: -150px;
		z-index: 9999;
		width: 100%;
		padding-right: 0;
	}
	#cta_btn.active{
		bottom: -1px;
	}
	#cta_btn .btn{
		display: block;
		margin-top: 0;
		background-color: var(--color-orange);
		text-align: center;
	}
	#cta_btn .btn picture{
		display: inline-block;
		margin-top: -2.4rem;
	}

	footer.main{
		padding-bottom: 15rem;
	}

	#strengths p,
	#strengths li{
		font-size: 1.1rem;
	}

	#components .grid{
		grid-template-columns: 15rem;
		justify-content: center;
	}

	#seminar .center{
		max-width: 7rem;
	}
	#seminar .grid{
		grid-template-columns: repeat(2, 1fr);
		gap: 1.5rem;
	}
	#seminar .grid .ttl{
		font-size: 1rem;
		letter-spacing: 0;
	}

	#work{
		padding-top: 0;
	}
	#work .wrap img{
		max-width: 90% !important;
		margin-inline: 0;
	}
	#work p{
		font-size: 1.1rem;
	}

	#salary .grid{
		grid-template-columns: 18rem;
		justify-content: center;
	}

	#ideal_candidate h2.ttl:before,
	#ideal_candidate h2.ttl:after{
		width: 5rem;
		height: 5rem;
	}
	#ideal_candidate h3{
		font-size: 1rem;
	}

	#qa{
		padding-top: 0;
	}
	#qa article{
		margin-top: 0;
		padding-top: 1rem;
	}
	#qa .profile img{
		margin-top: 0 !important;
		width: 8rem;
	}
	#qa .profile .name{
		margin-right: -7rem;
	}
	#qa .profile img[src*='qa_image_mori.png'] + .name {
		margin-left: 1.3rem;
	}
	#qa .profile img[src*='qa_image_shiroto.png'] + .name{
		margin-left: 0.8rem;
		margin-bottom: 1.1rem;
	}
	#qa .profile img[src*='qa_image_yamashita.png'] + .name {
		margin-left: 0.9rem;
		margin-bottom: 0.2rem;
	}
	#qa .profile img[src*='qa_image_nakashima.png'] + .name{
		margin-left: 1.5rem;
	}

	#qa .qa_list dt{
		font-size: 1.2rem;
	}
	#qa .qa_list dt:before{
		width: calc(30px / 3 * 2);
		height: calc(38px / 3 * 2);
	}
	#qa .qa_list dd{
		font-size: 1rem;
	}

	#recruit{
		background-color: var(--color-white);
	}
	#recruit h3.ttl{
		margin-bottom: 0;
	}
	#recruit .box{
		margin-bottom: 0;
	}
	#recruit .table,
	#recruit .tbody,
	#recruit .tr,
	#recruit .th,
	#recruit .td{
		display: block;
	}
	#recruit .table tr{
		display: grid;
		grid-template-columns: 1fr;
		justify-items: center;
		gap: 0;
		padding-inline: 1rem;
	}
	#recruit .table tr:not(:last-child){
		border-bottom: 2px solid #ccc;
	}
	#recruit .table th{
		padding-bottom: 0;
		border-bottom: 0;
		font-size: 1rem;
	}
	#recruit .table td{
		border-bottom: 0;
		letter-spacing: 0;
		font-size: 0.9rem;
	}

	#recruit .commission{
		width: auto;
	}
	#recruit .commission > span{
		transform: none;
	}

	#recruit .imgWrap{
		background-color: var(--color-light-blue);
		padding: 3rem 2.5rem;
	}
	#recruit .imgWrap .right{
		text-align: center;
	}

	#message h2.ttl{
		font-size: 1.5rem;
	}
	#message p {
		font-size: 1rem;
	}
	#message .imgWrap{
		max-width: calc(245px / 3 * 2);
		margin-top: -1rem;
		margin-right: auto;
	}

	#entry h2.ttl{
		margin-bottom: 0;
	}
	#entry .grid{
		gap: 0;
	}
	#entry .textWrap{
		margin-right: 0;
		border-width: 1px;
	}
	#entry .imgWrap{
		max-width: calc(145px / 3 * 2);
		padding-top: 0;
	}

} /* @media (sp)*/
