@charset "utf-8";


/* RESET
******************************************/

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {margin:0; padding:0; border:0; font-style:normal; font-weight:normal; font-size:100%; vertical-align:baseline;font-size:16px;font-family: 'Noto Sans JP', sans-serif; line-height:1.8;}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display:block;font-size:16px;font-family: 'Noto Sans JP', sans-serif; line-height:1.8;color:#444;}

p ,
span ,
i ,
a ,
li ,
th ,
td ,
dt ,
dd {
	font-size:16px;
	margin-bottom: 15px;
	}
@media screen and (max-width:767px){
p ,
span ,
i ,
a ,
li ,
th ,
td ,
dt ,
dd {
	font-size:14px;
	}
}


html				{overflow-y:scroll;}
blockquote, q		{quotes:none;}
blockquote:before, blockquote:after, q:before, q:after {content:''; content:none;}
input, textarea 	{margin:0; padding:0;}
ol, ul				{list-style:none;}
table				{border-collapse:collapse; border-spacing:0;}
caption, th			{text-align:left;}
a					{cursor:pointer; padding:0; margin:0;text-decoration:none;}
a img				{border:none; background-color:transparent;}
a:focus				{outline:none;}



/* IE?n?b?N */
* html img				{vertical-align:top;}
* html li				{line-height:1.1em; list-style-position:outside;}
*:first-child+html li	{line-height:1.1em;}
body					{_font-size:80%;}

/* Mac UTF-8??????????h?~ */
/*?_*//*/
input, textarea, select, option {font-family:"?l?r ?o?S?V?b?N",arial,helvetica,clean,sans-serif;}
/**/
a		{cursor:pointer; padding:0; margin:0;}
a img	{border:none; background-color:transparent;}


/* clearfix */
.cf:after {
content:".";
display:block;
height:0;
clear:both;
visibility:hidden;
font-size:0.1em;
line-height:0;
}
.cf			{display:inline-block;}
* html .cf	{height:1%; }
.cf			{display:block; }
.mt0{/*margin-top:0!important;*/margin-top:0;    margin-bottom: 12px;}


/* common
******************************************/
a:hover {
	opacity: .7;
    transition: .3s;
}

.inner {
	max-width: 1100px;
    width: 92%;
	margin-left: auto;
	margin-right: auto;
}
.flex {
	display: flex;
}
@media screen and (max-width:767px){
.flex {
	display: block;
	}
}


/*  common 下層ヘッダー
******************************************/
.sub .path {
    padding: 6px 0 6px 0;
}
.sub .path ul li {
    display: inline-block;
    color: #000;
    font-size: 14px;
    line-height: 1;
}
.sub .path a {
    color: #000;
    font-size: 14px;
    display: block;
    line-height: 1;
}
.sub .path a:after {
    padding: 0 5px;
    content: "/";
}

.subVisual {
	height: 230px;
	width: 100%;
    padding-top: 54px;
    position: relative;
}
.subVisual::before {
    content: '';
    display: inline-block;
    background: rgba(0,0,0, .25);
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}
.subVisual.about {
    background: url(../img/subimg_about.jpg) no-repeat center center;
    background-size: cover;
}
.subVisual.service {
    background: url(../img/subimg_service.jpg) no-repeat center center;
    background-size: cover;
}
.subVisual.recruit {
    background: url(../img/subimg_recruit.jpg) no-repeat center center;
    background-size: cover;
}
.subVisual.contact {
    background: url(../img/subimg_contact.jpg) no-repeat center center;
    background-size: cover;
}
.subVisual.policy {
    background: url(../img/subimg_policy.jpg) no-repeat center center;
    background-size: cover;
}
.subVisual.sitemap {
    background: url(../img/subimg_sitemap.jpg) no-repeat center center;
    background-size: cover;
}
.subVisual.news {
    background: url(../img/subimg_news.jpg) no-repeat center center;
    background-size: cover;
}
.subVisual.faq {
    background: url(../img/subimg_faq.jpg) no-repeat center center;
    background-size: cover;
}
@media screen and (min-width:768.0px) and (max-width:768.9px){
.subVisual {
    margin-top: 64px;
	}
}
@media screen and (max-width:767px){
.subVisual {
    height: 140px;
	}
.sub .path a {
    font-size: 13.25px;
	}
}



/* font
******************************************/
.noto_sans {
	font-family: 'Noto Sans JP', sans-serif;
}
.serif {
	font-family: serif;
}


/* title
******************************************/
h2 {
	font-size: 42px;
	text-align: center;
	position: relative;
    font-weight: 600;
	letter-spacing: 2px;
}
h2 span {
	display: block;
    font-size: 28px;
}
h2::after {
    content: '';
    display: block;
    border-bottom: 1px solid;
    width: 7em;
    text-align: center;
    margin: 1px auto 0 auto;
    border-radius: 50px;
    padding-bottom: 0px;
    position: relative;
    top: -65px;
}
.subVisual h2 {
    font-size: 34px;
    position: relative;
    top: 90px;
    color: #fff;
}
.subVisual h2::after {
    content: none;
}
.sub h3 {
	font-size: 32px;
	text-align: center;
	position: relative;
    font-weight: 600;
	letter-spacing: 2px;
}
.sub h3 span {
    font-size: 15px;
    font-weight: 600;
    position: relative;
    display: inline-block;
    margin-left: 20px;
}
.sub h3 span::before {
    content: '/';
    display: block;
    font-size: 28px;
    width: 0px;
    height: 15px;
    position: relative;
    right: 15px;
}
.sub h4 {
    font-size: 24px;
    font-weight: 600;
    padding-bottom: 8px;
    margin-bottom: 24px;
    border-bottom: 4.5px dotted;
}
.sub h5 {
    padding: 8px 10px 10px 10px;
    background-color: #000;
    color: #fff;
    font-weight: bold;
    font-size: 18px;
    margin-bottom: 15px;
}
@media screen and (max-width:768.0px) and (max-width:768.9px){
.subVisual h2 {
    top: 55px;
	}
}
@media screen and (max-width:767px){
h2 {
	font-size: 24px;
	letter-spacing: 1px;
	}
h2::after {
    top: -42px;
	}
h2 span {
    font-size: 14px;
	}
.subVisual h2 {
	font-size: 24px;
    top: 50px;
	}
.sub h3 {
	font-size: 24px;
	letter-spacing: 1px;
	}
.sub h3 span {
    font-size: 12.5px;
	}
.sub h3 span::before {
    content: '/';
    display: block;
    font-size: 25px;
    width: 0px;
    height: 15px;
    position: relative;
    right: 15px;
	}
.sub h4 {
    font-size: 18px;
	}
.sub h5 {
    padding: 6px 10px 8px 10px; */
	font-size: 18px;
	}
}




/* hamburger
******************************************/
.gn_btn                    {background:transparent;border:1px solid transparent;width:32px;height:32px;right:15px;top:15px;position:absolute;line-height:1em;text-align:center;z-index:11;position: fixed;}
.gn_btn i                  {margin-top:34px;font-size:75%;position:relative;display:block;text-align:center;vertical-align:bottom;}
.gn_btn:before,
.gn_btn:after,
.gn_btn i:after            {background:#000;position:absolute;content:"";display:block;width:20px;height:2px;left:calc(50% - 10px);transition:0.2s;}
.gn_btn i:after            {top:-20px;}
.gn_btn:before             {top:6px;}
.gn_btn:after              {top:22px;}
.gn_show .gn_btn           {border-color:transparent;}
.gn_show .gn_btn:before,
.gn_show .gn_btn:after     {top:14px;height:2px;background:#fff;}
.gn_show .gn_btn:before    {transform:rotate(45deg);}
.gn_show .gn_btn:after     {transform:rotate(-45deg);}
.gn_show .gn_btn i:after   {display:none;}

/* ----------------------------------------------- navigation */
.gn_lst                    {background:#D70C19;width:20em;right:-20em;top:0;height:100%;position:fixed;z-index:10;overflow:scroll;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition:0.2s;}
.gn_bg                     {top:0;left:0;position:fixed;z-index:3;background:rgba(255,255,255,0);width:100%;height:100%;transition:0.2s;display:none;}
.gn_show                   {overflow-y:hidden;position:fixed;}
.gn_show .c                {-webkit-filter:blur(5px);filter:blur(5px);}
.gn_show .gn_lst           {right:0;box-shadow:-3px 0 3px rgba(0,0,0,0.2);}
.gn_show .gn_bg            {background:rgba(255,255,255,0.8);display:block;}
.gn_lst ul li a            {color:#fff;position:relative;line-height:1.6em;padding:0.5em;display:block;
    font-size: 14px;
	}
.gn_lst ul li a i           {
    font-size: 14px;
	}

.gn_lst > ul                       {padding:4.25em 1em 5em;}
.gn_lst > ul > li                  {margin-bottom:0.5em;padding-bottom:0.5em;border-bottom:1px solid rgba(255,255,255,0.5);position:relative;}
.gn_lst > ul > li:last-child       {border-bottom:0 none;}
.gn_lst > ul > li.crt              {font-weight:bold;}
.gn_lst > ul > li > a i            {display:inline-block;}

.gn_lst li ul              {margin-left:1.5em;font-size:87.5%;}
.gn_lst li ul li a:before  {content:"-";margin-right:0.5em;}

@media screen and (min-width: 768px){
	.gn_on .gn_bg,
	.gn_bg,
	.gn_btn                    {display:none;}
	.gn                        {max-width:1000px;margin: 0 auto;width:100%;padding:5px 0 12px;}
	.gn_on .gn_lst,
	.gn_lst                    {width:100%;top:0;left:0;right:auto;width:auto;height:auto;overflow:visible;overflow-y:visible;position:relative;clear:both;background-color:transparent;box-shadow:0 0 0 none;padding-right:0;}
	.gn ul                     {margin:0 auto;padding:0;display:flex;align-items:center;justify-content:space-between;position:relative;}
	.gn ul li:last-child,
	.gn ul li                  {width:20%;margin:0;padding:0 1em;border:0 none;border-right:1px solid #dfdfdf;position:relative;}
	.gn ul li:nth-child(1)     {width:15%;}
	.gn ul li:nth-child(2)     {width:15%;}
	.gn ul li:nth-child(3)     {width:15%;}
	.gn ul li:nth-child(4)     {width:15%;}
	.gn ul li:nth-child(5)     {width:30%;}
	.gn ul li:nth-child(6)     {width:15%;}
	.gn ul li:first-child      {border-left:1px solid #dfdfdf;}
	.gn ul li.crt              {border:1px solid #eee;}
	.gn ul li.home             {display:none;}
	.gn ul li a                {color:#333;font-size:90%;line-height:135%;text-align:center;display:block;text-align:center;padding:0em 0.5em 0.0em 0.5em;transition:0.3s;}
	.gn ul li a i              {display:block;margin-right:0;}
	.gn ul li a:hover          {opacity:0.5;}

	.gn ul li a span {display: block;font-size: 13px;}

	.gn li ul                  {margin:0;left:0;top: 55px;position:absolute;display:block;min-width:100%;background:rgba(255,255,255,0.95);}
	.gn li ul li:last-child,
	.gn li ul li:first-child,
	.gn li ul li               {width:85%;max-height:0;overflow:hidden;transition:0.2s;border:0 none;}
	.gn li ul li:nth-child(1)               {width:80%;}
	.gn li ul li:nth-child(2)               {width:80%;}
	.gn li ul li:nth-child(3)               {width:80%;}
	.gn li ul li:nth-child(4)               {width:80%;}
	.gn li ul li:nth-child(5)               {width:80%;}
	.gn li ul li:nth-child(6)               {width:80%;}
	.gn li:hover ul li         {max-height:4em;}
	.gn li:hover ul li:first-child {padding-top:1em;}
	.gn li ul li a             {padding:0.8em 0.5em 0.8em 0.0em;}
	.gn_lst li ul li a:before  {display:none;}
	.gn_lst li ul {
    	margin-left: 1.5em;
    	font-size: 0%;
	}
	.gn li.corporate ul                  {margin:0;left:0;top: 55px;position:absolute;display:block;min-width:128%;background:rgba(255,255,255,0.95);}
}
@media screen and (max-width:767px){
.spmenu_name {
    position: absolute;
    top: 10px;
    left: 20px;
    font-size: 14px;
    color: #fff;
	}
.gn ul li a span {
	display: inline-block;
    padding-left: 1em;
    font-size: 12px;
	}
.tgn {
    padding-top: 0px;
	}
}



/* header
******************************************/
header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
    z-index: 10;
    background: rgba(255, 255, 255, .5);
}
header.on {
	background-color: #fff;
	transition:.3s;
}
header .logo_area {
	display: inline-block;
    width: 40%;
    padding-top: 12px;
}
header .logo_area a ,
header .logo_area a img {
	width: 220px;
}
@media screen and (min-width:768px){
header .tgn {
	display: inline-block;
    width: 59%;
	position: relative;
	}
header .tgn li {
	display: inline-block;
    width: 16%;
    margin-bottom: 0;
	}
header .tgn li:nth-child(1) {
    width: 23%;
    margin-bottom: 0;
	}
header .tgn li:nth-child(5) {
    width: 18%;
    background-color: #D70C19;
    margin-bottom: 0;
	}
header .tgn li:nth-child(5) a {
	padding: 22px 11px;
	display: block;
	}
header .tgn li:nth-child(5):hover {
	opacity: .7;
	transition: .3s;
	}
header .tgn li img {
    width: 22px;
    height: 22px;
    position: relative;
    top: 5px;
    margin-right: 6px;
	}
header .tgn li a {
	color: #000;
	font-weight: 500;
	}
header .tgn li:nth-child(5) a {
	color: #fff;
	}
header .tgn li a:hover::after {
    content: '';
    display: block;
    border-bottom: 5px solid #D70C19;
    width: 4em;
    position: relative;
    top: 18px;
	}
header .tgn li:nth-child(1) a:hover::after {
    width: 6.5em;
	}
header .tgn li:nth-child(5) a:hover::after {
	content: none;
	}
}
@media screen and (min-width:768.0px) and (max-width:768.9px){
header .logo_area a, header .logo_area a img {
    width: 174px;
	}
header .logo_area {
    width: 30%;
    padding-top: 12px;
	}
header .tgn {
    width: 70%;
	}
header .tgn li a {
    font-size: 15px;
	}
header .tgn li:nth-child(5) {
    width: 21.25%;
	padding: 17px 0px 17px 14px;
	}
}
@media screen and (max-width:767px){
header {
    padding: 8px 0 0px 0;
	}
header .logo_area {
    padding-top: 5px;
	}
header .logo_area a img {
	width: 160px;
	}
}


/* <cv_area>
******************************************/
.cv_area {
	padding: 60px 0;
    background: url(../img/cv_bg.jpg) no-repeat;
    background-size: cover;
    background-position: center;
    position: relative;
}
.cv_area::before {
	content: '';
	display: inline-block;
	background: rgba(0,0,0, .425);
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}
.cv_area .box {
	padding: 35px;
	background: rgba(255,255,255,.85);
    position: relative;
    z-index: 1;
}
.cv_area .box p {
	text-align: center;
	font-weight: 500;
}
.cv_area .box p.title {
	font-size: 28px;
}
.cv_area .box .link {
    margin: 40px auto 0 auto;
    text-align: center;
}
.cv_area .box .link a {
    padding: 15px 0;
    color: #fff;
    background-color: #D70C19;
    width: 60%;
    display: inline-block;
    border-radius: 10px;
    vertical-align: middle;
    font-size: 20px;
	font-weight: 500;
}
.cv_area .box .link a img {
    width: 38px;
    margin-right: 12px;
    vertical-align: bottom;
}
@media screen and (max-width:767px){
.cv_area {
    padding: 25px 0 30px 0;
	}
.cv_area .box {
    padding: 25px 10px;
	}
.cv_area .box p.title {
    font-size: 20px;
	}
.cv_area .box .link {
    margin: 35px auto 0 auto;
	}
.cv_area .box .link a {
    padding: 15px 0;
    width: 90%;
    font-size: 16px;
	}
.cv_area .box .link a img {
    width: 26px;
    margin-right: 10px;
	}
}



/* <footer>
******************************************/
footer {
	padding: 60px 0 0 0;
}
footer .flex {
    align-items: anchor-center;
    gap: 0 65px;
}
footer .inleft {
	display: inline-block;
    width: 32%;
    position: relative;
	border-right: 1px solid;
}
footer .inleft img {
    width: 280px;
    margin-bottom: 20px;
}
footer .inleft p.company {
    font-size: 17px;
    font-weight: bold;
    margin-bottom: 10px;
}
footer .inright {
	display: inline-block;
    width: 58%;
}
footer .inright .flex {
	gap: 0 20px;
    align-items: flex-start;
}
footer .inright .content {
	display: inline-block;
	width: 32%;
}
footer .inright i::before {
	content: '├';
	display: inline-block;
	width: 10px;
	height: 10px;
	font-size: 16px;
	margin-right: 10px;
}
footer .inright li a {
	color: #000;
}
footer .inright li a:hover ,
footer .inright li a:hover i {
	color: #D70C19;
}
footer .sns_box {
}
footer .sns_box img {
	width: 42px;
	height: 42px;
}
footer .copyright {
	color: #fff;
	background-color: #D70C19;
}
footer .copy {
    margin-top: 30px;
    margin-bottom: 0;
    padding-top: 15px;
    padding-bottom: 15px;
    text-align: center;
}
@media screen and (min-width:768.0px) and (max-width:768.9px){
footer .flex {
    gap: 0 20px;
	}
footer .inleft {
    width: 25%;
    padding-right: 15px;
	}
footer .inleft img {
    width: 174px;
	}
footer .copy {
    margin-top: 35px;
    padding-top: 16px;
    font-size: 14.5px;
	}
footer .inright {
    width: 68%;
	}
footer .inright .content:nth-child(1) {
    width: 26%;
	}
footer .inright .content:nth-child(3) {
    width: 40%;
	}
}
@media screen and (max-width:767px){
footer {
    padding: 35px 0 2px 0;
	}
footer .inleft {
    display: block;
    width: 100%;
    position: relative;
    border-right: 0;
    text-align: center;
    border-bottom: 1px solid;
    margin-bottom: 15px;
	}
footer .inleft img {
    width: 220px;
    margin-bottom: 15px;
	}
footer .inleft  .sns_box img {
	width: 42px;
	height: 42px;
	margin-bottom: 5px;
	}
footer .inright .content {
    display: block;
    width: 100%;
    margin-bottom: 20px;
	}
footer .inright .content li {
    margin-bottom: 8px;
	}
footer .copy {
    margin-top: 15px;
    padding-top: 10px;
    font-size: 11.75px;
	}
}




/* 768px以上の時にforsp(スマホ用)を非表示 */
@media screen and (min-width:768px){.forsp {display: none!important;}}

/* 767px以下の時にforpc(PC用)を非表示 */
@media screen and (max-width:767px){.forpc {display: none!important;}}


