@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;700&family=Noto+Serif+JP:wght@300;500&display=swap');
/*
html5doctor.com Reset Stylesheet
v1.4
2009-07-27
Author: Richard Clark - http://richclarkdesign.com
*/

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, dialog, figure, footer, header,
hgroup, menu, nav, section,
time, mark, audio, video {
	margin:0;
	padding:0;
	border:0;
	outline:0;
	font-size:100%;
	vertical-align:baseline;
	background:transparent;
}
* {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

body {
	line-height:1;
}

article, aside, dialog, figure, footer, header,
hgroup, nav, section {
	display:block;
}

nav ul {
	list-style:none;
}

blockquote, q {
	quotes:none;
}

blockquote:before, blockquote:after,
q:before, q:after {
	content:'';
	content:none;
}

a {
	margin:0;
	padding:0;
	border:0;
	font-size:100%;
	vertical-align:baseline;
	background:transparent;
}

ins {
	background-color:#ff9;
	color:#000;
	text-decoration:none;
}

mark {
	background-color:#ff9;
	color:#000;
	font-style:italic;
	font-weight:bold;
}

del {
	text-decoration: line-through;
}

abbr[title], dfn[title] {
	border-bottom:1px dotted #000;
	cursor:help;
}

table {
	border-collapse:collapse;
	border-spacing:0;
}

hr {
    display:block;
    height:1px;
    border:0;
    border-top:1px solid #cccccc;
    margin:1em 0;
    padding:0;
}

input, select {
	vertical-align:middle;
}

img{
	line-height:1;
	vertical-align:bottom;
}

/************** layout base ********************/
.clearfix:after {
  content: "";
  clear: both;
  display: block;
}

img{ max-width:100%;}

a{text-decoration:none;}
a:hover{text-decoration: none;}
a:link{}

a:visited{}

/* ボタンrollover */
a:hover img{
   opacity:0.8;
}

sup {
	line-height: 100%;
	font-size:10px;
	vertical-align: 0.4em;
}
sub{
	line-height: 100%;
	font-size:10px;
	vertical-align: -0.1em;
}

.txtLeft{text-align:left;}
.txtRight{text-align:right;}
.txtCenter{text-align:center;}

.fw{font-weight:bold !important;}
.f10{ font-size:10px !important;}
.f11{ font-size:11px !important;}
.f12{ font-size:12px !important;}
.f13{ font-size:13px !important;}
.f14{ font-size:14px !important;}
.f15{ font-size:15px !important;}
.f16{ font-size:16px !important;}
.f17{ font-size:17px !important;}
.f18{ font-size:18px !important;}
.f20{ font-size:20px !important;}
.f22{ font-size:22px !important;}
.f24{ font-size:24px !important;}

.fLeft{ float:left;}
.fRight{ float:right;}

.mTop0{ margin-top:0 !important;}
.mTop5{ margin-top:5px !important;}
.mTop10{ margin-top:10px !important;}
.mTop15{ margin-top:15px !important;}
.mTop20{ margin-top:20px !important;}
.mTop25{ margin-top:25px !important;}
.mTop30{ margin-top:30px !important;}
.mTop35{ margin-top:35px !important;}
.mTop40{ margin-top:40px !important;}
.mTop45{ margin-top:45px !important;}
.mTop50{ margin-top:50px !important;}
.mTop55{ margin-top:55px !important;}
.mTop60{ margin-top:60px !important;}

.mBtm0{ margin-bottom:0 !important;}
.mBtm5{ margin-bottom:5px !important;}
.mBtm10{ margin-bottom:10px !important;}
.mBtm15{ margin-bottom:15px !important;}
.mBtm20{ margin-bottom:20px !important;}
.mBtm25{ margin-bottom:25px !important;}
.mBtm30{ margin-bottom:30px !important;}
.mBtm35{ margin-bottom:35px !important;}
.mBtm40{ margin-bottom:40px !important;}
.mBtm45{ margin-bottom:45px !important;}
.mBtm50{ margin-bottom:50px !important;}
.mBtm55{ margin-bottom:55px !important;}
.mBtm60{ margin-bottom:60px !important;}
.mBtm70{ margin-bottom:70px !important;}
.mBtm80{ margin-bottom:80px !important;}
.mBtm90{ margin-bottom:90px !important;}
.mBtm100{ margin-bottom:100px !important;}

.pTop0{ padding-top:0 !important;}
.pTop5{ padding-top:5px !important;}
.pTop10{ padding-top:10px !important;}
.pTop15{ padding-top:15px !important;}
.pTop20{ padding-top:20px !important;}
.pTop25{ padding-top:25px !important;}
.pTop30{ padding-top:30px !important;}
.pTop35{ padding-top:35px !important;}
.pTop40{ padding-top:40px !important;}
.pTop45{ padding-top:45px !important;}
.pTop50{ padding-top:50px !important;}

.pBtm0{ padding-bottom:0 !important;}
.pBtm5{ padding-bottom:5px !important;}
.pBtm10{ padding-bottom:10px !important;}
.pBtm15{ padding-bottom:15px !important;}
.pBtm20{ padding-bottom:20px !important;}
.pBtm25{ padding-bottom:25px !important;}
.pBtm30{ padding-bottom:30px !important;}
.pBtm35{ padding-bottom:35px !important;}
.pBtm40{ padding-bottom:40px !important;}
.pBtm45{ padding-bottom:45px !important;}
.pBtm50{ padding-bottom:50px !important;}
.pBtm55{ padding-bottom:55px !important;}
.pBtm60{ padding-bottom:60px !important;}

/************** layout base ********************/
body{
	background: #ffffff;
  font-family: 'Noto Sans JP', sans-serif,"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	text-align: left;
	line-height:1.75;
}

ol,ul {
	list-style:none;
}

p,dt,dd,li,td,th{
	color:#222222;
	font-size:16px;
}

div,p,dl{
	text-align:left;
  box-sizing: border-box;
}

h1,h2,h3,h4,h5,h6{
	color: #000000;
	font-size:16px;
	font-weight: normal;
}

@media screen and (max-width: 768px) {
p,dt,dd,li,td,th{
	font-size:14px;
}
h1,h2,h3,h4,h5,h6{
	font-size:14px;
}

}/*-SP only-*/
/* common
-------------------------- */
body{
}

.inner{
	max-width: 980px;
	margin: 0 auto;
}

.min{
  font-family: 'Noto Serif JP', serif;
}

.flex{
  display: flex;
  justify-content: space-between;
}


/* color tips */
:root{
  --bg-red:#b10003;
  --t-red:#e21f22;
  --t-white:#ffffff;
}
.tRed{
  color: #e21f22
}
.tWhite{
  color: #ffffff
}


@media screen and (max-width: 768px) {
	.pcOnly{ display: none;}	
}/* //end for SP */

@media screen and (min-width: 769px) {
	.spOnly{ display: none;}	
	.pcFlex{
	  display: flex;
	  justify-content: space-between;
	}
}/* //end for PC */



/* header
-------------------------- */
header{ 
 position:fixed;
 top: 0;
 left: 0;
 width: 100%;
   background: #FFF;
	border-bottom: 2px solid #e21f22;
 z-index: 99999;
}
header .inner{	
	display: flex;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-ms-flex-align: center;
	align-items: center;
}
@media screen and (min-width: 769px) {
 main{
  margin-top: 90px;
 }
	header .inner{
		height: 90px;
	}
}/* //end for PC */
@media all and (-ms-high-contrast: none){
 main{
  display: block;
 }
}/*-IE only-*/
#logo{
	width: 248px;
}
.headLinks{
	display: flex;
	-ms-flex-pack: justify;
	justify-content: space-between;	
}
#gNavi{
	
}
@media screen and (min-width: 769px) {
#gNavi ul{
	display: flex;
	-ms-flex-pack: justify;
	justify-content: space-between;
	margin-right: 20px;
}
#gNavi ul li{ 
	padding-right: 20px;
}
#gNavi ul li:not(:first-child)::before{
	margin-right: 20px;
	content: "/";
	color: #cccccc;
}

}/*-PC only-*/
#gNavi li a{
	font-size: 13px;
	color: #000000;
	font-weight: bold;
	display: inline-block;
}
#gNavi li a:hover,
#gNavi li.current a{
	color: #c81518;
	
}
#gNavi li a:hover::after,
#gNavi li.current a::after{
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	background: #c81518;
}
.btnContact{
	width: 145px;
	height: 40px;
	margin-top: -5px;
}
.btnContact a{
	display: block;
	width: 100%;
	height: 100%;
	background: #c81518;
	border-radius: 3px;
	font-size: 13px;
	color: #fff;
	text-align: center;
	font-weight: bold;
	line-height: 40px;
	vertical-align: middle;
}
.btnContact a::after{
	content: "";
	display: block;
	width: 100%;
	height: 3px;
	background: rgba(0, 0, 0, 0.2);
	border-radius: 0 0 3px 3px;
}
.btnContact a::before{
	content: "";
	display: inline-block;
	margin-right: 4px;
	width: 20px;
	height: 15px;
	background: url("images/ic_email.png") no-repeat center center / 100%;
	vertical-align: middle;
}

@media screen and (max-width: 768px) {
 main{
  margin-top: 60px;
 }
 header{
  height: 60px;
  z-index: 9999;
 }
 header .inner{
  padding: 10px 4% 8px;
 }
#logo{
	width: 190px;
}
 #spMenu{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 30px;
  height: 24px;
  cursor: pointer;
 }
 #spMenu span,
 #spMenu span::before,
 #spMenu span::after{
  display: block;
  width: 100%;
  height: 2px;
  background:#e21f22 ;
  -webkit-transition: 0.2s ease-in-out;  
       -moz-transition: 0.2s ease-in-out;  
         -o-transition: 0.2s ease-in-out;  
            transition: 0.2s ease-in-out; 
 }
 #spMenu span::before,
 #spMenu span::after{
  content: "";
  position: absolute;
  left: 0;
 }
 #spMenu span::before{
  top: 0;
 }
 #spMenu span::after{
  bottom: 0;
 }
 #spMenu.active span{
  background: rgba(255,255,255,0.00);
 }
 #spMenu.active span::before,
 #spMenu.active span::after{
  top: 50%;
  bottom: auto;
  -webkit-transform: rotate(45deg);
transform: rotate(45deg);
 }
 #spMenu.active span::after{
  right: 0;
  left: auto;
  -webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
 }
 .headLinks{
  position: absolute;
  top:60px;
  left: 0;
  display: block;
  width: 100%;
  height: 0;
  overflow-y: auto;
 background: rgba(255,255,255,0.90);
  -webkit-transition: 0.2s ease-in-out;  
       -moz-transition: 0.2s ease-in-out;  
         -o-transition: 0.2s ease-in-out;  
            transition: 0.2s ease-in-out; 
 }
 header.active .headLinks{
  height: calc(100vh - 60px);
 }
 #gNavi li{
  border-bottom: 1px #ccc solid;
 }
 #gNavi li a{
  display: block;
  padding: 10px 4%;
 }
 #gNavi li a:hover::after, #gNavi li.current a::after{
  display: none;
 }
  .headLinks .btnContact{
   margin: 20px auto 0;
 }
}/* //end for SP */



/* footer
-------------------------- */
footer{
	overflow: hidden;
   background: url("images/foot_bg.png");
   padding: 0 0 50px;
}
.footTxt .footLogo{
	width: 248px;
}
.footTxt .footAddress{
	padding: 2em 0 2.8em;
	font-size: 14px;
	color: #222222;
}
.footTxt .footAddress small{
  font-size: 11px;
}
.footTxt .btnContact{
	width: 260px;
}
.fNavi{
	padding-top: 80px;
}
.fNavi ul + ul{
	margin-top: 13px;
}
.fNavi li a{
	padding: 0 20px;
	font-size: 13px;
	color: #000000;
	font-weight: bold;
	display: inline-block;
}
.fNavi li a:hover,
.fNavi li.current a{
	color: #c81518;
	
}
#copy{
	margin-top: -1em;
    margin-left: auto;
   color: #222222;
   font-size: 10px;
	text-align: right;
}
@media screen and (min-width: 769px) {
footer .inner{
	display: flex;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-ms-flex-align: stretch;
	align-items: stretch;
}
.footTxt{
	position: relative;
	width: 30%;
	height: 345px;
	background: #fff;
	
	display: flex; 
  	-ms-flex-wrap: wrap;
  	flex-wrap: wrap;
	-ms-flex-line-pack: center;
	align-content: center;
}
.footTxt::before{
	position: absolute;
	right: 100%;
	content: "";
	display: block;
	width: 500%;
	height: 100%;
	background: #fff;
}
.footTxt::after{
	position: absolute;
	right: -156px;
	bottom: 0;
	content: "";
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	/*border-width: 33vw 156px 0 0;*/
	border-width: 345px 156px 0 0;
	border-color: #ffffff transparent transparent transparent;
}
.fNavi ul{	
	display: flex;
}
.fNavi ul li:not(:first-child)::before{
	content: "/";
	color: #ffffff;
}
.fNavi li a:hover::after,
.fNavi li.current a::after{
	content: "";
	display: block;
	width: 100%;
	height: 1px;
	background: #c81518;
}
}/* //end for PC */
@media screen and (max-width: 768px) {
 footer{
   padding: 0 0 20px;
 }
 .footTxt{
  background: #fff;
  padding: 20px 4%;
  text-align: center;
 }
.footTxt .footLogo{
	width: 248px;
 margin: 0 auto;
}
.footTxt .footAddress{
 display: inline-block;
	padding: 1.5em 0 1.5em;
	font-size: 13px;
 text-align: left;
}
.footTxt .footAddress small{
  font-size: 10px;
}
.footTxt .btnContact{
 margin: 0 auto;
}
.fNavi{
	padding-top: 2px;
}
 .fNavi ul{
 }
.fNavi ul + ul{
	margin-top: 0px;
}
 .fNavi li{
  border-bottom: 1px #ccc solid;
  background: rgba(255,255,255,0.5);
 }
.fNavi li a{
 display: block;
	padding: 8px 4%;
}
 #copy{
  display: block;
  margin: 0;
  padding:10px 0 0;
  text-align: center;
 }
}/* //end for SP */



/* pageTop
-------------------------- */
#pageTop{
   /*display: none;*/
	display: block;
   position: fixed;
   right: 4%;
   bottom: 43px;
   z-index: 999999;
}
#pageTop a{
   display: block;
   background: rgba(200,21,24,0.8);
	border-radius: 50%;
	width: 62px;
	height: 62px;
   font-size: 10px;
	line-height: 1.1;
   color: #fff;
	font-family: Arial, Helvetica, "sans-serif";
	font-weight: bold;
	text-align: center;
	letter-spacing: 0.05em;
}
#pageTop a span{
	position: relative;
	width: 100%;
	height: 100%;
	display: flex; 
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
	-ms-flex-align: center;
	align-items: center;   
	-ms-flex-pack: center;
	justify-content: center;
	padding-top: 12px;

}
#pageTop a span::before{
	position: absolute;
	top: 16px;
	transform: translateX(-50%);
	content: "";
	display: block;
	border-left: 1px #fff solid;
	border-top: 1px #fff solid;
	width: 5px;
	height: 5px;
	-webkit-transform: rotate(45deg);
   transform: rotate(45deg);
}

@media screen and (max-width: 768px) {
}/* //end for SP */

@media screen and (min-width: 769px) {
}/* //end for PC */


/*btn
-------------------------- */
.arwbtn {
    color: #c81518 !important;
    font-size: 13px;
    display: inline-block;
    letter-spacing: 0.1em;
    position: relative;
    border-bottom: 1px solid #c81518;
    padding-right: 3em;
}

.arwbtn::before {
    content: "";
    display: block;
    width: 1px;
    height: 7px;
    position: absolute;
    bottom: 0;
    right: 0;
    left: calc(100% - 4px);
    top: calc(100% - 7px);
    background: #c81518;
    transform: skewX(35deg);
}

.arwbtnW {
    color: #fff !important;
    font-size: 13px;
    display: inline-block;
    letter-spacing: 0.1em;
    position: relative;
    border-bottom: 1px solid #fff;
    padding-right: 3em;
}

.arwbtnW::before {
    content: "";
    display: block;
    width: 1px;
    height: 7px;
    position: absolute;
    bottom: 0;
    right: 0;
    left: calc(100% - 4px);
    top: calc(100% - 7px);
    background: #fff;
    transform: skewX(35deg);
}

/* top
-------------------------- */
#mv {
  position: relative;
  text-align: center;
  height: calc(100vh - 105px);  
}
#mv .inner{
 width: 100%;
  max-width: 980px;
  position: absolute;
  left: calc(50vw - 490px);
  top:0;
  margin: 0 auto;
  padding-top: 6vh;
}

#mv .mvTxt{
  max-width: 510px;
 
}

#mv .mvTxt h2{
  font-size: 48px;
  font-weight: 700;
  margin-bottom: 3vh;
   letter-spacing: .2em;
  line-height: 1.5;
}

#mv .mvTxt h2 span{
  display: inline-block;
  border-bottom: 1px solid #000;
  padding-bottom: 2px;
}

#mv .mvTxt h2 i{
  font-size: 42px;
  font-style: normal;
}

#mv .mvTxt p{
  font-size: 20px;
  line-height: 1.6;
}

#mv .slider li img{
width: 100%;
height: calc(100vh - 105px - 38px);  
object-fit: cover;
}
#mv .slider li{
  
}

#mv .news{
  margin-top: 6vh;
  position: relative;
  z-index: 1000;
}
#mv .news h2{
  background: #000;
  color: #fff;
  font-size: 16px;
  padding: 0px 30px;
 display: inline-block;
  z-index: 1100;
  position: relative;
}

#mv .news .newsbox{
 overflow: hidden;
  position: relative;
  background: #fff;
  margin-left: 5px;
  margin-top: -15px;
  padding: 4vh 2vw 3vh;
  z-index: 990;
  max-width: 660px;
}

#mv .news .newsbox li{
  border-bottom: 1px solid #ccc;
  padding-bottom: 5px;
  margin:0 0 5px 0; 
}

#mv .scrollBtn{
  position: absolute;
  bottom: 0;
  left: calc(50vw - 31px);
  z-index: 1000;
}
@media screen and (max-width: 768px) {
#mv {
 height: calc(100vh - 60px);
 min-height: 450px;  
}
 #mv .slider li{
  position: relative;
 height: calc(100vh - 60px);
 min-height: 450px; 
 }
#mv .slider li img{
 position: absolute;
 right: 0;
 top: 0;
width: 200vw;
 max-width: none;
height: 100%;  
object-fit:cover;
}
#mv .inner{
  left: 0;
  top:0;
  margin: 0 auto;
  padding-top: 10vh;
 z-index: 9998;
 text-align: center;
}
#mv .mvTxt{
 display: inline-block;
 background: rgba(255,255,255,0.8);
  max-width: none; 
 padding: 10px 20px;
}

#mv .mvTxt h2{
  margin-bottom: 3vh;
  font-size: 28px;
   letter-spacing: .2em;
}
#mv .mvTxt h2 i{
  font-size: 24px;
}
#mv .mvTxt p{
  font-size: 14px;
  line-height: 1.5;
}
 
#mv .news{
  margin-top: 6vh;
 margin: 6vw 4% 0;
}
#mv .news h2{
  font-size: 15px;
}
#mv .news .newsbox{
  padding: 3vh 2vw 2vh;
}

#mv .scrollBtn{
 width: 40px;
  left: calc(50vw - 20px);
 bottom: 2vh;
}
}/*spOnly*/

/* strength */
#strength{
  margin-top: 12vh;
  position: relative;
  padding-bottom: 245px;  
}
#strength:before{
  display: block;
  position: absolute;
  top:0;
  left:0;
  content: '';
  height: 100%;
  width: 46vw;
  background:url("images/top_strength_img1.png") no-repeat;
  background-size:cover;
  z-index: -1
}
#strength:after{
  display: block;
  position: absolute;
  bottom:0;
  right:0;
  content: '';
  height: 60vh;
  width: 56vw;
  background:#f2f2f2;
  z-index: -2
}

#strength h2{
  font-size: 50px;
  text-align: center;
  font-weight: 700;
  letter-spacing: .2em;
  padding: 35px 0 50px;
  max-width: 980px;
  background: #fff;
  margin: 0 auto;
  z-index: 10
}

#strength .inner{
  max-width: 980px;
  margin: 0 auto;
  position: relative;

}
#strength .inner .img{
  margin-top: 8vh;
  margin-left: 14vw;
}
#strength h3{
  border: 1px solid #e21f22;
  color: #e21f22;
  font-size: 55px;
  width: 280px;
  height: 280px;
  border-radius: 50%;
  position: absolute;
  top:-20px;
  right: 9vw;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  background: rgba(255,255,255,0.80);
  flex-direction: column;
  line-height: .8em;
}
#strength h3 span{
  font-size: 18px;
display: block;
}

#strength .txtBox{
    background: #b10003;
  padding: 58px 0 0;
  width: 34vw;
  height: 315px;
  position: absolute;
  right: 0;
  /*top:58vh;*/
 bottom: 0;
}
#strength .txtBox p{
  color: #fff;
}
#strength .txtBox:before{
content: '';
    position: absolute;
    bottom: 0;
    left: -14.97vw;
    border-bottom: 315px solid #b10003;  /* 好みで高さ色を変えてください */ 
    border-left: 15vw solid transparent;
}

@media screen and (max-width: 768px) {/*SP strength*/
#strength{
  margin-top: 0;
 padding: 30px 0 50px;
}
#strength:before{
 display: none;
}
#strength:after{
 display: none;
}
#strength h2{
  font-size: 25px;
  letter-spacing: 0;
  padding: 0 0 50px;
}

#strength .inner .img{
 margin: 0 auto;
 text-align: center;
}
#strength h3{
  font-size: 35px;
  width: 200px;
  height: 200px;
 margin: -30px auto;
 position: relative;
  top:0;
  right: 0;
  line-height: 1.3;
}
#strength h3 span{
  font-size: 16px;
}

#strength .txtBox{
  padding: 20px 4%;
  width: auto;
  height: auto;
  position: relative;
  right: 0;
  top:0;
}
#strength .txtBox:before{
 display: none;
}
#strength .txtBox .mTop35{
 margin-top: 10px !important;
 }
}/*-SP only-*/

/* case */
#case{
  position: relative;
 /* height: 72vh;
 min-height: 550px; 202303 modify */
 min-height: 560px;
  margin: 4vh 0 5vh;
}

#case:after{
  display: block;
  position: absolute;
  bottom:0;
  right:0;
  content: '';
  /* height: 60vh; 202303 modify */
	height: 45vh;
  width: 100vw;
  background:#f2f2f2;
  z-index: -2
}

#case h3{
  color: #e21f22;
  font-size: 55px;
  width: 280px;
  height: 280px;
  position: absolute;
  top:20px;
  right: 820px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  flex-direction: column;
  line-height: .8em;
  z-index: 100
}
#case h3 span{
  font-size: 18px;
display: block;
}

#case .caseimg1{
  position: absolute;
  right: 0;
  top:0
}

#case .caseimg2{
  position: absolute;
  /* left: 40vw;
	bottom:0; 202303 modify */
	right: 21.6vw;
  bottom: -7px;
  z-index: 100;
}

#case .txtBox{
  background: #b10003;
  /* padding:58px 0 7vh calc(50vw - 530px);
  width: 29vw; 202303 modify */
	padding:58px 0 7vh calc(50vw - 460px);
	width: calc(50vw - 266px);
  height: 315px;
  position: absolute;
  left: 0;
 bottom: 0;
}
#case .txtBox p{
  color: #fff;
  margin-bottom: 20px
}

#case .txtBox:before{
content: '';
    position: absolute;
    bottom: 0;
    right: -14.97vw;
    border-bottom: 315px solid #b10003;  /* 好みで高さ色を変えてください */ 
    border-right: 15vw solid transparent;
}
@media screen and (min-width: 1680px) {
#case .txtBox{
  /* padding:58px 0 7vh calc(50vw - 570px); 202303 modify */
	padding:58px 0 7vh calc(58vw - 460px);
	width: calc(58vw - 266px);
}
	
}/*-pcOnly-*/
@media screen and (max-width: 768px) {/*SP case*/
#case{
 overflow: hidden;
  margin-top:0;
 height: auto;
 min-height: inherit;
  margin-bottom: 0; 
}
#case:after{
 display: none;
}

#case h3{
  font-size: 30px;
  width: 135px;
  height: 135px;
  position: relative;
  top:0;
  right: 0;
  line-height:1.3;
  padding-bottom: 20px;
}
#case h3 span{
  font-size: 16px;
}

#case .caseimg1{
  position: absolute;
  left: 4%;
  top:0;
 max-width: none;
 width: 108vw;
}

#case .caseimg2{
 width: 50%;
 max-width: 260px;
 top: 130px;
  left:180px;
  bottom:auto;
}

#case .txtBox{
  padding: 20px 4%;
  width: auto;
  height: auto;
  position: relative;
  left: 0;
  top:0;
}
#case .txtBox p{
  margin-bottom: 10px
}

#case .txtBox:before{display: none;
}
}/*-SP only-*/


/* about */
#about{
  background: url("images/top_about_img.png") no-repeat;
  background-size: cover;
  padding: 22vh 0 10vh;
}
#about .inner{
  max-width: 980px;
  padding-left: 340px;
  box-sizing: border-box;
  

}
#about h2{
  font-size: 50px;
  font-weight: 700;
  margin-bottom: 50px;
}

#about h2 span{
  display: block;
  font-size: 19px;
  
}
#about h3{
  font-size: 20px;
  margin-bottom: 50px;
}
@media screen and (max-width: 768px) {/*SP about*/
#about{
  background: url("images/top_about_img.png") no-repeat right top;
  background-size: cover;
  padding: 30px 4% 50px;
}
#about .inner{
  padding-left: 0;
}
#about h2{
  font-size: 30px;
  margin-bottom: 30px;
}
#about h2 span{
  font-size: 16px;  
}
#about h3{
  font-size: 16px;
  margin-bottom:20px;
}
 #about .mTop50{
  margin-top: 20px !important;
 }
}/*-SP only-*/

/* infos */
#infos{
 background: #b10003;
  padding: 60px 0;
}

#infos ul{
  width: 100%;
}
@media screen and (min-width: 769px) {
#infos ul li{
  width: 50%;
  padding: 82px 0 0;
  text-align: center;
  display: inline-block;
  box-sizing: border-box;
  vertical-align: top;
  height: 310px;
}

}/*-PC only-*/

#infos ul li#recruit{
  background: url("images/top_recruit_img.png") no-repeat;
  background-size: cover}

#infos ul li#contact{
  background: url("images/top_form_img.png") no-repeat;
  background-size: cover
}

#infos ul li a{
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
  display: block;
  margin: 0 auto;
  width: 44%;
  padding: 50px 0;

}

#infos ul li#contact a{
  padding: 30px 0;
}

#infos ul li a span::after{
  display: block;
  position: absolute;
  content: '';
   right: -20px;
  top:0;
 bottom: 0;
 margin: auto;
    width: 12px;
    height: 12px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

#infos ul li#contact a span::before{
  content: '';
  display: block;
  width: 30px;
  height:30px;
  background: url("images/ic_email.png") no-repeat;
  background-size: contain;
  position: absolute;
left: -35px;
top: 17px;
}
#infos ul li a span{
 display: inline-block;
  font-size: 30px;
  font-weight: 500;
  color: #fff;
  position: relative;
}
#infos ul li a span span{
  font-size: 16px;
  display: block;
}
#infos ul li#contact a span span::after,
#infos ul li#contact a span span::before{
  display: none;
}

@media screen and (max-width: 768px) {/*SP info*/
#infos{
  padding: 30px 0;
}
#infos ul li a{
  width: auto;
  padding: 30px 0;
 text-align: center;
}
#infos ul li#contact a{
  padding: 10px 0 15px;
}
#infos ul li a span{
  font-size: 20px;
}
#infos ul li a span span{
  font-size: 14px;
}

#infos ul li#contact a span::before{
  width: 20px;
  height:20px;
left: -25px;
top: 12px;
}

}/*-SP only-*/

/* pgs common */

.bnrContact{
  margin-top: 80px;
   background: #b10003;
  padding: 60px 0;
}

.bnrContact div{
    background: url("images/bg_contact_bnr.jpg") no-repeat;
  background-size: cover;
  display: block;
  padding: 42px 0;
  text-align: center;
}
.bnrContact p{
  position: relative;
  display: block;
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
  max-width: 980px;
  margin: 0 auto;
  padding: 30px;
  font-size: 30px;
  font-weight: 400;
  text-align: center;
}
.bnrContact p:after{
  display: block;
  position: absolute;
  content: '';
   right: 150px;
  top:50%;
    width: 12px;
    height: 12px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

.bnrContact p:before{
  width: 30px;
  height:30px;
  display: block;
  background: url("images/ic_email.png") no-repeat;
  background-size: contain;
  content: '';
  position: absolute;
left: 190px;
top: calc(50% - 8px);
}

.bnrContact p a{
 display: block;
  color: #fff;
}

.bnrContact p span{
  display: inline-block;
  border-radius: 18px;
  background: #fff;
  color: #000;
  font-size: 16px;
  height: 36px;
  padding: 5px 20px;
  margin-left: 30px;
}
@media screen and (max-width: 768px) {
.bnrContact{
  margin-top: 80px;
  padding: 30px 0;
}
.bnrContact div{
  padding: 20px 0;
}
.bnrContact p{
  padding: 0;
  font-size: 20px;
}
 .bnrContact p a{
  padding: 20px;
 }
.bnrContact p::after{
   right: 4%;
  top:0;
 bottom: 0;
 margin: auto;
}
.bnrContact p::before{
  width: 30px;
  height:30px;
left: 4%;
top: 0;
 bottom: 0;
 margin: auto;
}
.bnrContact p span{
  display: block;
 max-width:16em;
  font-size: 14px;
  height: 36px;
  padding: 5px 15px;
  margin: 10px auto 0;
}

}/*spOnly*/

/* news */
.topicsList{}
.topicsList dt{
  border-bottom: 1px solid #ddd;
  padding-bottom: 5px;
  margin-bottom: 10px;
  font-weight: bold;
  font-size: 16px;
}

.topicsList dt span{
  margin: 0 10px 0 0;
  font-size: 12px;
  color: rgba(73,73,73,1.00);
}
.topicsList dt img{
  vertical-align: middle;
}
/* 20230316 add */
.topicsList dd:not(:last-child){
	padding-bottom: 40px;
}
.topicsList dt.icNew{
	position: relative;
	padding-left: 25px;
}
.topicsList dt.icNew::before{
	content: url(images/babazono_new.gif);
	width: 18px;
	height: 12px;
	position: absolute;
	top: calc(50% - 1em);
	left: 0;
}
/* /20230316 add */
@media screen and (max-width: 768px) {
.topicsList{
 margin: 0 4%;
 }
.topicsList dt{
  font-size: 15px;
}
.topicsList dt span{
  margin: 0 5px;
  font-size: 11px;
}
}/* //end for SP */

.archive main{
	padding-top: 92px;
	margin-top: 0;
}
.archive .topicsList dt{
	padding-top: 100px;
	margin-top: -100px;
}
.archive main .mv figure{
	margin-bottom: 0;
}