@charset "UTF-8";

/* ------------------------------------------------------------------------------------------ */
/* common */
/* ------------------------------------------------------------------------------------------ */
* { box-sizing: border-box; }

body {
  color: #333;
  font-size: 16px;
  font-family: Meiryo, メイリオ, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", sans-serif;
  line-height: 2;
}

.contentWrap {
  max-width: 1110px;
  margin: 0 auto;
  padding: 70px 15px;
}

img {
  display: block;
  width: 100%;
}

a {
  color: #d9261f;
  text-decoration: underline;
}

.sp { display: none; }


/* ------------------------------------------------------------------------------------------ */
/* clearfix */
/* ------------------------------------------------------------------------------------------ */
.clearfix:after {
  display: block;
  content: '';
  height: 0;
  clear: both; }


/* ------------------------------------------------------------------------------------------ */
/* background */
/* ------------------------------------------------------------------------------------------ */
.bg_gray { background: #f6f6f6; }
.bg_red { background: #d9261f; }
.bg_black { background: #221714; }
.bg_grid01 { background: url("../images/bg_grid01.png") top center; }
.bg_grid02 { background: url("../images/bg_grid02.png") top center; }


/* ------------------------------------------------------------------------------------------ */
/* text */
/* ------------------------------------------------------------------------------------------ */
.c_fff { color: #fff; }
.c_red { color: #d9261f; }
.fw_b { font-weight: bold; }

.ta_c { text-align: center; }
.ta_l { text-align: left; }
.ta_r { text-align: right; }

.lh10 { line-height: 1; }
.lh15 { line-height: 1.5; }
.lh20 { line-height: 2; }

sub {
  font-size: 11px;
  font-weight: normal;
  vertical-align: 0;
  margin: 0 5px;
}


/* ------------------------------------------------------------------------------------------ */
/* margin & padding */
/* ------------------------------------------------------------------------------------------ */
.m00 { margin: 0 !important; }
.m05 { margin: 5px !important; }
.m10 { margin: 10px !important; }
.m20 { margin: 20px !important; }
.m30 { margin: 30px !important; }
.m40 { margin: 40px !important; }
.m50 { margin: 50px !important; }
.m100 { margin: 100px !important; }

.mt00 { margin-top: 0 !important; }
.mt05 { margin-top: 5px !important; }
.mt10 { margin-top: 10px !important; }
.mt20 { margin-top: 20px !important; }
.mt30 { margin-top: 30px !important; }
.mt40 { margin-top: 40px !important; }
.mt50 { margin-top: 50px !important; }
.mt100 { margin-top: 100px !important; }
.mt150 { margin-top: 150px !important; }

.mb00 { margin-bottom: 0 !important; }
.mb05 { margin-bottom: 5px !important; }
.mb10 { margin-bottom: 10px !important; }
.mb20 { margin-bottom: 20px !important; }
.mb30 { margin-bottom: 30px !important; }
.mb40 { margin-bottom: 40px !important; }
.mb50 { margin-bottom: 50px !important; }
.mb100 { margin-bottom: 100px !important; }
.mb200 { margin-bottom: 200px !important; }

.mr00 { margin-right: 0 !important; }
.mr05 { margin-right: 5px !important; }
.mr10 { margin-right: 10px !important; }
.mr20 { margin-right: 20px !important; }
.mr30 { margin-right: 30px !important; }
.mr40 { margin-right: 40px !important; }
.mr50 { margin-right: 50px !important; }
.mr100 { margin-right: 100px !important; }

.ml00 { margin-left: 0 !important; }
.ml05 { margin-left: 5px !important; }
.ml10 { margin-left: 10px !important; }
.ml20 { margin-left: 20px !important; }
.ml30 { margin-left: 30px !important; }
.ml40 { margin-left: 40px !important; }
.ml50 { margin-left: 50px !important; }
.ml100 { margin-left: 100px !important; }

.p00 { padding: 0 !important; }
.p05 { padding: 5px !important; }
.p10 { padding: 10px !important; }
.p20 { padding: 20px !important; }
.p30 { padding: 30px !important; }
.p40 { padding: 40px !important; }
.p50 { padding: 50px !important; }
.p100 { padding: 100px !important; }

.pt00 { padding-top: 0 !important; }
.pt05 { padding-top: 5px !important; }
.pt10 { padding-top: 10px !important; }
.pt20 { padding-top: 20px !important; }
.pt30 { padding-top: 30px !important; }
.pt40 { padding-top: 40px !important; }
.pt50 { padding-top: 50px !important; }
.pt100 { padding-top: 100px !important; }

.pb00 { padding-bottom: 0 !important; }
.pb05 { padding-bottom: 5px !important; }
.pb10 { padding-bottom: 10px !important; }
.pb20 { padding-bottom: 20px !important; }
.pb30 { padding-bottom: 30px !important; }
.pb40 { padding-bottom: 40px !important; }
.pb50 { padding-bottom: 50px !important; }
.pb100 { padding-bottom: 100px !important; }

.pr00 { padding-right: 0 !important; }
.pr05 { padding-right: 5px !important; }
.pr10 { padding-right: 10px !important; }
.pr20 { padding-right: 20px !important; }
.pr30 { padding-right: 30px !important; }
.pr40 { padding-right: 40px !important; }
.pr50 { padding-right: 50px !important; }
.pr100 { padding-right: 100px !important; }

.pl00 { padding-left: 0 !important; }
.pl05 { padding-left: 5px !important; }
.pl10 { padding-left: 10px !important; }
.pl20 { padding-left: 20px !important; }
.pl30 { padding-left: 30px !important; }
.pl40 { padding-left: 40px !important; }
.pl50 { padding-left: 50px !important; }
.prl00 { padding-left: 100px !important; }


/* ------------------------------------------------------------------------------------------ */
/* headline */
/* ------------------------------------------------------------------------------------------ */
/*---------- main contents ----------*/
main.mainContents h1 {
  color: #fff;
  font-size: 30px;
  line-height: 1.5;
  margin-bottom: 40px;
  position: relative;
}
main.mainContents h1::after {
  position: absolute;
  display: block;
  width: 200px;
  height: 2px;
  content: "";
  bottom: -15px;
  left: 0;
  background: #fff;
}
main.mainContents h2 {
  font-size: 30px;
  line-height: 50px;
  font-weight: bold;
  position: relative;
  margin-bottom: 50px;
  display: inline-block;
}
main.mainContents h2::after {
  position: absolute;
  display: block;
  width: 100%;
  height: 5px;
  content: "";
  bottom: -20px;
  left: 0;
  background: #d9261f;
}
main.mainContents h2.white {
  color: #fff;
}
main.mainContents h2.white::after {
  background: #fff;
}
main.mainContents h2 span {
  font-size: 16px;
}
main.mainContents h3 {
  color: #d9261f;
  font-size: 24px;
  font-weight: bold;
  line-height: 1.5;
}

/*-- sub contents --*/
main.subContents h1 {
  font-size: 30px;
  line-height: 1;
  font-weight: bold;
  text-align: center;
  margin-bottom: 50px;
}
main.subContents h2 {
  font-size: 24px;
  line-height: 1;
  font-weight: normal;
  text-align: center;
  margin-bottom: 60px;
}
main.subContents h2 span {
  position: relative;
}
main.subContents h2 span::after {
  position: absolute;
  display: block;
  width: 100%;
  height: 5px;
  content: "";
  bottom: 0;
  left: 0;
  background: #d9261f;
}


/* ------------------------------------------------------------------------------------------ */
/* header */
/* ------------------------------------------------------------------------------------------ */
main {
  padding-top: 80px;
}
#mainHeader {
  width: 100%;
  height: 80px;
  background: #fff;
  border-top: 10px solid #d9261f;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
}
#mainHeader .mainHeader_inner {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  padding: 0 15px;
}

#mainHeader .headerLogo {
  max-width: 105px;
  padding-top: 10px;
}

#mainHeader .headerMenu {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-end;
}
#mainHeader .headerMenu ul {
  padding-top: 35px;
}
#mainHeader .headerMenu ul li {
  display: inline-block;
  font-size: 14px;
  line-height: 15px;
  border-left: 1px solid #ccc;
  padding: 0 15px;
}
#mainHeader .headerMenu ul li a {
  color: #333;
  text-decoration: none;
}
#mainHeader .headerMenu ul li a:hover {
  color: #d9261f;
  text-decoration: underline;
}

#mainHeader .headerMenu a.menuMail {
  display: block;
  width: 120px;
  height: 70px;
  color: #fff;
  font-size: 14px;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  line-height: 1.5;
  background: #d9261f;
  padding-top: 8px;
}
#mainHeader .headerMenu a.menuMail i {
  font-size: 30px;
}

#mainHeader .headerMenu .menuTel {
  max-width: 265px;
  padding: 10px 0 0 20px;
}
#mainHeader .headerMenu .menuTel p {
  font-size: 11px;
  text-align: center;
  line-height: 1;
  border-top: 1px dotted #d9261f;
  margin-top: 5px;
  padding-top: 5px;
}

#navToggle {
  display: none;
}


/* ------------------------------------------------------------------------------------------ */
/* footer */
/* ------------------------------------------------------------------------------------------ */
#mainFooter {
  background: #f6f6f6;
}
#mainFooter .footNavi {
  background: #221714;
}
#mainFooter .footNavi .contentWrap {
  position: relative;
  padding: 40px 110px 30px;
}
#mainFooter .footNavi .footerLogo {
  position: absolute;
  top: 30px;
  left: 15px;
  max-width: 105px;
}
#mainFooter .footNavi .footerMenu ul {
  text-align: center;
}
#mainFooter .footNavi .footerMenu ul li {
  display: inline-block;
  color: #fff;
  font-size: 14px;
  line-height: 20px;
  border-left: 1px solid #fff;
  padding: 0 20px;
}
#mainFooter .footNavi .footerMenu ul li:last-child {
  border-right: 1px solid #fff;
}
#mainFooter .footNavi .footerMenu ul li a {
  color: #fff;
  text-decoration: none;
}
#mainFooter .footNavi .footerMenu ul li a:hover {
  text-decoration: underline;
}
#mainFooter .footNavi .copyright {
  color: #fff;
  font-size: 10px;
  text-align: center;
  margin-top: 30px;
}


/* ------------------------------------------------------------------------------------------ */
/* contact */
/* ------------------------------------------------------------------------------------------ */
#contact {
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  padding: 50px 0;
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
}
#contact .contactMail {
  width: 48%;
  max-width: 310px;
}
#contact .contactMail a {
  display: block;
  max-width: 300px;
  height: 70px;
  color: #fff;
  font-size: 24px;
  text-align: center;
  text-decoration: none;
  border-radius: 35px;
  background: #d9261f;
  padding: 12px;
}
#contact .contactMail i {
  font-size: 30px;
  margin-right: 10px;
  vertical-align: -2px;
}
#contact .contactTel {
  width: 48%;
  max-width: 310px;
}
#contact .contactTel p {
  font-size: 14px;
  text-align: center;
  line-height: 1;
  border-top: 1px dotted #d9261f;
  margin-top: 10px;
  padding-top: 10px;
}
